/* ************************************************************************ * File: db.h EmpireMUD AD 1.0 * * Usage: header file for database handling * * * * All rights reserved. See license.doc for complete information. * * * * Code base by Paul Clarke. EmpireMUD Project, a tbgMUD Production. * * Based upon CircleMUD 3.0, beta patch level 17, by Jeremy Elson. * * * * Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University * * CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991. * ************************************************************************ */ /* arbitrary constants used by index_boot() (must be unique) */ #define DB_BOOT_WLD 0 #define DB_BOOT_MOB 1 #define DB_BOOT_OBJ 2 #define DB_BOOT_ZON 3 #define DB_BOOT_EMP 4 #define LIB_WORLD "world/" #define LIB_TEXT "text/" #define LIB_TEXT_HELP "text/help/" #define LIB_MISC "misc/" #define LIB_ETC "etc/" #define LIB_BOARD "boards/" #define LIB_PLRTEXT "plrtext/" #define LIB_PLROBJS "plrobjs/" #define LIB_PLRALIAS "plralias/" #define LIB_OBJPACK "packs/" #define LIB_EMPIRE "empires/" #define LIB_PLRREC "plrrec/" #define LIB_PLRLORE "plrlore/" #define SUF_OBJS "objs" #define SUF_TEXT "text" #define SUF_ALIAS "alias" #define SUF_PACK "pack" #define SUF_EMPIRE "empire" #define SUF_REC "rec" #define SUF_LORE "lore" #define KILLSCRIPT_FILE "../.killscript" /* autorun: shut mud down */ #define PAUSE_FILE "../pause" /* autorun: don't restart mud */ /* names of various files and directories */ #define INDEX_FILE "index" /* index of world files */ #define WLD_PREFIX LIB_WORLD"wld/" /* room definitions */ #define MOB_PREFIX LIB_WORLD"mob/" /* monster prototypes */ #define OBJ_PREFIX LIB_WORLD"obj/" /* object prototypes */ #define ZON_PREFIX LIB_WORLD"zon/" /* zon defs & command tables */ #define HLP_PREFIX LIB_TEXT"help/" /* for HELP <keyword> */ #define CREDITS_FILE LIB_TEXT"credits" /* for the 'credits' command */ #define SCREDITS_FILE LIB_TEXT"credits.short" /* short version of credits */ #define MOTD_FILE LIB_TEXT"motd" /* messages of the day / mortal */ #define IMOTD_FILE LIB_TEXT"imotd" /* messages of the day / immort */ #define GREETINGS_FILE LIB_TEXT"greetings" /* The opening screen */ #define MENU_FILE LIB_TEXT"menu" /* The main menu screen */ #define HELP_PAGE_FILE LIB_TEXT_HELP"screen" /* for HELP <CR> */ #define INFO_FILE LIB_TEXT"info" /* for INFO */ #define WIZLIST_FILE LIB_TEXT"wizlist" /* for WIZLIST */ #define GODLIST_FILE LIB_TEXT"godlist" /* for GODLIST */ #define BACKGROUND_FILE LIB_TEXT"background" /* for the background story */ #define POLICIES_FILE LIB_TEXT"policies" /* player policies/rules */ #define HANDBOOK_FILE LIB_TEXT"handbook" /* handbook for new immorts */ #define IDEA_FILE LIB_MISC"ideas" /* for the 'idea'-command */ #define TYPO_FILE LIB_MISC"typos" /* 'typo' */ #define BUG_FILE LIB_MISC"bugs" /* 'bug' */ #define MESS_FILE LIB_MISC"messages" /* damage messages */ #define SOCMESS_FILE LIB_MISC"socials" /* messgs for social acts */ #define XNAME_FILE LIB_MISC"xnames" /* invalid name substrings */ #define PLAYER_FILE LIB_ETC"players" /* the player database */ #define MAIL_FILE LIB_ETC"plrmail" /* for the mudmail system */ #define BAN_FILE LIB_ETC"badsites" /* for the siteban system */ #define TIME_FILE LIB_ETC"time" /* for recording the big bang */ #define EXP_FILE LIB_ETC"exp_cycle" /* for experience cycling */ #define NUM_ZONE_UPDATES 10 /* public procedures in db.c */ void boot_db(void); int create_entry(char *name); void zone_update(bool all); room_rnum real_room(room_vnum vnum); char *fread_string(FILE *fl, char *error); long get_id_by_name(char *name); char *get_name_by_id(long id); void char_to_store(Creature ch, struct char_file_u *st); void store_to_char(struct char_file_u *st, Creature ch); int load_char(char *name, struct char_file_u *char_element); void init_char(Creature ch); struct char_data* create_char(void); Creature read_mobile(mob_vnum nr, int type); mob_rnum real_mobile(mob_vnum vnum); int vnum_mobile(char *searchname, Creature ch); void clear_char(Creature ch); void reset_char(Creature ch); void free_char(Creature ch); Object create_obj(void); void clear_object(Object obj); void free_obj(Object obj); obj_rnum real_object(obj_vnum vnum); Object read_object(obj_vnum nr, int type); int vnum_object(char *searchname, Creature ch); #define REAL 0 #define VIRTUAL 1 /* structure for the reset commands */ struct reset_com { char command; /* current command */ int arg1; /* */ int arg2; /* Arguments to the command */ }; /* zone definition structure. for the 'zone-table' */ struct zone_data { room_vnum top; /* upper limit for rooms in this zone */ zone_vnum number; /* virtual number of this zone */ struct reset_com *cmd; /* command table for reset */ byte rotation; }; struct player_index_element { char *name; long id; }; struct help_index_element { char *keyword; char *entry; int level; int duplicate; }; /* don't change these */ #define BAN_NOT 0 #define BAN_NEW 1 #define BAN_SELECT 2 #define BAN_ALL 3 #define BANNED_SITE_LENGTH 50 struct ban_list_element { char site[BANNED_SITE_LENGTH+1]; int type; time_t date; char name[MAX_NAME_LENGTH+1]; struct ban_list_element *next; }; /* global buffering system */ #ifdef __DB_C__ char buf[MAX_STRING_LENGTH]; char buf1[MAX_STRING_LENGTH]; char buf2[MAX_STRING_LENGTH]; char arg[MAX_STRING_LENGTH]; #else extern struct player_special_data dummy_mob; extern char buf[MAX_STRING_LENGTH]; extern char buf1[MAX_STRING_LENGTH]; extern char buf2[MAX_STRING_LENGTH]; extern char arg[MAX_STRING_LENGTH]; #endif #ifndef __CONFIG_C__ extern char *OK; extern char *NOPERSON; extern char *NOEFFECT; extern char *HUH; #endif extern int real_zone(int number); extern int Global_ignore_dark; /* Global Externs, for Convenience */ extern Room world; extern struct zone_data *zone_table; extern Descr descriptor_list; extern Creature character_list; extern struct index_data *mob_index; extern Object object_list; extern struct index_data *obj_index; extern zone_rnum top_of_zone_table; extern mob_rnum top_of_mobt; extern obj_rnum top_of_objt; extern room_rnum top_of_world;