1stMUD/corefiles/
1stMUD/gods/
1stMUD/notes/
1stMUD/player/
1stMUD/win32/
1stMUD/win32/ROM/
/**************************************************************************
*  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
*  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
*                                                                         *
*  Merc Diku Mud improvements 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          *
*  benefiting.  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                    *
***************************************************************************
*       1stMUD ROM Derivative (c) 2001-2002 by Ryan Jennings              *
*            http://1stmud.dlmud.com/  <r-jenn@shaw.ca>                   *
***************************************************************************/
#if !defined(GLOBALS_H)
#define GLOBALS_H

#if defined(IN_DB_C)
#if defined(GLOBAL)
#undef GLOBAL
#endif
#if defined(GLOBAL_DEF)
#undef GLOBAL_DEF
#endif
#define    GLOBAL(str) str
#define GLOBAL_DEF(str, def) str = def

#else
#if defined(GLOBAL)
#undef GLOBAL
#endif
#if defined(GLOBAL_DEF)
#undef GLOBAL_DEF
#endif
#define    GLOBAL(str) extern str
#define GLOBAL_DEF(str, def) extern str
#endif

GLOBAL_DEF(struct class_type *class_table, NULL);
GLOBAL_DEF(RACE_DATA * race_first, NULL);
GLOBAL_DEF(RACE_DATA * race_last, NULL);
GLOBAL_DEF(struct skill_type *skill_table, NULL);
GLOBAL_DEF(struct group_type *group_table, NULL);

GLOBAL_DEF(SOCIAL_DATA * social_first, NULL);
GLOBAL_DEF(SOCIAL_DATA * social_last, NULL);

GLOBAL_DEF(int maxSocial, 0);

GLOBAL_DEF(HELP_DATA * help_first, NULL);
GLOBAL_DEF(HELP_DATA * help_last, NULL);

GLOBAL_DEF(SHOP_DATA * shop_first, NULL);
GLOBAL_DEF(SHOP_DATA * shop_last, NULL);

GLOBAL_DEF(CHAR_DATA * char_first, NULL);
GLOBAL_DEF(CHAR_DATA * char_last, NULL);
GLOBAL_DEF(DESCRIPTOR_DATA * descriptor_first, NULL);
GLOBAL_DEF(DESCRIPTOR_DATA * descriptor_last, NULL);
GLOBAL_DEF(OBJ_DATA * object_first, NULL);
GLOBAL_DEF(OBJ_DATA * object_last, NULL);
GLOBAL_DEF(CHAR_DATA * player_first, NULL);
GLOBAL_DEF(CHAR_DATA * player_last, NULL);

GLOBAL_DEF(PROG_CODE * mprog_first, NULL);
GLOBAL_DEF(PROG_CODE * mprog_last, NULL);
GLOBAL_DEF(PROG_CODE * oprog_first, NULL);
GLOBAL_DEF(PROG_CODE * oprog_last, NULL);
GLOBAL_DEF(PROG_CODE * rprog_first, NULL);
GLOBAL_DEF(PROG_CODE * rprog_last, NULL);

GLOBAL_DEF(AUCTION_DATA * auction_first, NULL);
GLOBAL_DEF(AUCTION_DATA * auction_last, NULL);

GLOBAL_DEF(STAT_DATA * stat_first, NULL);
GLOBAL_DEF(STAT_DATA * stat_last, NULL);
GLOBAL_DEF(BAN_DATA * ban_first, NULL);
GLOBAL_DEF(BAN_DATA * ban_last, NULL);

GLOBAL(char bug_buf[MSL]);
GLOBAL_DEF(time_t current_time, 0);
GLOBAL_DEF(bool fLogAll, FALSE);
GLOBAL_DEF(FILE * fpReserve, NULL);
GLOBAL(KILL_DATA kill_table[MAX_LEVEL]);
GLOBAL(char log_buf[MSL]);
GLOBAL(TIME_INFO_DATA time_info);
GLOBAL(WEATHER_DATA weather_info);
GLOBAL_DEF(bool MOBtrigger, TRUE);
GLOBAL_DEF(DISABLED_DATA * disabled_first, NULL);	/* interp.c */
GLOBAL_DEF(DISABLED_DATA * disabled_last, NULL);	/* interp.c */
GLOBAL(GQUEST gquest_info);
GLOBAL(WAR_DATA war_info);
GLOBAL_DEF(int maxClan, 0);
GLOBAL_DEF(int maxCommands, 0);
GLOBAL_DEF(int maxSkill, 0);
GLOBAL_DEF(int maxGroup, 0);
GLOBAL_DEF(int maxRace, 0);
GLOBAL_DEF(int maxClass, 0);
GLOBAL_DEF(bool fBootDb, FALSE);
GLOBAL_DEF(int newmobs, 0);
GLOBAL_DEF(int newobjs, 0);
#if !defined(NO_STRHASH)
GLOBAL_DEF(char *string_space, NULL);
GLOBAL_DEF(int nAllocString, 0);
GLOBAL_DEF(size_t sAllocString, 0);
#endif
GLOBAL_DEF(CHAR_DATA * char_free, NULL);
GLOBAL_DEF(PC_DATA * pcdata_free, NULL);
GLOBAL_DEF(DESCRIPTOR_DATA * descriptor_free, NULL);
GLOBAL_DEF(OBJ_DATA * obj_free, NULL);
GLOBAL_DEF(AFFECT_DATA * affect_free, NULL);
GLOBAL_DEF(MBR_DATA * mbr_free, NULL);
GLOBAL_DEF(int arena, FIGHT_OPEN);
GLOBAL_DEF(int maxDeity, 0);
GLOBAL_DEF(DEITY_DATA * deity_first, NULL);
GLOBAL_DEF(DEITY_DATA * deity_last, NULL);

GLOBAL_DEF(WPWD_DATA * wpwd_first, NULL);
GLOBAL_DEF(WPWD_DATA * wpwd_last, NULL);

GLOBAL_DEF(MBR_DATA * mbr_first, NULL);
GLOBAL_DEF(MBR_DATA * mbr_last, NULL);

GLOBAL_DEF(CLAN_DATA * clan_first, NULL);
GLOBAL_DEF(CLAN_DATA * clan_last, NULL);

GLOBAL_DEF(CMD_DATA * cmd_first, NULL);
GLOBAL_DEF(CMD_DATA * cmd_last, NULL);

GLOBAL(CMD_DATA * command_hash[126]);
GLOBAL(SOCIAL_DATA * social_hash[27]);

#endif