1stMUD4.0/bin/
1stMUD4.0/doc/MPDocs/
1stMUD4.0/player/
1stMUD4.0/win32/
1stMUD4.0/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-2003 by Ryan Jennings              *
*            http://1stmud.dlmud.com/  <r-jenn@shaw.ca>                   *
***************************************************************************/

#if !defined(TYPEDEF_H)
#define TYPEDEF_H

#if !defined(__cplusplus)
typedef unsigned char bool;
#endif

#if	!defined(FALSE)
#if defined(__cplusplus)
#define FALSE    false
#else
#define FALSE	 0
#endif
#endif

#if	!defined(TRUE)
#if defined(__cplusplus)
#define TRUE     true
#else
#define TRUE	 1
#endif
#endif

typedef signed long int vnum_t;
#if defined(WIN32)
typedef __int64 flag_t;
#else
typedef signed long long int flag_t;
#endif

/*
 * Structure types.
 */
typedef struct affect_data AFFECT_DATA;
typedef struct area_data AREA_DATA;
typedef struct ban_data BAN_DATA;
typedef struct buf_type BUFFER;
typedef struct char_data CHAR_DATA;
typedef struct descriptor_data DESCRIPTOR_DATA;
typedef struct exit_data EXIT_DATA;
typedef struct extra_descr_data EXTRA_DESCR_DATA;
typedef struct help_data HELP_DATA;
typedef struct kill_data KILL_DATA;
typedef struct mob_index_data MOB_INDEX_DATA;
typedef struct note_data NOTE_DATA;
typedef struct obj_data OBJ_DATA;
typedef struct obj_index_data OBJ_INDEX_DATA;
typedef struct pc_data PC_DATA;
typedef struct gen_data GEN_DATA;
typedef struct reset_data RESET_DATA;
typedef struct room_index_data ROOM_INDEX_DATA;
typedef struct shop_data SHOP_DATA;
typedef struct time_info_data TIME_INFO_DATA;
typedef struct weather_data WEATHER_DATA;
typedef struct prog_list PROG_LIST;
typedef struct prog_code PROG_CODE;
typedef struct disabled_data DISABLED_DATA;
typedef struct stat_data STAT_DATA;
typedef struct social_type SOCIAL_DATA;
typedef struct gquest_data GQUEST;
typedef struct war_data WAR;
typedef struct clan_type CLAN_DATA;
typedef struct cmd_type CMD_DATA;
typedef struct skill_type SKILL_DATA;
typedef struct group_type GROUP_DATA;
typedef struct race_type RACE_DATA;
typedef struct class_type CLASS_DATA;
typedef struct corpse_data CORPSE_DATA;
typedef struct auction_data AUCTION_DATA;
typedef struct clan_rank RANK_DATA;
typedef struct deity_type DEITY_DATA;
typedef struct wpwd_data WPWD_DATA;
typedef struct mbr_data MBR_DATA;
typedef struct war_char_data WAR_DATA;
typedef struct gquest_char_data GQ_DATA;
typedef struct channel_type CHANNEL_DATA;
typedef struct crs_data CRS;
typedef struct mud_data MUD;
typedef struct song_data SONG_DATA;
typedef struct read_data READ_DATA;
typedef struct write_data WRITE_DATA;

/*
 * Function types.
 */
typedef void DO_FUN(CHAR_DATA * ch, const char *argument);
typedef bool SPEC_FUN(CHAR_DATA * ch);
typedef void SPELL_FUN(int sn, int level, CHAR_DATA * ch, void *vo, int target);
typedef int LOOKUP_F(const char *);
typedef bool VALIDATE_FUN(CHAR_DATA * ch, const void *arg);
typedef bool ED_FUN(const char *, CHAR_DATA *, const char *, void *,
					const void *, VALIDATE_FUN *);
typedef void OBJ_FUN(OBJ_DATA * obj, const char *argument);
typedef void ROOM_FUN(ROOM_INDEX_DATA * room, const char *argument);

typedef enum
{
	spec_public_flag,
	spec_clan_flag,
	spec_imm_flag,
	spec_buddy_flag,
	spec_none
}
channel_types;

typedef enum
{ action_read, action_write }
action_types;

typedef enum
{
	WAR_NONE = 0,
	WAR_CLAN = 1,
	WAR_RACE = 2,
	WAR_CLASS = 3,
	WAR_GENOCIDE = 4,
	WAR_DEITY = 5,
	WAR_SEX = 6,
	MAX_WAR = 7
}
war_types;

#endif