/***************************************************************************
 *  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			   *
***************************************************************************/

#if !defined(DB_H)
#define DB_H

/* vals from db.c */
extern bool fBootDb;
extern int newmobs;
extern int newobjs;
extern int maxSocial;

#if defined(CONST_SOCIAL)
extern int social_count;
#endif

#define			MAX_STRING	    4000*1024
#define			MAX_PERM_BLOCK	131072
#define			MAX_MEM_LIST	11
extern void *rgFreeList[MAX_MEM_LIST];
extern const size_t rgSizeList[MAX_MEM_LIST];
extern unsigned long nAllocGP[MAX_MEM_LIST];
extern int nPermBlocks;
extern char *string_space;
extern int nAllocString;
extern int sAllocString;
extern int nAllocPerm;
extern size_t sAllocPerm;

/* conversion from db.h */
void convert_mob ( MOB_INDEX_DATA * mob );
void convert_obj ( OBJ_INDEX_DATA * obj );

/* externals for counting purposes */
extern OBJ_DATA *obj_free;
extern CHAR_DATA *char_free;
extern DESCRIPTOR_DATA *descriptor_free;
extern PC_DATA *pcdata_free;
extern AFFECT_DATA *affect_free;

char *strspace_alloc (  );
#define STRSPACE_INCREMENT 128
#define SHOW_ALL_RGSIZES
#define ALLOC_PERM_ALIGN sizeof(long)
#define MAGIC_CHECKING
#define object_free obj_free
#define OK  0
#define ERR 1

/* macro for flag swapping */
#define GET_UNSET(flag1,flag2)	(~(flag1)&((flag1)|(flag2)))

/* Magic number for memory allocation */
#define MAGIC_NUM 52571214

/* func from db.c */
extern void assign_area_vnum ( VNUM vnum ); /* OLC */

/* from db2.c */

void convert_mobile ( MOB_INDEX_DATA * pMobIndex ); /* OLC ROM */
void convert_objects ( void );  /* OLC ROM */
void convert_object ( OBJ_INDEX_DATA * pObjIndex ); /* OLC ROM */

#endif