/* * RAM $Id: db.h 81 2009-01-14 06:16:31Z ghasatta $ */ /*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ /*************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ /* macro for flag swapping */ #define GET_UNSET(flag1,flag2) (~(flag1)&((flag1)|(flag2))) extern HELP_DATA *help_first; extern HELP_DATA *help_last; extern HELP_AREA *had_list; extern SHOP_DATA *shop_first; extern SHOP_DATA *shop_last; extern AREA_DATA *area_first; extern AREA_DATA *area_last; extern char bug_buf[2 * MAX_INPUT_LENGTH]; extern char log_buf[2 * MAX_INPUT_LENGTH]; extern CHAR_DATA *char_list; extern HELP_DATA *help_greeting; extern KILL_DATA kill_table[MAX_LEVEL]; extern OBJ_DATA *object_list; extern TIME_INFO_DATA time_info; extern WEATHER_DATA weather_info; extern bool MOBtrigger; extern MOB_INDEX_DATA *mob_index_hash[MAX_KEY_HASH]; extern OBJ_INDEX_DATA *obj_index_hash[MAX_KEY_HASH]; extern ROOM_INDEX_DATA *room_index_hash[MAX_KEY_HASH]; extern char *string_hash[MAX_KEY_HASH]; extern int top_affect; extern int top_area; extern int top_ed; extern int top_exit; extern int top_help; extern int top_mob_index; extern int top_obj_index; extern int top_reset; extern int top_room; extern int top_shop; extern int mobile_count; extern int newmobs; extern int newobjs; extern int top_vnum_mob; extern int top_vnum_obj; extern int top_vnum_room; extern bool fBootDb; extern FILE *fpArea; extern char strArea[MAX_INPUT_LENGTH]; extern struct social_type social_table[MAX_SOCIALS]; extern int social_count; /* These are actually elsewhere, but those files don't have headers */ NOTE_DATA *new_note( void ); void free_note( NOTE_DATA *note ); DESCRIPTOR_DATA *new_descriptor( void ); void free_descriptor( DESCRIPTOR_DATA *d ); /* extra descr recycling */ extern EXTRA_DESCR_DATA *extra_descr_free; EXTRA_DESCR_DATA *new_extra_descr( void ); void free_extra_descr( EXTRA_DESCR_DATA *ed ); /* object recycling */ extern OBJ_DATA *obj_free; OBJ_DATA *new_obj( void ); void free_obj( OBJ_DATA *obj ); /* character recyling */ extern CHAR_DATA *char_free; extern PC_DATA *pcdata_free; CHAR_DATA *new_char( void ); void free_char( CHAR_DATA *ch ); PC_DATA *new_pcdata( void ); void free_pcdata( PC_DATA *pcdata ); /* mob id and memory procedures */ extern int last_pc_id; extern int last_mob_id; extern MEM_DATA *mem_data_free; int get_pc_id( void ); int get_mob_id( void ); MEM_DATA *new_mem_data( void ); void free_mem_data( MEM_DATA *memory ); /* OLC */ extern RESET_DATA *reset_free; RESET_DATA *new_reset_data( void ); void free_reset_data( RESET_DATA *pReset ); void new_reset( ROOM_INDEX_DATA *pR, RESET_DATA *pReset ); extern AREA_DATA *area_free; AREA_DATA *new_area( void ); void free_area( AREA_DATA *pArea ); extern EXIT_DATA *exit_free; EXIT_DATA *new_exit( void ); void free_exit( EXIT_DATA *pExit ); extern ROOM_INDEX_DATA *room_index_free; ROOM_INDEX_DATA *new_room_index( void ); void free_room_index( ROOM_INDEX_DATA *pRoom ); extern SHOP_DATA *shop_free; SHOP_DATA *new_shop( void ); void free_shop( SHOP_DATA *pShop ); extern OBJ_INDEX_DATA *obj_index_free; OBJ_INDEX_DATA *new_obj_index( void ); void free_obj_index( OBJ_INDEX_DATA *pObj ); extern MOB_INDEX_DATA *mob_index_free; MOB_INDEX_DATA *new_mob_index( void ); void free_mob_index( MOB_INDEX_DATA *pMob ); extern MPROG_CODE *mpcode_free; MPROG_CODE *new_mpcode( void ); void free_mpcode( MPROG_CODE *pMcode ); void boot_db( void ); void load_area_file( FILE * fp ); void load_ram_area_file( FILE * fp, int version ); void load_rom_area_file( FILE * fp ); void assign_area_vnum( int vnum ); /* OLC */ void load_area( FILE * fp ); void new_load_area( FILE * fp ); /* OLC */ /* void load_helps( FILE * fp ); */ void load_helps( FILE * fp, const char *fname ); void load_mobprogs( FILE * fp ); /* OLC */ void fix_mobprogs( void ); /* OLC */ void reset_area( AREA_DATA *pArea ); /* OLC */ void reset_room( ROOM_INDEX_DATA *pRoom ); /* OLC */ MPROG_CODE *get_mprog_index( int vnum ); HELP_AREA *new_had( void ); HELP_DATA *new_help( void ); void free_help( HELP_DATA * ); void convert_mobile( MOB_INDEX_DATA *pMobIndex ); /* OLC ROM */ void convert_objects( void ); /* OLC ROM */ void convert_object( OBJ_INDEX_DATA *pObjIndex ); /* OLC ROM */ void load_old_mob( FILE * fp ); void load_old_obj( FILE * fp ); void load_resets( FILE * fp ); void load_rooms( FILE * fp ); void load_shops( FILE * fp ); void load_specials( FILE * fp ); void fix_exits( void ); void area_update( void ); /* void reset_area( AREA_DATA *pArea ); */ CHAR_DATA *create_mobile( MOB_INDEX_DATA *pMobIndex ); void clone_mobile( CHAR_DATA *parent, CHAR_DATA *clone ); OBJ_DATA *create_object( OBJ_INDEX_DATA *pObjIndex, int level ); void clone_object( OBJ_DATA *parent, OBJ_DATA *clone ); void clear_char( CHAR_DATA *ch ); char *get_extra_descr( char *name, EXTRA_DESCR_DATA *ed ); MOB_INDEX_DATA *get_mob_index( int vnum ); OBJ_INDEX_DATA *get_obj_index( int vnum ); ROOM_INDEX_DATA *get_room_index( int vnum ); char fread_letter( FILE * fp ); int fread_number( FILE * fp ); int fread_flag( FILE * fp ); int str_read_flag(const char *); int flag_convert( char letter ); char *fread_string( FILE * fp ); char *fread_string_eol( FILE * fp ); void fread_to_eol( FILE * fp ); char *fread_word( FILE * fp ); int interpolate( int level, int value_00, int value_32 ); void append_file( CHAR_DATA *ch, const char *file, const char *str ); void tail_chain( void ); void load_socials( FILE * fp ); void load_mobiles( FILE * fp ); void load_objects( FILE * fp ); MPROG_LIST *new_mprog( void ); void free_mprog( MPROG_LIST *mp );