circlemud_squared_0.5.153/cnf/
circlemud_squared_0.5.153/etc/
circlemud_squared_0.5.153/etc/etc/
circlemud_squared_0.5.153/etc/house/
circlemud_squared_0.5.153/etc/misc/
circlemud_squared_0.5.153/etc/plralias/A-E/
circlemud_squared_0.5.153/etc/plralias/F-J/
circlemud_squared_0.5.153/etc/plralias/K-O/
circlemud_squared_0.5.153/etc/plralias/P-T/
circlemud_squared_0.5.153/etc/plralias/U-Z/
circlemud_squared_0.5.153/etc/plralias/ZZZ/
circlemud_squared_0.5.153/etc/plrobjs/
circlemud_squared_0.5.153/etc/plrobjs/A-E/
circlemud_squared_0.5.153/etc/plrobjs/F-J/
circlemud_squared_0.5.153/etc/plrobjs/K-O/
circlemud_squared_0.5.153/etc/plrobjs/P-T/
circlemud_squared_0.5.153/etc/plrobjs/U-Z/
circlemud_squared_0.5.153/etc/plrobjs/ZZZ/
circlemud_squared_0.5.153/etc/text/
circlemud_squared_0.5.153/etc/text/help/
circlemud_squared_0.5.153/src/util/
circlemud_squared_0.5.153/src/util/worldconv/
/* ************************************************************************
*   File: db.h                                          Part of CircleMUD *
*  Usage: header file for database handling                               *
*                                                                         *
*  All rights reserved.  See license.doc for complete information.        *
*                                                                         *
*  Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University *
*  CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991.               *
************************************************************************ */

#ifndef __DB_H__
#define __DB_H__

/* arbitrary constants used by index_boot() (must be unique) */
#define DB_BOOT_HLP	0

#if defined(CIRCLE_MACINTOSH)
#define ETC_ZONES       ":zones:"
#define ETC_TEXT	":text:"
#define ETC_TEXT_HELP	":text:help:"
#define ETC_MISC	":misc:"
#define ETC_ETC		":etc:"
#define ETC_PLRTEXT	":plrtext:"
#define ETC_PLRITEMS	":plritems:"
#define ETC_PLRALIAS	":plralias:"
#define ETC_HOUSE	":house:"
#define SLASH		":"
#elif defined(CIRCLE_AMIGA) || defined(CIRCLE_UNIX) || defined(CIRCLE_WINDOWS) || defined(CIRCLE_ACORN) || defined(CIRCLE_VMS)
#define ETC_ZONES       "zones/"
#define ETC_TEXT	"text/"
#define ETC_TEXT_HELP	"text/help/"
#define ETC_MISC	"misc/"
#define ETC_ETC		"etc/"
#define ETC_PLRTEXT	"plrtext/"
#define ETC_PLRITEMS	"plritems/"
#define ETC_PLRALIAS	"plralias/"
#define ETC_HOUSE	"house/"
#define SLASH		"/"
#else
#error "Unknown path components."
#endif

#define SUF_ITEMS	"items"
#define SUF_TEXT	"text"
#define SUF_ALIAS	"alias"
#define SUF_ZONE        "dao"

#if defined(CIRCLE_AMIGA)
#define FASTBOOT_FILE   "/.fastboot"    /* autorun: boot without sleep  */
#define KILLSCRIPT_FILE "/.killscript"  /* autorun: shut mud down       */
#define PAUSE_FILE      "/pause"        /* autorun: don't restart mud   */
#elif defined(CIRCLE_MACINTOSH)
#define FASTBOOT_FILE	"::.fastboot"	/* autorun: boot without sleep	*/
#define KILLSCRIPT_FILE	"::.killscript"	/* autorun: shut mud down	*/
#define PAUSE_FILE	"::pause"	/* autorun: don't restart mud	*/
#else
#define FASTBOOT_FILE   "../.fastboot"  /* autorun: boot without sleep  */
#define KILLSCRIPT_FILE "../.killscript"/* autorun: shut mud down       */
#define PAUSE_FILE      "../pause"      /* autorun: don't restart mud   */
#endif

/* names of various files and directories */
#define INDEX_FILE	"index"		       /**< index of world files    */
#define MINDEX_FILE	"index.mini"	       /**< and for mini-mud-mode   */
#define HLP_PREFIX	ETC_TEXT"help"SLASH    /**< for HELP <keyword>      */

