/**************************************************************************** * * * zedit.h (c) by Georg Essl in 1993 * * * ****************************************************************************/ /*** DEFINES ***/ #define ZE_NOPURGEDOOR 0 #define ZE_PURGEDOOR 1 /* Zone-Editing + Simulating Structs */ struct ze_mob_eq { int pos; int obj; }; struct ze_mob { int nr; int maxexist; int eq_count; struct ze_mob_eq *eq; int inv_count; int *inv; }; struct ze_obj { int nr; int maxexist; int inv_count; int *inv; }; struct ze_zone { int room_nr; int door[6]; int mob_count; int obj_count; struct ze_mob *mobs; struct ze_obj *objs; }; /****** STRUCTS from "db.h" *****/ /* structure for the reset commands */ struct reset_com { char command; /* current command */ int if_flag; /* if TRUE: exe only if preceding exe'd */ int arg1; /* */ int arg2; /* Arguments to the command */ int arg3; /* */ /* * Commands: * * 'M': Read a mobile * * 'O': Read an object * * 'G': Give obj to mob * * 'P': Put obj in obj * * 'G': Obj to char * * 'E': Obj to char equip * * 'D': Set state of door * */ }; /* zone definition structure. for the 'zone-table' */ struct zone_data { char *name; /* name of this zone */ int virt_number; int lifespan; /* how long between resets (minutes) */ int age; /* current age of this zone (minutes) */ int top; /* upper limit for rooms in this zone */ int reset_mode; /* conditions for reset (see below) */ struct reset_com *cmd; /* command table for reset */ int zonemax; struct ze_zone *zone; /* * Reset mode: * * 0: Don't reset, and don't update age. * * 1: Reset if no PC's are located in zone. * * 2: Just reset. * */ }; /*** PROTOTYPES ***/ void ze_FindZones(char *); void ze_InitIEdit(void); void ze_CloseIEdit(void); int ze_GetRealNumber(int); void ze_GiveItemMob(int,int); void ze_GiveItemItem(int,int); void ze_WearItemMob(int,int,int); int ze_FindNrZone(int,char *); int ze_FindNrMobRoom(int,int,struct ze_zone *); int ze_FindMobRoom(int,char *,struct ze_zone *); int ze_FindNrItemRoom(int,int,struct ze_zone *); int ze_FindItemRoom(int,char *,struct ze_zone *); void ze_ShowZone(int); void ze_EditZone(int); void ze_PurgeZone(int); void ze_PurgeMobile(int); void ze_PurgeItem(int); void ze_PurgeAll(void); void ze_CloneZone(int,int); void ze_DoorState(int,int); void ze_SetFile(char *); void ze_SetTemp(char *); void ze_SetDBPath(char *); void ze_InitZEdit(void); void ze_CloseZEdit(void); void ze_LoadZone(int); void ze_LoadMobile(int); void ze_LoadItem(int); void ze_free_zoneroom(struct zone_data *,int,int); int ze_GetRealNumber(int); struct ze_zone *ze_getroom(struct zone_data *,int);