src/hcode/btech/mech.tech.saverepair.c File Reference

#include "mech.h"
#include "mech.events.h"
#include "mech.tech.h"

Include dependency graph for mech.tech.saverepair.c:

Go to the source code of this file.

Defines

#define CHESA(var)   fwrite(&var, sizeof(var), 1, cheat_file)
#define CHELO(var)   if (!fread(&var, sizeof(var), 1, f)) return

Functions

static void save_event (MUXEVENT *e)
void saverepairs (FILE *f)
void loadrepairs (FILE *f)

Variables

static FILE * cheat_file
static int ev_type


Define Documentation

#define CHELO ( var   )     if (!fread(&var, sizeof(var), 1, f)) return

Definition at line 25 of file mech.tech.saverepair.c.

#define CHESA ( var   )     fwrite(&var, sizeof(var), 1, cheat_file)

Definition at line 24 of file mech.tech.saverepair.c.


Function Documentation

void loadrepairs ( FILE *  f  ) 

Definition at line 56 of file mech.tech.saverepair.c.

References CHELO, EVENT_REPAIR_FIX, EVENT_REPAIR_FIXI, EVENT_REPAIR_MOB, EVENT_REPAIR_REAT, EVENT_REPAIR_RELO, EVENT_REPAIR_REPAG, EVENT_REPAIR_REPAP, EVENT_REPAIR_REPENHCRIT, EVENT_REPAIR_REPL, EVENT_REPAIR_REPLG, EVENT_REPAIR_REPSUIT, EVENT_REPAIR_SCRG, EVENT_REPAIR_SCRL, EVENT_REPAIR_SCRP, EVENT_REPAIR_UMOB, FindObjectsData(), FIXEVENT, muxevent_tickmech_mountbomb(), muxevent_tickmech_reattach(), muxevent_tickmech_reload(), muxevent_tickmech_removegun(), muxevent_tickmech_removepart(), muxevent_tickmech_removesection(), muxevent_tickmech_repairarmor(), muxevent_tickmech_repairenhcrit(), muxevent_tickmech_repairgun(), muxevent_tickmech_repairinternal(), muxevent_tickmech_repairpart(), muxevent_tickmech_replacegun(), muxevent_tickmech_replacesuit(), muxevent_tickmech_umountbomb(), PLAYERPOS, time(), and very_fake_func().

00057 {
00058         dbref d, player;
00059         int type;
00060         int data;
00061         int time;
00062         MECH *mech;
00063         int loaded = 0;
00064         int fake;
00065 
00066         if(feof(f))
00067                 return;
00068         fread(&d, sizeof(d), 1, f);
00069         while (d > 0 && !feof(f)) {
00070                 loaded++;
00071                 CHELO(type);
00072                 CHELO(time);
00073                 CHELO(data);
00074                 fake = (time < 0);
00075                 time = abs(time);
00076                 if(!(mech = FindObjectsData(d)))
00077                         continue;
00078                 player = data / PLAYERPOS;
00079                 data = data % PLAYERPOS;
00080                 if(fake)
00081                         FIXEVENT(time, mech, data, very_fake_func, type);
00082                 else
00083                         switch (type) {
00084                         case EVENT_REPAIR_MOB:
00085                                 FIXEVENT(time, mech, data, muxevent_tickmech_mountbomb, type);
00086                                 break;
00087                         case EVENT_REPAIR_UMOB:
00088                                 FIXEVENT(time, mech, data, muxevent_tickmech_umountbomb,
00089                                                  type);
00090                                 break;
00091                         case EVENT_REPAIR_REPL:
00092                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairpart,
00093                                                  type);
00094                                 break;
00095                         case EVENT_REPAIR_REPLG:
00096                                 FIXEVENT(time, mech, data, muxevent_tickmech_replacegun,
00097                                                  type);
00098                                 break;
00099                         case EVENT_REPAIR_REPAP:
00100                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairpart,
00101                                                  type);
00102                                 break;
00103                         case EVENT_REPAIR_REPENHCRIT:
00104                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairenhcrit,
00105                                                  type);
00106                                 break;
00107                         case EVENT_REPAIR_REPAG:
00108                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairgun, type);
00109                                 break;
00110                         case EVENT_REPAIR_REAT:
00111                                 FIXEVENT(time, mech, data, muxevent_tickmech_reattach, type);
00112                                 break;
00113                         case EVENT_REPAIR_RELO:
00114                                 FIXEVENT(time, mech, data, muxevent_tickmech_reload, type);
00115                                 break;
00116                         case EVENT_REPAIR_FIX:
00117                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairarmor,
00118                                                  type);
00119                                 break;
00120                         case EVENT_REPAIR_FIXI:
00121                                 FIXEVENT(time, mech, data, muxevent_tickmech_repairinternal,
00122                                                  type);
00123                                 break;
00124                         case EVENT_REPAIR_SCRL:
00125                                 FIXEVENT(time, mech, data, muxevent_tickmech_removesection,
00126                                                  type);
00127                                 break;
00128                         case EVENT_REPAIR_SCRG:
00129                                 FIXEVENT(time, mech, data, muxevent_tickmech_removegun, type);
00130                                 break;
00131                         case EVENT_REPAIR_SCRP:
00132                                 FIXEVENT(time, mech, data, muxevent_tickmech_removepart,
00133                                                  type);
00134                                 break;
00135                         case EVENT_REPAIR_REPSUIT:
00136                                 FIXEVENT(time, mech, data, muxevent_tickmech_replacesuit,
00137                                                  type);
00138                                 break;
00139                         }
00140                 CHELO(d);
00141         }
00142         if(loaded)
00143                 fprintf(stderr, "LOADED: %d tech events.\n", loaded);
00144 }

static void save_event ( MUXEVENT e  )  [static]

Definition at line 27 of file mech.tech.saverepair.c.

References CHESA, my_event_type::data, my_event_type::data2, ev_type, my_event_type::function, MAX, muxevent_tick, MECH::mynum, my_event_type::tick, and very_fake_func().

Referenced by saverepairs().

00028 {
00029         MECH *mech = (MECH *) e->data;
00030         int data = (int) e->data2;
00031         int t;
00032 
00033         t = e->tick - muxevent_tick;
00034         t = MAX(1, t);
00035         if(e->function == very_fake_func)
00036                 t = 0 - t;
00037         CHESA(mech->mynum);
00038         CHESA(ev_type);
00039         CHESA(t);
00040         CHESA(data);
00041 }

void saverepairs ( FILE *  f  ) 

Definition at line 43 of file mech.tech.saverepair.c.

References cheat_file, CHESA, ev_type, FIRST_TECH_EVENT, LAST_TECH_EVENT, muxevent_gothru_type(), and save_event().

00044 {
00045         int i;
00046         dbref d = -1;
00047 
00048         cheat_file = f;
00049         for(i = FIRST_TECH_EVENT; i <= LAST_TECH_EVENT; i++) {
00050                 ev_type = i;
00051                 muxevent_gothru_type(i, save_event);
00052         }
00053         CHESA(d);
00054 }


Variable Documentation

FILE* cheat_file [static]

Definition at line 21 of file mech.tech.saverepair.c.

Referenced by saverepairs().

int ev_type [static]

Definition at line 22 of file mech.tech.saverepair.c.

Referenced by save_event(), and saverepairs().


Generated on Mon May 28 04:25:38 2007 for BattletechMUX by  doxygen 1.4.7