#define CREDITS_FILE	ETC_TEXT"credits" /* for the 'credits' command	*/
#define NEWS_FILE	ETC_TEXT"news"	/* for the 'news' command	*/
#define MOTD_FILE	ETC_TEXT"motd"	/* messages of the day / mortal	*/
#define IMOTD_FILE	ETC_TEXT"imotd"	/* messages of the day / immort	*/
#define GREETINGS_FILE	ETC_TEXT"greetings"	/* The opening screen.	*/
#define HELP_PAGE_FILE	ETC_TEXT_HELP"screen"	/* for HELP <CR>	*/
#define INFO_FILE	ETC_TEXT"info"		/* for INFO		*/
#define WIZLIST_FILE	ETC_TEXT"wizlist"	/* for WIZLIST		*/
#define IMMLIST_FILE	ETC_TEXT"immlist"	/* for IMMLIST		*/
#define BACKGROUND_FILE	ETC_TEXT"background"/* for the background story	*/
#define POLICIES_FILE	ETC_TEXT"policies"  /* player policies/rules	*/
#define HANDBOOK_FILE	ETC_TEXT"handbook"  /* handbook for new immorts	*/

#define IDEA_FILE	ETC_MISC"ideas"	   /* for the 'idea'-command	*/
#define TYPO_FILE	ETC_MISC"typos"	   /*         'typo'		*/
#define BUG_FILE	ETC_MISC"bugs"	   /*         'bug'		*/
#define MESS_FILE	ETC_MISC"messages" /* damage messages		*/
#define SOCMESS_FILE	ETC_MISC"socials"  /* messages for social acts	*/
#define XNAME_FILE	ETC_MISC"xnames"   /* invalid name substrings	*/

#define PLAYER_FILE	ETC_ETC"players"   /* the player database	*/
#define MAIL_FILE	ETC_ETC"plrmail"   /* for the mudmail system	*/
#define BAN_FILE	ETC_ETC"badsites"  /* for the siteban system	*/
#define HCONTROL_FILE	ETC_ETC"hcontrol"  /* for the house system	*/
#define TIME_FILE	ETC_ETC"time"	   /* for calendar system	*/
#define COMMANDS_FILE   ETC_ETC"commands.dao" /* for the commands table */

/* public procedures in db.c */
void	boot_db(void);
void	destroy_db(void);
int	create_entry(char *name);
void	zone_update(void);
char	*fread_string(FILE *fl, const char *error);
long	get_id_by_name(const char *name);
char	*get_name_by_id(long id);
void	save_mud_time(timeInfoData_t *when);
void	free_extra_descriptions(extraDescData_t *edesc);
void	free_text_files(void);
void	free_player_index(void);
void	free_help(void);

void	char_to_store(charData_t *ch, pfileElement_t *st);
void	store_to_char(pfileElement_t *st, charData_t *ch);
int	load_char(const char *name, pfileElement_t *char_element);
void	save_char(charData_t *ch);
void	init_char(charData_t *ch);
charData_t* create_char(void);
int	vnum_mobile(char *searchname, charData_t *ch);
void	clear_char(charData_t *ch);
void	reset_char(charData_t *ch);
void	free_char(charData_t *ch);

charData_t *read_mobile(charData_t *mobProto) ;
itemData_t *read_item(itemData_t *itemProto);
itemData_t *create_obj(void);

void	clear_object(itemData_t *obj);
void	free_obj(itemData_t *obj);
int	vnum_object(char *searchname, charData_t *ch);

#define REAL 0
#define VIRTUAL 1

/**
 * An alias for struct _playerIndex_t.
 * @typedef struct _playerIndex_t
 */
typedef struct _playerIndex_t playerIndex_t;

struct _playerIndex_t {
   char	*name;
   long id;
};

/**
 * An alias for struct _helpData_t.
 * @typedef struct _helpData_t
 */
typedef struct _helpData_t helpData_t;

struct _helpData_t {
   char	*keyword;
   char *entry;
   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

/**
 * An alias for struct _siteBanData_t.
 * @typedef struct _siteBanData_t
 */
typedef struct _siteBanData_t siteBanData_t;

struct _siteBanData_t {
   char	site[BANNED_SITE_LENGTH+1];
   int	type;
   time_t date;
   char	name[MAX_NAME_LENGTH+1];
   siteBanData_t *next;
};


/* global buffering system */

#ifndef __DB_C__

extern descriptorData_t *descriptor_list;
extern charData_t *character_list;
extern playerSpecials_t dummy_mob;

extern indexData_t *mob_index;

extern indexData_t *obj_index;
extern itemData_t *object_list;

extern struct _hashMap_t *zones;
#endif

#ifndef __CONFIG_C__
extern char	*OK;
extern char	*NOPERSON;
extern char	*NOEFFECT;
#endif

#endif /* __DB_H__ */