Пример #1
0
/* 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);
		}
}
Пример #2
0
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);
}