/* All the nasty bits on the map ;) */ void map_load_bits(FILE * f, MAP * map) { int xs = map->map_width; int ys = map->map_height; unsigned char **foo; int tmp, i; Create(foo, unsigned char *, ys); CHELO(foo, sizeof(unsigned char *), ys, f); for(i = 0; i < ys; i++) if(foo[i]) { Create(foo[i], unsigned char, realnum(xs)); CHELO(foo[i], sizeof(unsigned char), realnum(xs), f); } }
void loadrepairs(FILE * f) { dbref d, player; int type; int data; int time; MECH *mech; int loaded = 0; int fake; if (feof(f)) return; fread(&d, sizeof(d), 1, f); while (d > 0 && !feof(f)) { loaded++; CHELO(type); CHELO(time); CHELO(data); fake = (time < 0); time = abs(time); if (!(mech = FindObjectsData(d))) continue; player = data / PLAYERPOS; data = data % PLAYERPOS; if (fake) FIXEVENT(time, mech, data, very_fake_func, type); else switch (type) { case EVENT_REPAIR_MOB: FIXEVENT(time, mech, data, event_mech_mountbomb, type); break; case EVENT_REPAIR_UMOB: FIXEVENT(time, mech, data, event_mech_umountbomb, type); break; case EVENT_REPAIR_REPL: FIXEVENT(time, mech, data, event_mech_repairpart, type); break; case EVENT_REPAIR_REPLG: FIXEVENT(time, mech, data, event_mech_replacegun, type); break; case EVENT_REPAIR_REPAP: FIXEVENT(time, mech, data, event_mech_repairpart, type); break; case EVENT_REPAIR_REPENHCRIT: FIXEVENT(time, mech, data, event_mech_repairenhcrit, type); break; case EVENT_REPAIR_REPAG: FIXEVENT(time, mech, data, event_mech_repairgun, type); break; case EVENT_REPAIR_REAT: FIXEVENT(time, mech, data, event_mech_reattach, type); break; case EVENT_REPAIR_RELO: FIXEVENT(time, mech, data, event_mech_reload, type); break; case EVENT_REPAIR_FIX: FIXEVENT(time, mech, data, event_mech_repairarmor, type); break; case EVENT_REPAIR_FIXI: FIXEVENT(time, mech, data, event_mech_repairinternal, type); break; case EVENT_REPAIR_SCRL: FIXEVENT(time, mech, data, event_mech_removesection, type); break; case EVENT_REPAIR_SCRG: FIXEVENT(time, mech, data, event_mech_removegun, type); break; case EVENT_REPAIR_SCRP: FIXEVENT(time, mech, data, event_mech_removepart, type); break; case EVENT_REPAIR_REPSUIT: FIXEVENT(time, mech, data, event_mech_replacesuit, type); break; } CHELO(d); } if (loaded) fprintf(stderr, "LOADED: %d tech events.\n", loaded); }