kbkmud/player/
/***************************************************************************
 *  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-1996 Russ Taylor			   *
*	ROM has been brought to you by the ROM consortium		   *
*	    Russ Taylor (rtaylor@pacinfo.com)				   *
*	    Gabrielle Taylor (gtaylor@pacinfo.com)			   *
*	    Brian Moore (rom@rom.efn.org)				   *
*	By using this code, you have agreed to follow the terms of the	   *
*	ROM license, in the file Tartarus/doc/rom.license                  *
***************************************************************************/

/***************************************************************************
*       Tartarus code is copyright (C) 1997-1998 by Daniel Graham          *
*	In using this code you agree to comply with the Tartarus license   *
*       found in the file /Tartarus/doc/tartarus.doc                       *
***************************************************************************/

struct flag_type
{
    char *name;
    int bit;
    bool settable;
};

struct cabal_type
{
    char 	*name;
    char 	*who_name;
    char	*long_name;
    sh_int 	hall;
    sh_int	item_vnum;
    sh_int 	altar_vnum;
    sh_int	key_vnum;
    sh_int      max_members;
    bool	independent; /* true for loners */
    bool    	status;
    bool	induct;
};

struct cabal_restr_type
{
    bool    acc_class[MAX_CLASS];
    bool    acc_race[MAX_PC_RACE];
    int     acc_align;
    int     acc_ethos;
};

struct cabal_message
{
    char *login;
    char *logout;
    char *entrygreeting;
};


struct position_type
{
    char *name;
    char *short_name;
};

struct sex_type
{
    char *name;
};

struct size_type
{
    char *name;
};

/*struct empire_type
{
    char 	*name;
    char 	*who_name;
};
*/

struct style_type
{
    long bit;
    char *name;
};

struct color_type
{
	char *color_name;
	char *color_ascii;
};

struct color_event_type
{
	char *event_name;
	char *default_color;
	int min_level;
};

extern  const   struct  flag_type       aftype_table[];

struct display_type
{
    char *name;
    long bit;
    char *display;
};

struct hometown_type
{
	char *name;
	int recall;
	int pit;
	int align;
	int ethos;
	int restrict;
};

struct bounty_type
{
    char *rank_name;
    char *rank_extitle;
    int credits_required;
};

struct quest_reward
{
    char *  	keyword;
    int     	price;
    int		type;
    int		setItem;
    int		set;
    int		vnum;
    char    	description[MSL];
    bool    	acc_class[MAX_CLASS];
    bool    	acc_race[MAX_PC_RACE];
    int     	acc_align;
    int     	acc_ethos;
    FUNC * 	function;
};

struct set_type
{
    int		set;
    char *	setName;
    SET_ITEM_PROG *	function;
};

struct sector_type
{
    char *	name;
    sh_int	flag;
    int		move;
    int		wait;
    char *	desc;
};


/* game tables */
extern  const   struct  cabal_type      	cabal_table[MAX_CABAL];
extern  const   struct  cabal_restr_type  	cabal_restr_table[MAX_CABAL];
extern	const	struct	position_type		position_table[];
extern	const	struct	sex_type		sex_table[];
extern	const	struct	size_type		size_table[];
extern  const   struct  empire_type     	empire_table[MAX_EMPIRE];
extern  const   struct  color_type		color_table[MAX_COLORS];
extern  const   struct  color_event_type	color_event[MAX_EVENTS];
extern  const   struct  cabal_message   	cabal_messages[MAX_CABAL];
extern  const   struct  hometown_type		hometown_table[MAX_HOMETOWN];
extern  const   struct  display_type    	apply_locations[];
extern  const   struct  bounty_type		bounty_table[MAX_BOUNTY];
extern  const   struct  quest_reward		quest_reward_table[MAX_QUEST_REWARDS];
extern  const   struct  set_type		set_type_table[MAX_SET_TYPES];
extern  const	struct	sector_type		sector_table[SECT_MAX];
/* swarrior */
extern  const   struct  style_type      style_table[];

/* flag tables */
extern	const	struct	flag_type	act_flags[];
extern	const	struct	flag_type	plr_flags[];
extern	const	struct	flag_type	affect_flags[];
extern	const	struct	flag_type	off_flags[];
extern  const   struct  flag_type       extended_flags[];
extern	const	struct	flag_type	imm_flags[];
extern	const	struct	flag_type	form_flags[];
extern	const	struct	flag_type	part_flags[];
extern	const	struct	flag_type	comm_flags[];
extern	const	struct	flag_type	extra_flags[];
extern	const	struct	flag_type	restrict_flags[];
extern	const	struct	flag_type	wear_flags[];
extern	const	struct	flag_type	weapon_flags[];
extern	const	struct	flag_type	container_flags[];
extern	const	struct	flag_type	portal_flags[];
extern	const	struct	flag_type	room_flags[];
extern	const	struct	flag_type	exit_flags[];
extern 	const	struct  flag_type	mprog_flags[];
extern	const	struct	flag_type	area_flags[];
extern	const	struct	flag_type	sector_flags[];
extern	const	struct	flag_type	door_resets[];
extern	const	struct	flag_type	wear_loc_strings[];
extern	const	struct	flag_type	wear_loc_flags[];
extern	const	struct	flag_type	res_flags[];
extern	const	struct	flag_type	imm_flags[];
extern	const	struct	flag_type	vuln_flags[];
extern	const	struct	flag_type	type_flags[];
extern	const	struct	flag_type	apply_flags[];
extern	const	struct	flag_type	sex_flags[];
extern	const	struct	flag_type	furniture_flags[];
extern	const	struct	flag_type	weapon_class[];
extern	const	struct	flag_type	apply_types[];
extern	const	struct	flag_type	weapon_type2[];
extern	const	struct	flag_type	apply_types[];
extern	const	struct	flag_type	size_flags[];
extern	const	struct	flag_type	position_flags[];
extern	const	struct	flag_type	ac_type[];
extern	const	struct	bit_type	bitvector_type[];
extern  const   struct  flag_type	direction_table[];
extern  const   struct  flag_type	area_type_table[];

extern const struct bit_type bitvector_type[];
extern const struct flag_type room_flags[];
extern const struct flag_type area_flags[];
extern const struct flag_type sector_flags[];
extern const struct flag_type wear_loc_strings[];
extern const struct flag_type wear_loc_flags[];
extern const struct flag_type door_resets[];

extern  const   struct  flag_type       mprog_flags[];

char * bitmask_string args(( BITMASK *bm, const struct flag_type *flags ));