

int tolower(int c);
int toupper(int c);
int isalnum(int c);
int isalpha(int c);
int isascii(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);

typedef unsigned int size_t;
typedef struct {
int	_file;			int	_flag;			unsigned _bufsiz;		char	*_ptr;			int	_cnt;			char	*_base;		} FILE;
extern	FILE _files[32];
FILE *fopen(char *name, char *mode);
int   fclose(FILE *fp);
int   fread(void *buf, int sizelem, int n, FILE *fp);
int   fwrite(void *buffer,int sizelem, int n,FILE *fp);
int   feof(FILE *fp);
int   ferror(FILE *fp);
int   fflush(FILE *fp);
void  clearerr(FILE *fp);
int   fseek(FILE *fp,long offset,int origin);
long  ftell(FILE *fp);
int   fscanf(FILE *fp,char *format,...);
int   scanf(char *format,...);
int   sscanf(char *buf, char *fmt, ...);
int   fprintf(FILE *fp, char *fmt, ...);
int   printf(char *fmt, ...);
int   sprintf(char *buf, char *fmt, ...);
int   vsprintf(char *buf, char *fmt, char *args);
int   fgetc(FILE *fp);
char *fgets(char *buf, int n, FILE *fp);
int   getc(FILE *fp);
int   getchar();
char *gets(char *buf);
int   ungetc(int c, FILE *fp);
int   fputc(int c, FILE *fp);
int   fputs(char *str, FILE *fp);
int   putc(int c, FILE *fp);
int   putchar(int c);
int   puts(char *str);


typedef unsigned int size_t;
void *memchr(void *buf, int c, size_t count);
int   memcmp(void *buf1, void *buf2, size_t n);
void *memcpy(void *buf1, void *buf2, size_t count);
void *memmove(void *buf1, void *buf2, size_t count);
void *memset(void *buf, int val, size_t n);
char *strcat(char *buf1,  char *buf2);
char *strncat(char *buf1, char *buf2, size_t n);
char *strcpy(char *buf1, char *buf2);
char *strncpy(char *buf1, char *buf2, size_t n);
int   strcmp(char *str1, char *str2);
int   strncmp(char *buf1, char *buf2, size_t n);
char *strchr(char *str, int c);
char *strrchr(char *buf, int c);
size_t strlen(char *str);
char *strpbrk(char *str1, char *str2);
char *strstr(char *buf1, char *buf2);
size_t strspn(char *str1, char *str2);
size_t strcspn(char *str1, char *str2);

typedef long time_t;
struct tm
{
int	tm_sec;		int	tm_min;		int	tm_hour;	int	tm_mday;	int	tm_mon;		int	tm_year;	int	tm_wday;	int	tm_yday;	int	tm_isdst;	};
struct tm *localtime(time_t *pt);
time_t time(time_t *pt);
time_t mktime(struct tm *ptm);
char *ctime(time_t *pt);
char *asctime(struct tm *ptm);
double difftime(time_t t1,time_t t2);
void sleep(time_t seconds);






typedef unsigned int size_t;
void exit(int errstatus);
void *malloc(int n);
void  free(void *ptr);
char *getenv(char *str1);
void srand(unsigned int seed);
int rand();
char *itoa(int value,char *str1,int radix);
char *ltoa(long value, char *str1, int radix);
long labs(long n);
int abs(int n);
long atol(char *str1);
int atoi(char *str1);
long strtol(char *nptr, char **endptr, int base);
unsigned long strtoul(char *nptr, char **endptr, int base);
double strtod(char *nptr, char **endptr);
double atof(char *ptr);


typedef unsigned int size_t;
void *memchr(void *buf, int c, size_t count);
int   memcmp(void *buf1, void *buf2, size_t n);
void *memcpy(void *buf1, void *buf2, size_t count);
void *memmove(void *buf1, void *buf2, size_t count);
void *memset(void *buf, int val, size_t n);
char *strcat(char *buf1,  char *buf2);
char *strncat(char *buf1, char *buf2, size_t n);
char *strcpy(char *buf1, char *buf2);
char *strncpy(char *buf1, char *buf2, size_t n);
int   strcmp(char *str1, char *str2);
int   strncmp(char *buf1, char *buf2, size_t n);
char *strchr(char *str, int c);
char *strrchr(char *buf, int c);
size_t strlen(char *str);
char *strpbrk(char *str1, char *str2);
char *strstr(char *buf1, char *buf2);
size_t strspn(char *str1, char *str2);
size_t strcspn(char *str1, char *str2);





void startchat(char*);
char* dochat(char* talker,char *msg,char* target);
typedef	int				ch_ret;
typedef	int				obj_ret;
typedef short    int			sh_int;
typedef unsigned char			bool;
typedef struct	affect_data		AFFECT_DATA;
typedef struct	area_data		AREA_DATA;
typedef struct  auction_data            AUCTION_DATA;	
typedef struct	watch_data		WATCH_DATA;
typedef struct	ban_data		BAN_DATA;
typedef struct	extracted_char_data	EXTRACT_CHAR_DATA;
typedef struct	char_data		CHAR_DATA;
typedef struct	hunt_hate_fear		HHF_DATA;
typedef struct	fighting_data		FIGHT_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	menu_data		MENU_DATA;
typedef struct	mob_index_data		MOB_INDEX_DATA;
typedef struct 	char_morph 		CHAR_MORPH;
typedef struct  morph_data 	        MORPH_DATA;
typedef struct  nuisance_data		NUISANCE_DATA;
typedef struct	note_data		NOTE_DATA;
typedef struct	comment_data		COMMENT_DATA;
typedef struct	board_data		BOARD_DATA;
typedef struct	obj_data		OBJ_DATA;
typedef struct	obj_index_data		OBJ_INDEX_DATA;
typedef struct	pc_data			PC_DATA;
typedef	struct	plane_data		PLANE_DATA;
typedef struct	reset_data		RESET_DATA;
typedef struct	map_index_data		MAP_INDEX_DATA;		
typedef struct	map_data		MAP_DATA;		
typedef struct	room_index_data		ROOM_INDEX_DATA;
typedef struct	shop_data		SHOP_DATA;
typedef struct	race_type		RACE_TYPE;
typedef struct	repairshop_data		REPAIR_DATA;
typedef struct	reserve_data		RESERVE_DATA;
typedef struct	time_info_data		TIME_INFO_DATA;
typedef struct	hour_min_sec		HOUR_MIN_SEC;
typedef struct	weather_data		WEATHER_DATA;
typedef struct	neighbor_data		NEIGHBOR_DATA; 
typedef	struct	clan_data		CLAN_DATA;
typedef	struct	alliance_data		ALLIANCE_DATA;
typedef struct  council_data 		COUNCIL_DATA;
typedef struct  tourney_data            TOURNEY_DATA;
typedef struct	mob_prog_data		MPROG_DATA;
typedef struct	mob_prog_act_list	MPROG_ACT_LIST;
typedef struct  mpsleep_data 		MPSLEEP_DATA;
typedef	struct	editor_data		EDITOR_DATA;
typedef struct	teleport_data		TELEPORT_DATA;
typedef struct	timer_data		TIMER;
typedef struct  godlist_data		GOD_DATA;
typedef struct	system_data		SYSTEM_DATA;
typedef	struct	smaug_affect		SMAUG_AFF;
typedef struct  who_data                WHO_DATA;
typedef	struct	skill_type		SKILLTYPE;
typedef	struct	social_type		SOCIALTYPE;
typedef	struct	cmd_type		CMDTYPE;
typedef	struct	killed_data		KILLED_DATA;
typedef struct  deity_data		DEITY_DATA;
typedef struct	wizent			WIZENT;
typedef struct  ignore_data		IGNORE_DATA;
typedef struct  immortal_host           IMMORTAL_HOST;
typedef struct	project_data		PROJECT_DATA;
typedef struct	extended_bitvector	EXT_BV;
typedef	struct	lcnv_data		LCNV_DATA;
typedef	struct	lang_data		LANG_DATA;
typedef struct  planet_data		PLANET_DATA;
typedef struct  space_data		SPACE_DATA;
typedef struct  ship_data		SHIP_DATA;
typedef struct  missile_data	MISSILE_DATA;
typedef struct  guard_data		GUARD_DATA;
typedef struct	censor_data		CENSOR_DATA;
typedef struct	member_data		MEMBER_DATA; 
typedef struct	member_list		MEMBER_LIST; 
typedef struct  membersort_data	MS_DATA;     
typedef	void	DO_FUN		( CHAR_DATA *ch, char *argument ) ;
typedef bool	SPEC_FUN	( CHAR_DATA *ch ) ;
typedef ch_ret	SPELL_FUN	( int sn, int level, CHAR_DATA *ch, void *vo ) ;
extern int MAX_PC_RACE;
extern int MAX_PC_CLASS;

void hotboot_recover( void );
DO_FUN do_hotboot ; 

typedef struct	wizinfo_data	WIZINFO_DATA;
extern WIZINFO_DATA *	first_wizinfo;
extern WIZINFO_DATA *   last_wizinfo;
struct wizinfo_data
{
WIZINFO_DATA *	next;
WIZINFO_DATA *	prev;
char *	name;
char *  email;
int	icq;
sh_int	level;
};
DO_FUN do_icq_number ;  
DO_FUN do_email ;  
DO_FUN do_finger ;  
DO_FUN do_wizinfo ;  
DO_FUN do_privacy ;  
void build_wizinfo( bool bootup );

extern  time_t pfile_time;  
extern  HOUR_MIN_SEC * set_pfile_time; 
extern  struct  tm *new_pfile_time;
extern  time_t new_pfile_time_t;
extern  sh_int num_pfiles;
void check_pfiles	( time_t reset ) ;
void init_pfile_scan_time	( void ) ;
void save_timedata	( void ) ;
void fread_timedata ( FILE *fp ) ;
bool load_timedata	( void ) ;
DO_FUN do_pfiles ;

void	scan_equipment 	( void ) ;
bool	scan_players	( char *dirname, char *filename ) ;
bool	scan_corpses	( char *dirname, char *filename ) ;

void set_char_color( sh_int	AType, CHAR_DATA *ch );
void set_pager_color( sh_int AType,	CHAR_DATA *ch );
char *color_str( sh_int	AType, CHAR_DATA *ch );

typedef struct  homebuy_data   HOMEBUY_DATA; 
struct homebuy_data
{
HOMEBUY_DATA *prev;
HOMEBUY_DATA *next;
char *bidder;
char *seller;
int vnum;
sh_int incpercent; 
int bid;    
int endtime;
bool apartment;  
}; 
HOMEBUY_DATA *first_homebuy;
HOMEBUY_DATA *last_homebuy;
typedef struct lmsg_data LMSG_DATA;
struct lmsg_data
{
LMSG_DATA *prev;
LMSG_DATA *next;
char *name;
sh_int  type;
};
LMSG_DATA *first_lmsg;
LMSG_DATA *last_lmsg;
typedef struct  home_data   HOME_DATA; 
struct home_data
{
HOME_DATA   *prev;
HOME_DATA   *next;
char        *name;
bool        apartment;
int         vnum[5];
}; 
HOME_DATA *first_home;
HOME_DATA *last_home;
typedef struct  accessories_data   ACCESSORIES_DATA; 
struct accessories_data
{
ACCESSORIES_DATA *prev;
ACCESSORIES_DATA *next;
int vnum;
int price;
bool mob;
}; 
ACCESSORIES_DATA *first_accessory;
ACCESSORIES_DATA *last_accessory;
DO_FUN do_accessories; DO_FUN do_gohome;      DO_FUN do_homebuy;     DO_FUN do_house;                                        DO_FUN do_residence;   DO_FUN do_sellhouse;   
void save_residence(ROOM_INDEX_DATA *location);
bool set_house( CHAR_DATA *ch, int vnum, bool apartment);
bool remove_house( CHAR_DATA *ch);
bool add_room( HOME_DATA *homedata, ROOM_INDEX_DATA *location, char *argument);
bool give_key( CHAR_DATA *ch, int vnum);
void fwrite_house(HOME_DATA *homedata);
void load_homedata();
bool load_house_file( char *name );
void update_house_list( );
int fread_house( FILE *fp );
void save_house_by_vnum(int vnum);
void save_accessories();
void load_accessories();
void fread_accessories( FILE *fp );
bool add_homebuy( CHAR_DATA *seller, int vnum, bool apartment, int price);
bool remove_homebuy(HOMEBUY_DATA *tmphome);
void save_homebuy();
void load_homebuy();
void fread_homebuy( FILE *fp );
void homebuy_update();
bool check_parse_name( char *name, bool newchar ); 
CHAR_DATA *load_player( char *name );
void logoff( CHAR_DATA *ch );
void fread_loginmsg( FILE *fp );
void add_loginmsg( char *name, sh_int type);
void check_loginmsg(CHAR_DATA *ch);
void delete_reset   ( AREA_DATA *pArea, RESET_DATA *pReset );   
bool is_room_reset  ( RESET_DATA *pReset, ROOM_INDEX_DATA *aRoom, AREA_DATA *pArea );    
bool DONT_UPPER;
int     area_version;
int	top_mob_serial;
typedef enum {
GROWTH_NONE, GROWTH_SLOW, GROWTH_MEDIUM, GROWTH_FAST
} hair_growth_rate;
typedef enum {
STYLE_NONE, STYLE_BALD, STYLE_CREW, STYLE_SHORT_BANGS,
STYLE_MEDIUM_BANGS, STYLE_LONG_BANGS, STYLE_FLOWING, STYLE_UPWARD_SPIKE,
STYLE_LONG_UPWARD_SPIKE, STYLE_ALL_SPIKE, STYLE_UP_SPIKE_ONE_FACE, STYLE_ERATIC_SPIKES,
STYLE_SHORT_PONYTAIL, STYLE_MEDIUM_PONYTAIL, STYLE_LONG_PONYTAIL, STYLE_SPIKEY_FLATTOP,
STYLE_PONYTAIL, MAX_HAIR_STYLE
} hair_styles;
typedef enum
{
LOG_NORMAL, LOG_ALWAYS, LOG_NEVER, LOG_BUILD, LOG_HIGH, LOG_COMM,
LOG_WARN, LOG_ALL
} log_types;
typedef enum
{
rNONE, rCHAR_DIED, rVICT_DIED, rBOTH_DIED, rCHAR_QUIT, rVICT_QUIT,
rBOTH_QUIT, rSPELL_FAILED, rOBJ_SCRAPPED, rOBJ_EATEN, rOBJ_EXPIRED,
rOBJ_TIMER, rOBJ_SACCED, rOBJ_QUAFFED, rOBJ_USED, rOBJ_EXTRACTED,
rOBJ_DRUNK, rCHAR_IMMUNE, rVICT_IMMUNE,
rCHAR_AND_OBJ_EXTRACTED = 128,
rERROR = 255
} ret_types;
struct extended_bitvector
{
int		bits[4];
};

typedef struct dns_data DNS_DATA;
extern DNS_DATA *first_cache;
extern DNS_DATA *last_cache;
struct dns_data
{
DNS_DATA *next;
DNS_DATA *prev;
char *ip;
char *name;
time_t time;
};
DO_FUN do_cache ;
void resolve_dns( DESCRIPTOR_DATA *d, long ip );
void process_dns( DESCRIPTOR_DATA *d );
char *in_dns_cache( char *ip );
void load_dns( void );
void check_dns( void );
struct char_morph
{
MORPH_DATA  * morph;
EXT_BV	affected_by;    
EXT_BV	no_affected_by; 
int           no_immune;      
int           no_resistant;   
int           no_suscept;     
int		immune;		
int		resistant;	
int		suscept;	
int           timer;          
sh_int        ac;
sh_int        blood;
sh_int        con;
sh_int        damroll;
sh_int        dex;
sh_int        dodge;
sh_int        hit;
sh_int        hitroll;
sh_int        inte;
sh_int        lck;
sh_int        mana;
sh_int        move;
sh_int        parry;
sh_int        saving_breath;
sh_int        saving_para_petri;
sh_int        saving_poison_death;
sh_int        saving_spell_staff;
sh_int        saving_wand;
sh_int        str;
sh_int        tumble;
};
struct morph_data
{
MORPH_DATA    *next;          
MORPH_DATA    *prev;          
char          *blood;         
char          *damroll;
char		*deity;
char          *description;
char          *help;          
char          *hit;           
char          *hitroll;
char          *key_words;     
char          *long_desc;     
char          *mana;          
char          *morph_other;   
char          *morph_self;    
char          *move;          
char          *name;          
char          *short_desc;    
char          *no_skills;     
char          *skills;
char          *unmorph_other; 
char          *unmorph_self;  
EXT_BV	affected_by;    
int           class;          
int		defpos;		
EXT_BV	no_affected_by;	
int           no_immune;	
int           no_resistant;	
int           no_suscept;	
int           immune;		
int           resistant;      
int           suscept;        
int           obj[3];		
int           race;           
int		timer;		
int           used;           
int           vnum;           
sh_int        ac;
sh_int	bloodused;	
sh_int        con;		
sh_int	dayfrom;	
sh_int	dayto;		
sh_int        dex;		
sh_int        dodge;		
sh_int	favourused;	
sh_int	gloryused;	
sh_int	hpused;		
sh_int        inte;		
sh_int        lck;		
sh_int        level;          
sh_int	manaused;	
sh_int	moveused;	
sh_int        parry;		
sh_int	pkill;		
sh_int        saving_breath;	
sh_int        saving_para_petri;
sh_int        saving_poison_death;
sh_int        saving_spell_staff;
sh_int        saving_wand;
sh_int	sex;		
sh_int        str;		
sh_int	timefrom;	
sh_int	timeto;		
sh_int        tumble;		
bool          no_cast;	
bool		objuse[3];	
};
struct lcnv_data
{
LCNV_DATA *		next;
LCNV_DATA *		prev;
char *		old;
int			olen;
char *		new;
int			nlen;
};
struct lang_data
{
LANG_DATA *		next;
LANG_DATA *		prev;
char *		name;
LCNV_DATA *		first_precnv;
LCNV_DATA *		last_precnv;
char *		alphabet;
LCNV_DATA *		first_cnv;
LCNV_DATA *		last_cnv;
};
struct who_data
{
WHO_DATA *prev;
WHO_DATA *next;
char *text;
int  type;
};
struct  watch_data
{
WATCH_DATA *        next;
WATCH_DATA *        prev;
sh_int              imm_level;
char *              imm_name;        
char *              target_name;     
char *              player_site;     
};
struct nuisance_data
{
long int            time;     
long int            max_time; 
int                 flags;    
int                 power;    
};

struct global_board_data
{
char *short_name; 
char *long_name;  
int read_level; 
int write_level; 
char *names;       
int force_type; 
int purge_days; 
NOTE_DATA *note_first; 
bool changed; 
int access; 
};
typedef struct global_board_data GLOBAL_BOARD_DATA;
extern GLOBAL_BOARD_DATA boards[12]; 
void finish_note(GLOBAL_BOARD_DATA *board, NOTE_DATA *note); 
void free_note (NOTE_DATA *note); 
void load_global_boards(void); 
int board_lookup(const char *name); 
bool is_note_to (CHAR_DATA *ch, NOTE_DATA *note); 
void personal_message (const char *sender, const char *to, const char *subject, const int expire_days, const char *text);
void make_note(const char* board_name, const char *sender, const char *to, const char *subject, const int expire_days, const char *text);
void save_notes ();
void handle_con_note_to (DESCRIPTOR_DATA *d, char * argument);
void handle_con_note_subject (DESCRIPTOR_DATA *d, char * argument);
void handle_con_note_expire (DESCRIPTOR_DATA *d, char * argument);
void handle_con_note_text (DESCRIPTOR_DATA *d, char * argument);
void handle_con_note_finish (DESCRIPTOR_DATA *d, char * argument);
DO_FUN do_global_note ;
DO_FUN do_global_boards ;
struct	ban_data
{
BAN_DATA *next;
BAN_DATA *prev;
char     *name;     
char     *user;     
char     *note;     
char     *ban_by;   
char     *ban_time; 
int      flag;      
int      unban_date;
sh_int   duration;  
sh_int   level;     
bool     warn;      
bool     prefix;    
bool     suffix;    
};
struct	reserve_data
{
RESERVE_DATA *next;
RESERVE_DATA *prev;
char *name;
};
struct	censor_data
{
CENSOR_DATA *next;
CENSOR_DATA *prev;
char *word;
};
typedef enum
{
SUN_DARK, SUN_RISE, SUN_LIGHT, SUN_SET
} sun_positions;
typedef enum
{
SKY_CLOUDLESS, SKY_CLOUDY, SKY_RAINING, SKY_LIGHTNING
} sky_conditions;
struct	time_info_data
{
int		hour;
int		day;
int		month;
int		year;
int		sunlight;
int		lastRealMonth;
};
struct hour_min_sec
{
int hour;
int min;
int sec;
int manual;
};
struct	weather_data
{
int 		temp;		
int			precip;		
int			wind;		
int			temp_vector;	
int			precip_vector;	
int			wind_vector;
int			climate_temp;	
int			climate_precip;
int			climate_wind;
NEIGHBOR_DATA *	first_neighbor;	
NEIGHBOR_DATA *	last_neighbor;
char *		echo;		
int			echo_color;	
};
struct neighbor_data
{
NEIGHBOR_DATA *next;
NEIGHBOR_DATA *prev;
char *name;
AREA_DATA *address;
};
struct	wizent
{
WIZENT *		next;
WIZENT *		last;
char *		name;
sh_int		level;
};
struct immortal_host
{
IMMORTAL_HOST *next;
IMMORTAL_HOST *prev;
char *name;
char *host;
bool prefix;
bool suffix;
};
struct	project_data
{
PROJECT_DATA * next;		
PROJECT_DATA * prev;		
NOTE_DATA *  first_log;		
NOTE_DATA *  last_log;		
char *name;
char *owner;
char *coder;
char *status;
char *date;
char *description;
bool taken;				
};
typedef enum
{
CON_GET_NAME = -99,
CON_GET_OLD_PASSWORD,
CON_CONFIRM_NEW_NAME,	CON_GET_NEW_PASSWORD,	CON_CONFIRM_NEW_PASSWORD,
CON_GET_NEW_SEX,		CON_GET_NEW_CLASS,		CON_READ_MOTD,
CON_GET_NEW_RACE,		CON_GET_EMULATION,		CON_GET_WANT_RIPANSI,
CON_TITLE,			CON_PRESS_ENTER,		CON_WAIT_1,
CON_WAIT_2,			CON_WAIT_3,				CON_ACCEPTED,
CON_GET_PKILL,		CON_READ_IMOTD,			CON_GET_NEW_HAIR,
CON_GET_NEW_EYE,		CON_GET_NEW_BUILD,		CON_GET_NEW_COMPLEXION,
CON_GET_NEW_SECONDARYCOLOR,	CON_COPYOVER_RECOVER,
CON_GET_HC,			CON_GET_LAST_NAME,		CON_CONFIRM_LAST_NAME,
CON_PLAYING = 0,		CON_NOTE_TO,			CON_NOTE_SUBJECT,
CON_NOTE_EXPIRE,		CON_NOTE_TEXT,			CON_NOTE_FINISH,
CON_EDITING,
} connection_types;
typedef enum
{
SUB_NONE, SUB_PAUSE, SUB_PERSONAL_DESC, SUB_BAN_DESC, SUB_OBJ_SHORT,
SUB_OBJ_LONG, SUB_OBJ_EXTRA, SUB_MOB_LONG, SUB_MOB_DESC, SUB_ROOM_DESC,
SUB_ROOM_EXTRA, SUB_ROOM_EXIT_DESC, SUB_WRITING_NOTE, SUB_MPROG_EDIT,
SUB_HELP_EDIT, SUB_WRITING_MAP, SUB_PERSONAL_BIO, SUB_REPEATCMD,
SUB_RESTRICTED, SUB_DEITYDESC, SUB_MORPH_DESC, SUB_MORPH_HELP,
SUB_PROJ_DESC, SUB_GNOTE,SUB_PERSONAL_DESC1, SUB_PERSONAL_DESC2,
SUB_PERSONAL_DESC3, SUB_PERSONAL_DESC4, SUB_PERSONAL_DESC5,
SUB_TIMER_DO_ABORT = 128, SUB_TIMER_CANT_ABORT, SUB_CMD_LOOP_TIMER
} char_substates;
struct	descriptor_data
{
DESCRIPTOR_DATA *	next;
DESCRIPTOR_DATA *	prev;
DESCRIPTOR_DATA *	snoop_by;
CHAR_DATA *		character;
CHAR_DATA *		original;
int			port;
int			descriptor;
sh_int		connected;
sh_int		idle;
sh_int		lines;
sh_int		scrlen;
bool		fcommand;
char		inbuf		[1024];
char		incomm		[1024];
char		inlast		[1024];
int			repeat;
char *		outbuf;
unsigned long	outsize;
int			outtop;
char *		pagebuf;
unsigned long	pagesize;
int			pagetop;
char *		pagepoint;
char		pagecmd;
char		pagecolor;
char *		user;
int			newstate;
unsigned char	prevcolor;
char *		host;
char *		host2;
bool		ansi;
int			ifd;
pid_t		ipid;
sh_int	prev_idle;
bool	psuppress_cmdspam;
int		psuppress_channel;
};
typedef enum {
RACE_SAIYAN, RACE_HUMAN, RACE_HALFBREED, RACE_NAMEK, RACE_ANDROID, RACE_ICER,
RACE_BIO_ANDROID, RACE_WIZARD, RACE_GHETTI, RACE_KAIO,
} race_types;
typedef enum { TO_ROOM, TO_NOTVICT, TO_VICT, TO_CHAR, TO_CANSEE } to_types;
typedef enum
{ AT_COLORBASE = 1024,
AT_PLAIN = AT_COLORBASE,
AT_ACTION,
AT_SAY,
AT_GOSSIP,
AT_YELL,
AT_TELL,
AT_WHISPER,
AT_HIT,
AT_HITME,
AT_IMMORT,
AT_HURT,
AT_FALLING,
AT_DANGER,
AT_MAGIC,
AT_CONSIDER,
AT_REPORT,
AT_POISON,
AT_SOCIAL,
AT_DYING,
AT_DEAD,
AT_SKILL,
AT_CARNAGE,
AT_DAMAGE,
AT_FLEE,
AT_RMNAME,
AT_RMDESC,
AT_OBJECT,
AT_PERSON,
AT_LIST,
AT_BYE,
AT_GOLD,
AT_GTELL,
AT_NOTE,
AT_HUNGRY,
AT_THIRSTY,
AT_FIRE,
AT_SOBER,
AT_WEAROFF,
AT_EXITS,
AT_SCORE,
AT_RESET,
AT_LOG,
AT_DIEMSG,
AT_WARTALK,
AT_RACETALK,
AT_IGNORE,
AT_DIVIDER,
AT_MORPH,
AT_TOPCOLOR
} at_color_types;
struct	help_data
{
HELP_DATA *	next;
HELP_DATA * prev;
sh_int	level;
char *	keyword;
char *	text;
};
struct	shop_data
{
SHOP_DATA *	next;			
SHOP_DATA * prev;			
int		keeper;			
sh_int	buy_type [5];	
sh_int	profit_buy;		
sh_int	profit_sell;		
sh_int	open_hour;		
sh_int	close_hour;		
};
struct	repairshop_data
{
REPAIR_DATA * next;			
REPAIR_DATA * prev;			
int		  keeper;		
sh_int	  fix_type [3];	
sh_int	  profit_fix;		
sh_int	  shop_type;		
sh_int	  open_hour;		
sh_int	  close_hour;		
};
struct  act_prog_data
{
struct act_prog_data *next;
void *vo;
};
struct	mob_prog_act_list
{
MPROG_ACT_LIST * next;
char *	     buf;
CHAR_DATA *      ch;
OBJ_DATA *	     obj;
void *	     vo;
};
struct	mob_prog_data
{
MPROG_DATA * next;
sh_int	 type;
bool	 triggered;
int		 resetdelay;
char *	 arglist;
char *	 comlist;
};
typedef enum {MP_MOB, MP_ROOM, MP_OBJ} mp_types;
struct mpsleep_data
{
MPSLEEP_DATA * next;
MPSLEEP_DATA * prev;
int timer; 
mp_types type; 
ROOM_INDEX_DATA *room; 
int ignorelevel;
int iflevel;
bool ifstate[20][3];
char * com_list;
CHAR_DATA * mob;
CHAR_DATA * actor;
OBJ_DATA * obj;
void * vo;
bool single_step;
};
bool	MOBtrigger;
struct	class_type
{
char *	who_name;		
EXT_BV	affected;
sh_int	attr_prime;		
sh_int	attr_second;		
sh_int	attr_deficient;		
int		resist;
int		suscept;
int		weapon;			
int		guild;			
sh_int	skill_adept;		
sh_int	thac0_00;		
sh_int	thac0_32;		
sh_int	hp_min;			
sh_int	hp_max;			
bool	fMana;			
sh_int	exp_base;		
};
struct	race_type
{
char 	race_name	[16];	
EXT_BV	affected;		
sh_int	str_plus;		
sh_int	dex_plus;		
sh_int	int_plus;		
sh_int	con_plus;		
sh_int	lck_plus;		
sh_int      hit;
sh_int      mana;
int      	resist;
int      	suscept;
int		class_restriction;	
int         language;               
sh_int      ac_plus;
sh_int      alignment;
EXT_BV      attacks;
EXT_BV      defenses;
sh_int      minalign;
sh_int      maxalign;
sh_int      exp_multiplier;
sh_int      height;
sh_int      weight;
sh_int      hunger_mod;
sh_int      thirst_mod;
sh_int	saving_poison_death;
sh_int	saving_wand;
sh_int	saving_para_petri;
sh_int	saving_breath;
sh_int	saving_spell_staff;
char *	where_name[29];
sh_int      mana_regen;
sh_int      hp_regen;
sh_int      race_recall;
sh_int	max_armor;
};
typedef enum
{
CLAN_PLAIN, CLAN_VAMPIRE, CLAN_WARRIOR, CLAN_DRUID, CLAN_MAGE, CLAN_CELTIC,
CLAN_THIEF, CLAN_CLERIC, CLAN_UNDEAD, CLAN_CHAOTIC, CLAN_NEUTRAL, CLAN_LAWFUL,
CLAN_NOKILL, CLAN_ORDER, CLAN_GUILD
} clan_types;
typedef enum
{
GROUP_CLAN, GROUP_COUNCIL, GROUP_GUILD
} group_types;
struct membersort_data
{
MS_DATA *next;
MS_DATA *prev;
MEMBER_DATA *member;
};
struct member_data
{
char 		*name;	
char		*since;	
int			race;	
int			level;	
int 		deaths;	
int 		kills;	
MEMBER_DATA 	*next;	
MEMBER_DATA 	*prev;	
};
struct member_list
{
char 			*name;			
MEMBER_DATA 	*first_member;	
MEMBER_DATA 	*last_member;	
MEMBER_LIST		*next;			
MEMBER_LIST		*prev;			
};
typedef enum
{
SHIP_CIVILIAN, SHIP_REPUBLIC, SHIP_IMPERIAL, MOB_SHIP
} ship_types;
typedef enum
{
SHIP_DOCKED, SHIP_READY, SHIP_BUSY, SHIP_BUSY_2, SHIP_BUSY_3, SHIP_REFUEL,
SHIP_LAUNCH, SHIP_LAUNCH_2, SHIP_LAND, SHIP_LAND_2, SHIP_HYPERSPACE,
SHIP_DISABLED, SHIP_FLYING
} ship_states;
typedef enum
{
MISSILE_READY, MISSILE_FIRED, MISSILE_RELOAD, MISSILE_RELOAD_2, MISSILE_DAMAGED
} missile_states;
typedef enum
{
FIGHTER_SHIP, MIDSIZE_SHIP, CAPITAL_SHIP, SHIP_PLATFORM, CLOUD_CAR,
OCEAN_SHIP, LAND_SPEEDER, WHEELED, LAND_CRAWLER, WALKER
} ship_classes;
typedef enum
{
CONCUSSION_MISSILE, PROTON_TORPEDO, HEAVY_ROCKET, HEAVY_BOMB
} missile_types;
struct space_data
{
SPACE_DATA * next;
SPACE_DATA * prev;
SHIP_DATA  * first_ship;
SHIP_DATA  * last_ship;
MISSILE_DATA  * first_missile;
MISSILE_DATA  * last_missile;
PLANET_DATA * first_planet;
PLANET_DATA * last_planet;
char       * filename;
char       * name;
char       * star1;
char       * star2;
char       * planet1;
char       * planet2;
char       * planet3;
char       * location1a;
char       * location2a;
char       * location3a;
char       * location1b;
char       * location2b;
char       * location3b;
char       * location1c;
char       * location2c;
char       * location3c;
int          xpos;
int          ypos;
int          s1x;
int          s1y;
int          s1z;
int          s2x;
int          s2y;
int          s2z;
int          doc1a;
int          doc2a;
int			doc3a;
int          doc1b;
int          doc2b;
int			doc3b;
int          doc1c;
int          doc2c;
int			doc3c;
int          p1x;
int          p1y;
int          p1z;
int          p2x;
int          p2y;
int          p2z;
int          p3x;
int          p3y;
int          p3z;
int          gravitys1;
int          gravitys2;
int          gravityp1;
int          gravityp2;
int          gravityp3;
int          p1_low;
int          p1_high;
int          p2_low;
int          p2_high;
int          p3_low;
int          p3_high;
int          crash;
};
struct guard_data
{
GUARD_DATA * next;
GUARD_DATA * prev;
GUARD_DATA * next_on_planet;
GUARD_DATA * prev_on_planet;
CHAR_DATA  * mob;
ROOM_INDEX_DATA * reset_loc;
PLANET_DATA * planet;
};
struct  planet_data
{
PLANET_DATA    * next;
PLANET_DATA    * prev;
PLANET_DATA    * next_in_system;
PLANET_DATA    * prev_in_system;
GUARD_DATA     * first_guard;
GUARD_DATA     * last_guard;
SPACE_DATA     * starsystem;
AREA_DATA      * first_area;
AREA_DATA      * last_area;
char           * name;
char		   * filename;
long			base_value;
CLAN_DATA	   * governed_by;
int				population;
bool			flags;
float			pop_support;
};
struct ship_data
{
SHIP_DATA * next;
SHIP_DATA * prev;
SHIP_DATA * next_in_starsystem;
SHIP_DATA * prev_in_starsystem;
SHIP_DATA * next_in_room;
SHIP_DATA * prev_in_room;
ROOM_INDEX_DATA *in_room;
SPACE_DATA * starsystem;
char *      filename;
char *      name;
char *      home;
char *      description;
char *      owner;
char *      pilot;
char *      copilot;
char *      dest;
sh_int      type;
sh_int      class;
sh_int      comm;
sh_int      sensor;
sh_int      astro_array;
sh_int      hyperspeed;
int         hyperdistance;
sh_int      realspeed;
sh_int	currspeed;
sh_int      shipstate;
sh_int      statet0;
sh_int      statet1;
sh_int      statet2;
sh_int      missiletype;
sh_int      missilestate;
sh_int      missiles;
sh_int      maxmissiles;
sh_int      torpedos;
sh_int      maxtorpedos;
sh_int      rockets;
sh_int      maxrockets;
sh_int      lasers;
sh_int      tractorbeam;
sh_int      manuever;
bool        bayopen;
bool        hatchopen;
bool 	autorecharge;
bool        autotrack;
bool 	autospeed;
float       vx, vy, vz;
float       hx, hy, hz;
float       jx, jy, jz;
int         maxenergy;
int         energy;
int         shield;
int         maxshield;
int         hull;
int         maxhull;
int         cockpit;
int         turret1;
int         turret2;
int         location;
int         lastdoc;
int         shipyard;
int         entrance;
int         hanger;
int         engineroom;
int         firstroom;
int         lastroom;
int         navseat;
int         pilotseat;
int         coseat;
int         gunseat;
long        collision;
SHIP_DATA  *target0;
SHIP_DATA  *target1;
SHIP_DATA  *target2;
SPACE_DATA *currjump;
sh_int      chaff;
sh_int      maxchaff;
bool        chaff_released;
bool        autopilot;
int			cost;
};
struct missile_data
{
MISSILE_DATA * next;
MISSILE_DATA * prev;
MISSILE_DATA * next_in_starsystem;
MISSILE_DATA * prev_in_starsystem;
SPACE_DATA * starsystem;
SHIP_DATA * target;
SHIP_DATA * fired_from;
char      * fired_by;
sh_int      missiletype;
sh_int      age;
int         speed;
int         mx, my, mz;
};
struct  alliance_data
{
ALLIANCE_DATA *	next;
ALLIANCE_DATA *	prev;
CLAN_DATA *		clan;		
CLAN_DATA *		vclan;		
sh_int			status;			
sh_int			vclanStatus;	
sh_int			votes;			
char *			leader1Vote;	
char *			leader2Vote;	
sh_int			changeTimer;
sh_int			newStatus;
};
struct	clan_data
{
CLAN_DATA * next;		
CLAN_DATA * prev;		
char *	filename;	
char *	name;		
char *  short_name;
char *	motto;		
char *	description;	
char *	deity;		
char *	leader1;	
char *	leader2;	
char *	leader3;	
char *	leader4;	
char *	leader5;	
char *	leader6;	
char *	badge;		
int		pkills[7];	
int		pdeaths[7];	
int		spar_wins[7];	
int		spar_loss[7];	
int		mkills;		
int		mdeaths;	
int		illegal_pk;	
int		score;		
sh_int	clan_type;	
sh_int	favour;		
sh_int	strikes;	
sh_int	members;	
sh_int	activeMem;  
sh_int	mem_limit;	
sh_int	alignment;	
int		board;		
int		clanobj1;	
int		clanobj2;	
int		clanobj3;	
int		clanobj4;	
int		clanobj5;	
AREA_DATA * clanHQ;
int		recall;		
int		storeroom;	
int		deathRecall;	
int		clanMorgue;	
int		clanDonate;	
int		clanJail;	
int		guard1;		
int		guard2;		
int		class;		
long double clanPL; 
char *	mRank1;		
char *	mRank2;
char *	mRank3;
char *	mRank4;
char *	mRank5;
char *	mRank6;
char *	mRank7;
char *	fRank1;		
char *	fRank2;
char *	fRank3;
char *	fRank4;
char *	fRank5;
char *	fRank6;
char *	fRank7;
int		mRank1Count;		
int		mRank2Count;
int		mRank3Count;
int		mRank4Count;
int		mRank5Count;
int		mRank6Count;
int		mRank7Count;
int		fRank1Count;		
int		fRank2Count;
int		fRank3Count;
int		fRank4Count;
int		fRank5Count;
int		fRank6Count;
int		fRank7Count;
int		clanSkill1;		
int		clanSkill2;		
int		clanSkill3;		
char *	clanWebSite;	
sh_int	tax;			
double	bank;			
};
struct	council_data
{
COUNCIL_DATA * next;	
COUNCIL_DATA * prev;	
char *	filename;	
char *	name;		
char *	description;	
char *	head;		
char *	head2;          
char *	powers;		
sh_int	members;	
int		board;		
int		meeting;	
};
struct	deity_data
{
DEITY_DATA * next;
DEITY_DATA * prev;
char *	filename;
char *	name;
char *	description;
sh_int	alignment;
sh_int	worshippers;
sh_int	scorpse;
sh_int	sdeityobj;
sh_int	savatar;
sh_int	srecall;
sh_int	flee;
sh_int	flee_npcrace;
sh_int	flee_npcfoe;
sh_int	kill;
sh_int	kill_magic;
sh_int	kill_npcrace;
sh_int	kill_npcfoe;
sh_int	sac;
sh_int	bury_corpse;
sh_int	aid_spell;
sh_int	aid;
sh_int	backstab;
sh_int	steal;
sh_int	die;
sh_int	die_npcrace;
sh_int	die_npcfoe;
sh_int	spell_aid;
sh_int	dig_corpse;
int		race;
int		race2;
int		class;
int		sex;
int		npcrace;
int		npcfoe;
int		suscept;
int		element;
EXT_BV	affected;
int		susceptnum;
int		elementnum;
int		affectednum;
int	        objstat;
};
struct tourney_data
{
int    open;
int    low_level;
int    hi_level;
};
struct	note_data
{
NOTE_DATA *	next;
NOTE_DATA * prev;
char *	sender;
char *	date;
char *	to_list;
char *	subject;
int         voting;
char *	yesvotes;
char *	novotes;
char *	abstentions;
char *	text;
time_t      expire;
time_t      date_stamp;
};
struct	board_data
{
BOARD_DATA * next;			
BOARD_DATA * prev;			
NOTE_DATA *  first_note;		
NOTE_DATA *  last_note;		
char *	 note_file;		
char *	 read_group;		
char *	 post_group;		
char *	 extra_readers;		
char *       extra_removers;        
char *	 otakemessg;		
char *	 opostmessg;		
char *	 oremovemessg;
char *	 ocopymessg;
char *	 olistmessg;
char *	 postmessg;
char *	 oreadmessg;
int		 board_obj;		
sh_int	 num_posts;		
sh_int	 min_read_level;	
sh_int	 min_post_level;	
sh_int	 min_remove_level;	
sh_int	 max_posts;		
int          type;                  
};
struct at_color_type
{
char *name;
sh_int def_color;
};
struct	affect_data
{
AFFECT_DATA *	next;
AFFECT_DATA *	prev;
sh_int		type;
int			duration;
sh_int		location;
int			modifier;
EXT_BV		bitvector;
int			affLocator;	
};
struct	smaug_affect
{
SMAUG_AFF *		next;
char *		duration;
sh_int		location;
char *		modifier;
int			bitvector;	
};
typedef enum
{
ACT_IS_NPC, ACT_SENTINEL, ACT_SCAVENGER, ACT_BOUNTY, ACT_ROBOT,
ACT_AGGRESSIVE, ACT_STAY_AREA, ACT_WIMPY, ACT_PET, ACT_TRAIN,
ACT_PRACTICE, ACT_IMMORTAL, ACT_DEADLY, ACT_POLYSELF, ACT_META_AGGR,
ACT_GUARDIAN, ACT_RUNNING, ACT_NOWANDER, ACT_MOUNTABLE, ACT_MOUNTED,
ACT_SCHOLAR, ACT_SECRETIVE, ACT_HARDHAT, ACT_MOBINVIS, ACT_NOASSIST,
ACT_AUTONOMOUS, ACT_PACIFIST, ACT_NOATTACK, ACT_ANNOYING, ACT_STATSHIELD,
ACT_PROTOTYPE, ACT_UPGRADE, ACT_AUCTIONEER, ACT_UNDERTAKER, ACT_NOFOLLOW,
MAX_ACT
} act_types;
typedef enum
{
AFF_BLIND, AFF_INVISIBLE, AFF_DETECT_EVIL, AFF_DETECT_INVIS,
AFF_DETECT_MAGIC, AFF_DETECT_HIDDEN, AFF_HOLD, AFF_SANCTUARY,
AFF_FAERIE_FIRE, AFF_INFRARED, AFF_CURSE, AFF_FLAMING, AFF_POISON,
AFF_PROTECT, AFF_PARALYSIS, AFF_SNEAK, AFF_HIDE, AFF_SLEEP, AFF_CHARM,
AFF_FLYING, AFF_PASS_DOOR, AFF_FLOATING, AFF_TRUESIGHT, AFF_DETECTTRAPS,
AFF_SCRYING, AFF_FIRESHIELD, AFF_SHOCKSHIELD, AFF_HAUS1, AFF_ICESHIELD,
AFF_POSSESS, AFF_BERSERK, AFF_AQUA_BREATH, AFF_RECURRINGSPELL,
AFF_CONTAGIOUS, AFF_ACIDMIST,  AFF_VENOMSHIELD, AFF_PL, AFF_KAIOKEN,
AFF_SSJ, AFF_SSJ2, AFF_SSJ3, AFF_SSJ4, AFF_SNAMEK, AFF_ICER2,
AFF_ICER3, AFF_ICER4, AFF_ICER5, AFF_PL_SWITCH, AFF_OOZARU,
AFF_DEAD, AFF_HEART, AFF_TAG, AFF_ELECTRICSHIELD, AFF_HYPER,
AFF_SEMIPERFECT, AFF_PERFECT, AFF_ULTRAPERFECT,AFF_GROWTH,
AFF_GIANT, AFF_SPLIT_FORM, AFF_TRI_FORM, AFF_MULTI_FORM,
AFF_USSJ, AFF_USSJ2, AFF_EXTREME,
MAX_AFFECTED_BY
} affected_by_types;
typedef enum
{
ATCK_BITE, ATCK_CLAWS, ATCK_TAIL, ATCK_STING, ATCK_PUNCH, ATCK_KICK,
ATCK_TRIP, ATCK_BASH, ATCK_STUN, ATCK_GOUGE, ATCK_BACKSTAB, ATCK_FEED,
ATCK_DRAIN,  ATCK_FIREBREATH, ATCK_FROSTBREATH, ATCK_ACIDBREATH,
ATCK_LIGHTNBREATH, ATCK_GASBREATH, ATCK_POISON, ATCK_NASTYPOISON, ATCK_GAZE,
ATCK_BLINDNESS, ATCK_CAUSESERIOUS, ATCK_EARTHQUAKE, ATCK_CAUSECRITICAL,
ATCK_CURSE, ATCK_FLAMESTRIKE, ATCK_HARM, ATCK_FIREBALL, ATCK_COLORSPRAY,
ATCK_WEAKEN, ATCK_SPIRALBLAST, MAX_ATTACK_TYPE
} attack_types;
typedef enum
{
DFND_PARRY, DFND_DODGE, DFND_HEAL, DFND_CURELIGHT, DFND_CURESERIOUS,
DFND_CURECRITICAL, DFND_DISPELMAGIC, DFND_DISPELEVIL, DFND_SANCTUARY,
DFND_FIRESHIELD, DFND_SHOCKSHIELD, DFND_SHIELD, DFND_BLESS, DFND_STONESKIN,
DFND_TELEPORT, DFND_MONSUM1, DFND_MONSUM2, DFND_MONSUM3, DFND_MONSUM4,
DFND_DISARM, DFND_ICESHIELD, DFND_GRIP, DFND_TRUESIGHT, DFND_ACIDMIST,
DFND_VENOMSHIELD, MAX_DEFENSE_TYPE
} defense_types;
typedef enum { SS_NONE, SS_POISON_DEATH, SS_ROD_WANDS, SS_PARA_PETRI,
SS_BREATH, SS_SPELL_STAFF } save_types;
typedef enum { SD_NONE, SD_FIRE, SD_COLD, SD_ELECTRICITY, SD_ENERGY, SD_ACID,
SD_POISON, SD_DRAIN } spell_dam_types;
typedef enum { SA_NONE, SA_CREATE, SA_DESTROY, SA_RESIST, SA_SUSCEPT,
SA_DIVINATE, SA_OBSCURE, SA_CHANGE } spell_act_types;
typedef enum { SP_NONE, SP_MINOR, SP_GREATER, SP_MAJOR } spell_power_types;
typedef enum { SC_NONE, SC_LUNAR, SC_SOLAR, SC_TRAVEL, SC_SUMMON,
SC_LIFE, SC_DEATH, SC_ILLUSION } spell_class_types;
typedef enum { SE_NONE, SE_NEGATE, SE_EIGHTHDAM, SE_QUARTERDAM, SE_HALFDAM,
SE_3QTRDAM, SE_REFLECT, SE_ABSORB } spell_save_effects;
typedef enum { SEX_NEUTRAL, SEX_MALE, SEX_FEMALE } sex_types;
typedef enum
{
TRAP_TYPE_POISON_GAS = 1, TRAP_TYPE_POISON_DART,    TRAP_TYPE_POISON_NEEDLE,
TRAP_TYPE_POISON_DAGGER,  TRAP_TYPE_POISON_ARROW,   TRAP_TYPE_BLINDNESS_GAS,
TRAP_TYPE_SLEEPING_GAS,   TRAP_TYPE_FLAME,	      TRAP_TYPE_EXPLOSION,
TRAP_TYPE_ACID_SPRAY,	    TRAP_TYPE_ELECTRIC_SHOCK, TRAP_TYPE_BLADE,
TRAP_TYPE_SEX_CHANGE
} trap_types;
typedef enum
{
ITEM_NONE, ITEM_LIGHT, ITEM_SCROLL, ITEM_WAND, ITEM_STAFF, ITEM_WEAPON,
ITEM_FIREWEAPON, ITEM_MISSILE, ITEM_TREASURE, ITEM_ARMOR, ITEM_POTION,
ITEM_WORN, ITEM_FURNITURE, ITEM_TRASH, ITEM_OLDTRAP, ITEM_CONTAINER,
ITEM_NOTE, ITEM_DRINK_CON, ITEM_KEY, ITEM_FOOD, ITEM_MONEY, ITEM_PEN,
ITEM_BOAT, ITEM_CORPSE_NPC, ITEM_CORPSE_PC, ITEM_FOUNTAIN, ITEM_PILL,
ITEM_BLOOD, ITEM_BLOODSTAIN, ITEM_SCRAPS, ITEM_PIPE, ITEM_HERB_CON,
ITEM_HERB, ITEM_INCENSE, ITEM_FIRE, ITEM_BOOK, ITEM_SWITCH, ITEM_LEVER,
ITEM_PULLCHAIN, ITEM_BUTTON, ITEM_DIAL, ITEM_RUNE, ITEM_RUNEPOUCH,
ITEM_MATCH, ITEM_TRAP, ITEM_MAP, ITEM_PORTAL, ITEM_PAPER,
ITEM_TINDER, ITEM_LOCKPICK, ITEM_SPIKE, ITEM_DISEASE, ITEM_OIL, ITEM_FUEL,
ITEM_EMPTY1, ITEM_EMPTY2, ITEM_MISSILE_WEAPON, ITEM_PROJECTILE, ITEM_QUIVER,
ITEM_SHOVEL, ITEM_SALVE, ITEM_COOK, ITEM_KEYRING, ITEM_ODOR, ITEM_CHANCE,
ITEM_SCOUTER
} item_types;
typedef enum
{
ITEM_GLOW, ITEM_HUM, ITEM_DARK, ITEM_LOYAL, ITEM_EVIL, ITEM_INVIS, ITEM_MAGIC,
ITEM_NODROP, ITEM_BLESS, ITEM_ANTI_GOOD, ITEM_ANTI_EVIL, ITEM_ANTI_NEUTRAL,
ITEM_NOREMOVE, ITEM_INVENTORY, ITEM_ANTI_SAIYAN, ITEM_ANTI_HUMAN,
ITEM_ANTI_HALFBREED, ITEM_ANTI_NAMEK, ITEM_ANTI_ANDROID, ITEM_ANTI_ICER,
ITEM_ANTI_BIO_ANDROID, ITEM_ANTI_WIZARD, ITEM_ORGANIC, ITEM_METAL, ITEM_DONATION,
ITEM_CLANOBJECT, ITEM_CLANCORPSE,
ITEM_HIDDEN, ITEM_POISONED, ITEM_COVERING, ITEM_DEATHROT, ITEM_BURIED,
ITEM_PROTOTYPE, ITEM_NOLOCATE, ITEM_GROUNDROT, ITEM_LOOTABLE,
ITEM_RARE, ITEM_UNIQUE, ITEM_ANTI_GHETTI, ITEM_ANTI_KAIO,
ITEM_NOAUCTION, MAX_ITEM_FLAG
} item_extra_flags;
typedef enum
{
APPLY_NONE, APPLY_STR, APPLY_DEX, APPLY_INT, APPLY_CON,
APPLY_SEX, APPLY_CLASS, APPLY_LEVEL, APPLY_AGE, APPLY_HEIGHT, APPLY_WEIGHT,
APPLY_MANA, APPLY_HIT, APPLY_MOVE, APPLY_GOLD, APPLY_EXP, APPLY_AC,
APPLY_HITROLL, APPLY_DAMROLL, APPLY_SAVING_POISON, APPLY_SAVING_ROD,
APPLY_SAVING_PARA, APPLY_SAVING_BREATH, APPLY_SAVING_SPELL,
APPLY_AFFECT, APPLY_RESISTANT, APPLY_IMMUNE, APPLY_SUSCEPTIBLE,
APPLY_WEAPONSPELL, APPLY_LCK, APPLY_BACKSTAB, APPLY_PICK, APPLY_TRACK,
APPLY_STEAL, APPLY_SNEAK, APPLY_HIDE, APPLY_PALM, APPLY_DETRAP, APPLY_DODGE,
APPLY_PEEK, APPLY_SCAN, APPLY_GOUGE, APPLY_SEARCH, APPLY_MOUNT, APPLY_DISARM,
APPLY_KICK, APPLY_PARRY, APPLY_BASH, APPLY_STUN, APPLY_PUNCH, APPLY_CLIMB,
APPLY_GRIP, APPLY_SCRIBE, APPLY_BREW, APPLY_WEARSPELL, APPLY_REMOVESPELL,
APPLY_EMOTION, APPLY_MENTALSTATE, APPLY_STRIPSN, APPLY_REMOVE, APPLY_DIG,
APPLY_FULL, APPLY_THIRST, APPLY_DRUNK, APPLY_BLOOD, APPLY_COOK,
APPLY_RECURRINGSPELL, APPLY_CONTAGIOUS, APPLY_EXT_AFFECT, APPLY_ODOR,
APPLY_ROOMFLAG, APPLY_SECTORTYPE, APPLY_ROOMLIGHT, APPLY_TELEVNUM,
APPLY_TELEDELAY, APPLY_PL_MULT, APPLY_PL_PERCENT, APPLY_NATURALAC,
MAX_APPLY_TYPE
} apply_types;
typedef enum
{
ROOM_DARK, ROOM_DEATH, ROOM_NO_MOB, ROOM_INDOORS, ROOM_LAWFUL, ROOM_NEUTRAL,
ROOM_CHAOTIC, ROOM_NO_MAGIC, ROOM_TUNNEL, ROOM_PRIVATE, ROOM_SAFE, ROOM_SOLITARY,
ROOM_PET_SHOP, ROOM_NO_RECALL, ROOM_DONATION, ROOM_NODROPALL, ROOM_SILENCE,
ROOM_LOGSPEECH, ROOM_NODROP, ROOM_CLANSTOREROOM, ROOM_NO_SUMMON, ROOM_NO_ASTRAL,
ROOM_TELEPORT, ROOM_TELESHOWDESC, ROOM_NOFLOOR, ROOM_NOSUPPLICATE, ROOM_ARENA,
ROOM_NOMISSILE, ROOM_GRAV, ROOM_HTANKS, ROOM_PROTOTYPE, ROOM_DND, ROOM_SPACECRAFT,
ROOM_NO_DRIVING, ROOM_TIME_CHAMBER, ROOM_NO_TELEPORT, ROOM_NO_TELEPORT_OUT
} ext_room_flags;
typedef enum
{
DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_UP, DIR_DOWN,
DIR_NORTHEAST, DIR_NORTHWEST, DIR_SOUTHEAST, DIR_SOUTHWEST, DIR_SOMEWHERE
} dir_types;
typedef enum
{
PULL_UNDEFINED, PULL_VORTEX, PULL_VACUUM, PULL_SLIP, PULL_ICE, PULL_MYSTERIOUS,
PULL_CURRENT	 = 100, PULL_WAVE,	    PULL_WHIRLPOOL, PULL_GEYSER,
PULL_WIND	 = 200,   PULL_STORM,    PULL_COLDWIND,  PULL_BREEZE,
PULL_LANDSLIDE = 300, PULL_SINKHOLE, PULL_QUICKSAND, PULL_EARTHQUAKE,
PULL_LAVA 	 = 400,  PULL_HOTAIR
} dir_pulltypes;
typedef enum
{
SECT_INSIDE, SECT_CITY, SECT_FIELD, SECT_FOREST, SECT_HILLS, SECT_MOUNTAIN,
SECT_WATER_SWIM, SECT_WATER_NOSWIM, SECT_UNDERWATER, SECT_AIR, SECT_DESERT,
SECT_DUNNO, SECT_OCEANFLOOR, SECT_UNDERGROUND, SECT_LAVA, SECT_SWAMP,
SECT_SPACE, SECT_MAX
} sector_types;
typedef enum
{
WEAR_NONE = -1, WEAR_LIGHT = 0, WEAR_FINGER_L, WEAR_FINGER_R, WEAR_NECK_1,
WEAR_NECK_2, WEAR_BODY, WEAR_HEAD, WEAR_LEGS, WEAR_FEET, WEAR_HANDS,
WEAR_ARMS, WEAR_SHIELD, WEAR_ABOUT, WEAR_WAIST, WEAR_WRIST_L, WEAR_WRIST_R,
WEAR_WIELD, WEAR_HOLD, WEAR_DUAL_WIELD, WEAR_EARS, WEAR_EYES,
WEAR_MISSILE_WIELD, WEAR_BACK, WEAR_FACE, WEAR_ANKLE_L, WEAR_ANKLE_R,
MAX_WEAR
} wear_locations;
typedef enum { BOARD_NOTE, BOARD_MAIL } board_types;
typedef enum
{
COND_DRUNK, COND_FULL, COND_THIRST, MAX_CONDS
} conditions;
typedef enum
{
POS_DEAD, POS_MORTAL, POS_INCAP, POS_STUNNED, POS_SLEEPING, POS_BERSERK,
POS_RESTING, POS_AGGRESSIVE, POS_SITTING, POS_FIGHTING, POS_DEFENSIVE,
POS_EVASIVE, POS_STANDING, POS_MOUNTED, POS_SHOVE, POS_DRAG
} positions;
typedef enum
{
STYLE_BERSERK, STYLE_AGGRESSIVE, STYLE_FIGHTING, STYLE_DEFENSIVE,
STYLE_EVASIVE,
} styles;
typedef enum
{
PLR_IS_NPC,PLR_BOUGHT_PET, PLR_SHOVEDRAG, PLR_AUTOEXIT, PLR_AUTOLOOT,
PLR_AUTOSAC, PLR_BLANK, PLR_OUTCAST, PLR_BRIEF, PLR_COMBINE, PLR_PROMPT,
PLR_TELNET_GA, PLR_HOLYLIGHT, PLR_WIZINVIS, PLR_ROOMVNUM, PLR_SILENCE,
PLR_NO_EMOTE, PLR_ATTACKER, PLR_NO_TELL, PLR_LOG, PLR_DENY, PLR_FREEZE,
PLR_THIEF, PLR_KILLER, PLR_LITTERBUG, PLR_ANSI, PLR_RIP, PLR_NICE, PLR_FLEE,
PLR_AUTOGOLD, PLR_AUTOMAP, PLR_AFK, PLR_INVISPROMPT, PLR_SPAR,
PLR_PK1, PLR_PK2, PLR_WAR1, PLR_WAR2, PLR_GHOST, PLR_INCOG,
PLR_BOUNTY, PLR_CAN_CHAT, PLR_NO_FOS, PLR_SAY_SWEAR, PLR_TELL_SWEAR,
PLR_EMOTE_SWEAR, PLR_CLAN_SWEAR, PLR_AUTO_COMPASS, PLR_NO_HISCORE,
PLR_HC, PLR_NOFOLLOW, PLR_2XPL_GAIN, PLR_REQBIO, PLR_SKAI, PLR_WKAI, PLR_NKAI,
PLR_QUEST_BUILDER, PLR_QUESTING, PLR_SPLIT_MIMIC, PLR_CHANEDIT, PLR_NOGBOARD
} player_flags;
typedef enum
{
CMB_NONE, CMB_NO_KI_ABSORB, CMB_NO_HEART
} player_combat_flags;
typedef enum
{
TIMER_NONE, TIMER_RECENTFIGHT, TIMER_SHOVEDRAG, TIMER_DO_FUN,
TIMER_APPLIED, TIMER_PKILLED, TIMER_ASUPRESSED, TIMER_NUISANCE,
TIMER_DELAY
} timer_types;
struct timer_data
{
TIMER  *	prev;
TIMER  *	next;
DO_FUN *	do_fun;
int		value;
sh_int	type;
int		count;
};
typedef enum
{
CHANNEL_AUCTION, CHANNEL_CHAT, CHANNEL_QUEST, CHANNEL_IMMTALK, CHANNEL_MUSIC,
CHANNEL_ASK, CHANNEL_SHOUT, CHANNEL_YELL, CHANNEL_MONITOR, CHANNEL_LOG,
CHANNEL_HIGHGOD, CHANNEL_CLAN, CHANNEL_BUILD, CHANNEL_HIGH, CHANNEL_AVTALK,
CHANNEL_AINFO, CHANNEL_COUNCIL, CHANNEL_GUILD, CHANNEL_COMM, CHANNEL_TELLS,
CHANNEL_ORDER, CHANNEL_NEWBIE, CHANNEL_WARTALK, CHANNEL_RACETALK,
CHANNEL_WARN, CHANNEL_WHISPER, CHANNEL_AUTH, CHANNEL_TRAFFIC, CHANNEL_OOC,
CHANNEL_ADMIN, CHANNEL_INFO, CHANNEL_FOS, CHANNEL_HC, CHANNEL_ADMTO,
CHANNEL_ROLEPLAY, CHANNEL_CHAT_OOC
} channel_types;
struct	mob_index_data
{
MOB_INDEX_DATA *	next;
MOB_INDEX_DATA *	next_sort;
SPEC_FUN *			spec_fun;
SHOP_DATA *			pShop;
REPAIR_DATA *		rShop;
MPROG_DATA *		mudprogs;
EXT_BV				progtypes;
char *		player_name;
char *		short_descr;
char *		long_descr;
char *		description;
int			vnum;
sh_int		count;
sh_int		killed;
sh_int		sex;
sh_int		level;
EXT_BV		act;
EXT_BV		affected_by;
sh_int		alignment;
sh_int		mobthac0;		
sh_int		ac;
sh_int		hitnodice;
sh_int		hitsizedice;
sh_int		hitplus;
sh_int		damnodice;
sh_int		damsizedice;
sh_int		damplus;
sh_int		numattacks;
int			gold;
long double			exp;
int			xflags;
int			immune;
int			resistant;
int			susceptible;
EXT_BV		attacks;
EXT_BV		defenses;
int			speaks;
int 		speaking;
sh_int		position;
sh_int		defposition;
sh_int		height;
sh_int		weight;
sh_int		race;
sh_int		class;
sh_int		hitroll;
sh_int		damroll;
sh_int		perm_str;
sh_int		perm_int;
sh_int		perm_dex;
sh_int		perm_con;
sh_int		perm_lck;
sh_int		saving_poison_death;
sh_int		saving_wand;
sh_int		saving_para_petri;
sh_int		saving_breath;
sh_int		saving_spell_staff;
};
struct hunt_hate_fear
{
char *		name;
CHAR_DATA *		who;
};
struct fighting_data
{
CHAR_DATA *		who;
int			xp;
sh_int		align;
sh_int		duration;
sh_int		timeskilled;
};
struct	extracted_char_data
{
EXTRACT_CHAR_DATA *	next;
CHAR_DATA *		ch;
ROOM_INDEX_DATA *	room;
ch_ret		retcode;
bool		extract;
};
struct	char_data
{
CHAR_DATA *		next;
CHAR_DATA *		prev;
CHAR_DATA *		next_in_room;
CHAR_DATA *		prev_in_room;
CHAR_DATA *		master;
CHAR_DATA *		leader;
FIGHT_DATA *	fighting;
CHAR_DATA *		reply;
CHAR_DATA *		retell;
CHAR_DATA *		switched;
CHAR_DATA *		mount;
HHF_DATA *		hunting;
HHF_DATA *		fearing;
HHF_DATA *		hating;
SPEC_FUN *		spec_fun;
MPROG_ACT_LIST *	mpact;
int			mpactnum;
sh_int		mpscriptpos;
MOB_INDEX_DATA *	pIndexData;
DESCRIPTOR_DATA *	desc;
AFFECT_DATA *	first_affect;
AFFECT_DATA *	last_affect;
NOTE_DATA *		pnote;
NOTE_DATA *		comments;
OBJ_DATA *		first_carrying;
OBJ_DATA *		last_carrying;
ROOM_INDEX_DATA *	in_room;
ROOM_INDEX_DATA *	was_in_room;
PC_DATA *		pcdata;
DO_FUN *		last_cmd;
DO_FUN *		prev_cmd;   
void *		dest_buf;  
char *		alloc_ptr; 
void *		spare_ptr;
int			tempnum;
EDITOR_DATA *	editor;
TIMER	*	first_timer;
TIMER	*	last_timer;
CHAR_MORPH  *	morph;
char *		name;
char *		short_descr;
char *		long_descr;
char *		description;
sh_int		num_fighting;
sh_int		substate;
sh_int		sex;
sh_int		class;
sh_int		race;
sh_int		level;
sh_int		trust;
int			played;
time_t		logon;
time_t		save_time;
sh_int		timer;
sh_int		wait;
sh_int		hit;
sh_int		max_hit;
int			mana;
int			max_mana;
sh_int		max_energy;
sh_int		move;
sh_int		max_move;
sh_int		practice;
sh_int		max_prac;
sh_int		powerup;
sh_int		train;
sh_int		max_train;
sh_int		numattacks;
int			gold;
long double	exp;
long double	pl;
long double	heart_pl;
int			rage;
EXT_BV		act;
EXT_BV		affected_by;
EXT_BV		no_affected_by;
int			carry_weight;
int			carry_number;
int			xflags;
int			no_immune;
int			no_resistant;
int			no_susceptible;
int			immune;
int			resistant;
int			susceptible;
EXT_BV		attacks;
EXT_BV		defenses;
int			speaks;
int			speaking;
sh_int		saving_poison_death;
sh_int		saving_wand;
sh_int		saving_para_petri;
sh_int		saving_breath;
sh_int		saving_spell_staff;
sh_int		alignment;
sh_int		barenumdie;
sh_int		baresizedie;
sh_int		mobthac0;
sh_int		hitroll;
sh_int		damroll;
sh_int		hitplus;
sh_int		damplus;
sh_int		position;
sh_int		defposition;
sh_int		style;
sh_int		height;
sh_int		weight;
sh_int		armor;
sh_int		wimpy;
EXT_BV		deaf;
sh_int		perm_str;
sh_int		perm_int;
sh_int		perm_dex;
sh_int		perm_con;
sh_int		perm_lck;
sh_int		mod_str;
sh_int		mod_int;
sh_int		mod_dex;
sh_int		mod_con;
sh_int		mod_lck;
sh_int		mental_state;		
sh_int		emotional_state;	
int			pagelen;                        
sh_int		inter_page;                     
sh_int		inter_type;                     
char  		*inter_editing;                 
int			inter_editing_vnum;             
sh_int		inter_substate;                 
int			retran;
int			regoto;
sh_int		mobinvis;	
int			mob_serial;
int			delay;
CHAR_DATA *	delay_vict;
int			focus;
int			charge;
int			skillGsn;
DO_FUN		*timerDo_fun;
int			timerDelay;
int			timerType;
};
struct killed_data
{
int			vnum;
char		count;
};
struct ignore_data
{
IGNORE_DATA *next;
IGNORE_DATA *prev;
char *name;
};
struct	pc_data
{
CHAR_DATA *		pet;
CLAN_DATA *		clan;
int				clanRank; 
double			clanZeniDonated; 
double			clanZeniClanTax; 
int				clanItemsDonated; 
COUNCIL_DATA * 	council;
AREA_DATA *		area;
DEITY_DATA *	deity;
char *		homepage;
char *		clan_name;
char * 		council_name;
char *		deity_name;
char *		pwd;
char *		bamfin;
char *		bamfout;
char *		filename;       
char *      rank;
char *		pretitle;
char *		title;
char *		bestowments;	
int         flags;		
int			pkills;		
int			pdeaths;	
int			mkills;		
int			mdeaths;	
int			illegal_pk;	
int			spar_wins;
int			spar_loss;
long int            outcast_time;	
NUISANCE_DATA       *nuisance;       
long int            restore_time;	
int		r_range_lo;	
int		r_range_hi;
int		m_range_lo;	
int		m_range_hi;
int		o_range_lo;	
int		o_range_hi;
sh_int		wizinvis;	
sh_int		incog_level; 	
sh_int		ghost_level; 	
sh_int		min_snoop;	
sh_int		condition	[MAX_CONDS];
double		learned		[500];
KILLED_DATA		killed		[25];
sh_int		quest_number;	
sh_int		quest_curr;	
int			quest_accum;	
sh_int		favor;		
sh_int		charmies;	
int			auth_state;
time_t		release_date;	
time_t		gnote_date;	
char *		helled_by;
char *		bio;		
char *		authed_by;	
SKILLTYPE *		special_skills[5]; 
char *		prompt;		
char *		fprompt;	
char *		subprompt;	
sh_int		pagerlen;	
bool		openedtourney;
IGNORE_DATA	*	first_ignored; 	
IGNORE_DATA	*	last_ignored;
char **		tell_history;	
sh_int		lt_index;	
long	imc_deaf;    
long	imc_allow;   
long	imc_deny;    
char *	rreply;      
char *	rreply_name; 
char *	ice_listen;  
sh_int	colorize	[(AT_TOPCOLOR-AT_COLORBASE)];
GLOBAL_BOARD_DATA	*board;		
time_t	last_note[12];	
NOTE_DATA *	in_progress;
char *		email;        
int			icq;		  
int			admintalk;
int			pk_timer;
int			gohometimer; 	int			silence;
int			eKTimer;
char *			silencedby;
sh_int		age;
sh_int		genes[7];
int			build;
int			haircolor;
int			orignalhaircolor;
int			eyes;
int			orignaleyes;
int			complexion;
int			secondarycolor;
int			hairstyle;
int			hairlen;
int			tail;
int		bounty;
int		bowed;
int		bkills;
int		b_timeleft;
long double	suppress;
char *		hunting;
char *		bounty_by;
char *		spouse;
int		iIdle;
int		pIdle[5];
int		bot_warn[3];
time_t		creation_date;
long double auction_pl;
char *	last_name;
sh_int	natural_ac;
sh_int	natural_ac_max;
long double absorb_pl;
sh_int		absorb_sn;
sh_int		absorb_learn;
int			absorb_pc;
int			absorb_mob;
int			absorb_race[10];
sh_int		absorb_pl_mod;
int			sd_charge;
sh_int		tStr;
sh_int		tSpd;
sh_int		tInt;
sh_int		tCon;
sh_int		tRounds;
sh_int		tStat;
char	*lasthost;
time_t	lastlogon;
sh_int		xTrain;
sh_int		total_xTrain;
sh_int		permTstr;
sh_int		permTspd;
sh_int		permTint;
sh_int		permTcon;
int			upgradeL;
char *		description1;
char *		description2;
char *		description3;
char *		description4;
char *		description5;
int                 HBTCTimeLeft;
time_t		nextHBTCDate;
char *              HBTCPartner;
int                 combatFlags;
sh_int		auraColorPowerUp;
int			interestLastMonth;
int			interestLastYear;
time_t              lastTaxation;
sh_int		normalPromptConfig;
sh_int		battlePromptConfig;
int	sparcount;
time_t nextspartime;
char *kaiRestoreMsg;
};
struct	liq_type
{
char *	liq_name;
char *	liq_color;
sh_int	liq_affect[3];
};
typedef enum
{
DAM_HIT, DAM_SLICE, DAM_STAB, DAM_SLASH, DAM_WHIP, DAM_CLAW,
DAM_BLAST, DAM_POUND, DAM_CRUSH, DAM_GREP, DAM_BITE, DAM_PIERCE,
DAM_SUCTION, DAM_BOLT, DAM_ARROW, DAM_DART, DAM_STONE, DAM_PEA
} damage_types;
struct	extra_descr_data
{
EXTRA_DESCR_DATA *next;	
EXTRA_DESCR_DATA *prev;	
char *keyword;              
char *description;          
};
struct	obj_index_data
{
OBJ_INDEX_DATA *	next;
OBJ_INDEX_DATA *	next_sort;
EXTRA_DESCR_DATA *	first_extradesc;
EXTRA_DESCR_DATA *	last_extradesc;
AFFECT_DATA *	first_affect;
AFFECT_DATA *	last_affect;
MPROG_DATA *	mudprogs;               
EXT_BV		progtypes;              
char *		name;
char *		short_descr;
char *		description;
char *		action_desc;
int			vnum;
long double level;
sh_int		item_type;
EXT_BV		extra_flags;
int			magic_flags; 
int			wear_flags;
sh_int		count;
sh_int		weight;
int			cost;
int			value	[6];
int			serial;
sh_int		layers;
int			rent;			
};
struct	obj_data
{
OBJ_DATA *		next;
OBJ_DATA *		prev;
OBJ_DATA *		next_content;
OBJ_DATA *		prev_content;
OBJ_DATA *		first_content;
OBJ_DATA *		last_content;
OBJ_DATA *		in_obj;
CHAR_DATA *		carried_by;
EXTRA_DESCR_DATA *	first_extradesc;
EXTRA_DESCR_DATA *	last_extradesc;
AFFECT_DATA *	first_affect;
AFFECT_DATA *	last_affect;
OBJ_INDEX_DATA *	pIndexData;
ROOM_INDEX_DATA *	in_room;
char *		name;
char *		short_descr;
char *		description;
char *		action_desc;
sh_int		item_type;
sh_int		mpscriptpos;
EXT_BV		extra_flags;
int			magic_flags; 
int			wear_flags;
MPROG_ACT_LIST *	mpact;		
int			mpactnum;	
sh_int		wear_loc;
sh_int		weight;
int			cost;
long double		level;
sh_int		timer;
int			value	[6];
sh_int		count;		
int			serial;		
char *		origin;
};
struct	exit_data
{
EXIT_DATA *		prev;		
EXIT_DATA *		next;		
EXIT_DATA *		rexit;		
ROOM_INDEX_DATA *	to_room;	
char *		keyword;	
char *		description;	
int			vnum;		
int			rvnum;		
int			exit_info;	
int			key;		
sh_int		vdir;		
sh_int		distance;	
sh_int		pull;		
sh_int		pulltype;	
};
struct	reset_data
{
RESET_DATA *	next;
RESET_DATA *	prev;
char		command;
int			extra;
int			arg1;
int			arg2;
int			arg3;
int			reset_serial;
};
struct	area_data
{
AREA_DATA *		next;
AREA_DATA *		prev;
AREA_DATA *		next_sort;
AREA_DATA *		prev_sort;
AREA_DATA *         next_sort_name; 
AREA_DATA *         prev_sort_name; 
RESET_DATA *	first_reset;
RESET_DATA *	last_reset;
PLANET_DATA *       planet;
AREA_DATA *   	next_on_planet;
AREA_DATA *    	prev_on_planet;
char *		name;
char *		filename;
int                 flags;
sh_int              status;  
sh_int		age;
sh_int		nplayer;
sh_int		reset_frequency;
int			low_r_vnum;
int			hi_r_vnum;
int			low_o_vnum;
int			hi_o_vnum;
int		low_m_vnum;
int		hi_m_vnum;
int			low_soft_range;
int			hi_soft_range;
int			low_hard_range;
int			hi_hard_range;
int		        spelllimit;
int			curr_spell_count;
char *		author; 
char *              resetmsg; 
RESET_DATA *	last_mob_reset;
RESET_DATA *	last_obj_reset;
sh_int		max_players;
int			mkills;
int			mdeaths;
int			pkills;
int			pdeaths;
int			gold_looted;
int			illegal_pk;
int			high_economy;
int			low_economy;
WEATHER_DATA *	weather; 
int			areaPlanet;
};
struct	godlist_data
{
GOD_DATA *		next;
GOD_DATA *		prev;
int			level;
int			low_r_vnum;
int			hi_r_vnum;
int			low_o_vnum;
int			hi_o_vnum;
int		low_m_vnum;
int		hi_m_vnum;
};
struct	system_data
{
int		maxplayers;		
int		alltimemax;		
int		global_looted;		
int		upill_val;		
int		upotion_val;		
int		brewed_used;		
int		scribed_used;		
char *	time_of_max;		
char *	mud_name;		
bool	NO_NAME_RESOLVING;	
bool    	DENY_NEW_PLAYERS;	
bool	WAIT_FOR_AUTH;		
sh_int	read_all_mail;		
sh_int	read_mail_free;		
sh_int	write_mail_free;	
sh_int	take_others_mail;	
int		imc_mail_vnum;		
sh_int	imc_mail_level;		
sh_int	muse_level;		
sh_int	think_level;		
sh_int	build_level;		
sh_int	log_level;		
sh_int	level_modify_proto;	
sh_int	level_override_private;	
sh_int	level_mset_player;	
sh_int	bash_plr_vs_plr;	
sh_int	bash_nontank;		
sh_int      gouge_plr_vs_plr;       
sh_int      gouge_nontank;	        
sh_int	stun_plr_vs_plr;	
sh_int	stun_regular;		
sh_int	dodge_mod;		
sh_int	parry_mod;		
sh_int	tumble_mod;		
sh_int	dam_plr_vs_plr;		
sh_int	dam_plr_vs_mob;		
sh_int	dam_mob_vs_plr;		
sh_int	dam_mob_vs_mob;		
sh_int	level_getobjnotake;     
sh_int      level_forcepc;          
sh_int	bestow_dif;		
sh_int	max_sn;			
char       *guild_overseer;         
char       *guild_advisor;		
int		save_flags;		
sh_int	save_frequency;		
sh_int check_imm_host;      
sh_int morph_opt;           
sh_int save_pets;		
sh_int ban_site_level;      
sh_int ban_class_level;     
sh_int ban_race_level;      
sh_int ident_retries;	
sh_int pk_loot;		
sh_int  newbie_purge; 
sh_int  regular_purge; 
bool CLEANPFILES; 
sh_int	plimit;
sh_int	level_noplimit;
bool	check_plimit;
bool	ahelp;
bool	stall_hiscores;
bool	rpChannel;
int outBytesFlag; 	int outBytesOther;
int outBytesChannel;
int outBytesCombat;
int outBytesMovement;
int outBytesInformation;
int outBytesPrompt;
int outBytesInfoChannel;
int kaiRestoreTimer;
};
struct	plane_data
{
PLANE_DATA *	next;
PLANE_DATA *	prev;
char *		name;
};
struct	room_index_data
{
ROOM_INDEX_DATA *	next;
ROOM_INDEX_DATA *	next_sort;
CHAR_DATA *		first_person;	    
CHAR_DATA *		last_person;	    
OBJ_DATA *		first_content;	    
OBJ_DATA *		last_content;	    
EXTRA_DESCR_DATA *	first_extradesc;    
EXTRA_DESCR_DATA *	last_extradesc;	    
AREA_DATA *		area;
EXIT_DATA *		first_exit;	    
EXIT_DATA *		last_exit;	    
SHIP_DATA * 	first_ship;
SHIP_DATA * 	last_ship;
AFFECT_DATA *	first_affect;	    
AFFECT_DATA *	last_affect;	    
MAP_DATA *		map;		    
PLANE_DATA *	plane;		    
MPROG_ACT_LIST *	mpact;		    
int			mpactnum;	    
MPROG_DATA *	mudprogs;	    
sh_int		mpscriptpos;
char *		name;
char *		description;
int			vnum;
EXT_BV		room_flags;
EXT_BV		progtypes;           
sh_int		light;		     
sh_int		sector_type;
int			tele_vnum;
sh_int		tele_delay;
sh_int		tunnel;		     
};
struct	teleport_data
{
TELEPORT_DATA *	next;
TELEPORT_DATA *	prev;
ROOM_INDEX_DATA *	room;
sh_int		timer;
};
typedef enum
{
TAR_IGNORE, TAR_CHAR_OFFENSIVE, TAR_CHAR_DEFENSIVE, TAR_CHAR_SELF,
TAR_OBJ_INV,
} target_types;
typedef enum
{
SKILL_UNKNOWN, SKILL_SPELL, SKILL_SKILL, SKILL_ABILITY, SKILL_WEAPON, SKILL_TONGUE,
SKILL_HERB, SKILL_RACIAL, SKILL_DISEASE
} skill_types;
struct timerset
{
int num_uses;
struct timeval total_time;
struct timeval min_time;
struct timeval max_time;
};
struct	skill_type
{
char *	name;			
int	skill_level[20];	
sh_int	skill_adept[20];	
sh_int	race_level[20];	
sh_int	race_adept[20];	
SPELL_FUN *	spell_fun;		
DO_FUN *	skill_fun;		
sh_int	target;			
sh_int	minimum_position;	
sh_int	slot;			
int	min_mana;		
sh_int	beats;			
char *	noun_damage;		
char *	msg_off;		
sh_int	guild;			
int	min_level[20];		
sh_int	type;			
sh_int	range;			
int		info;			
int		flags;			
char *	hit_char;		
char *	hit_vict;		
char *	hit_room;		
char *	hit_dest;		
char *	miss_char;		
char *	miss_vict;		
char *	miss_room;		
char *	die_char;		
char *	die_vict;		
char *	die_room;		
char *	imm_char;		
char *	imm_vict;		
char *	imm_room;		
char *	dice;			
int		value;			
int		spell_sector;		
char	saves;			
char	difficulty;		
SMAUG_AFF *	affects;		
char *	components;		
char *	teachers;		
char	participants;		
struct	timerset	userec;	
int		focus;
int		canCharge;
EXT_BV	attType;
};
struct  auction_data
{
OBJ_DATA  * item;   
CHAR_DATA * seller; 
CHAR_DATA * buyer;  
int         bet;    
sh_int      going;  
sh_int      pulse;  
int 	starting;
OBJ_INDEX_DATA *	history[3];	
sh_int	hist_timer;		
OBJ_DATA	* queued_obj[4];
CHAR_DATA	* queued_char[4];
int			queued_starting_bid[4];
int			freeQueSlot;
};
extern int port;
extern	sh_int	gsn_style_evasive;
extern	sh_int	gsn_style_defensive;
extern	sh_int	gsn_style_standard;
extern	sh_int	gsn_style_aggressive;
extern	sh_int	gsn_style_berserk;
extern	sh_int	gsn_sensu_bean;
extern	sh_int	gsn_detrap;
extern	sh_int	gsn_backstab;
extern  sh_int  gsn_circle;
extern  sh_int  gsn_cook;
extern	sh_int	gsn_dodge;
extern	sh_int	gsn_hide;
extern	sh_int	gsn_peek;
extern	sh_int	gsn_pick_lock;
extern	sh_int	gsn_sneak;
extern	sh_int	gsn_steal;
extern	sh_int	gsn_gouge;
extern	sh_int	gsn_track;
extern	sh_int	gsn_search;
extern  sh_int  gsn_dig;
extern	sh_int	gsn_mount;
extern  sh_int  gsn_bashdoor;
extern	sh_int	gsn_berserk;
extern	sh_int	gsn_hitall;
extern	sh_int	gsn_disarm;
extern	sh_int	gsn_enhanced_damage;
extern	sh_int	gsn_kick;
extern	sh_int	gsn_parry;
extern	sh_int	gsn_rescue;
extern	sh_int	gsn_second_attack;
extern	sh_int	gsn_third_attack;
extern	sh_int	gsn_fourth_attack;
extern	sh_int	gsn_fifth_attack;
extern	sh_int	gsn_dual_wield;
extern	sh_int	gsn_aid;
extern  sh_int  gsn_kaioken;
extern  sh_int  gsn_ssj;
extern  sh_int  gsn_ssj2;
extern  sh_int  gsn_ssj3;
extern  sh_int  gsn_ssj4;
extern  sh_int  gsn_snamek;
extern  sh_int  gsn_icer2;
extern  sh_int  gsn_icer3;
extern  sh_int  gsn_icer4;
extern  sh_int  gsn_icer5;
extern  sh_int	gsn_semiperfect;
extern  sh_int	gsn_perfect;
extern  sh_int	gsn_ultraperfect;
extern  sh_int  gsn_fly;
extern  sh_int  gsn_energy_ball;
extern  sh_int  gsn_kamehameha;
extern  sh_int  gsn_masenko;
extern  sh_int  gsn_sbc;
extern  sh_int  gsn_dd;
extern  sh_int  gsn_ff;
extern  sh_int  gsn_suppress;
extern  sh_int  gsn_meditate;
extern  sh_int  gsn_scatter_shot;
extern  sh_int  gsn_sense;
extern  sh_int  gsn_uppercut;
extern  sh_int  gsn_tail_attack;
extern  sh_int	gsn_eye_beam;
extern  sh_int	gsn_finger_beam;
extern  sh_int	gsn_ddd;
extern  sh_int	gsn_death_ball;
extern  sh_int	gsn_preservation;
extern	sh_int	gsn_ssd_bomber;
extern	sh_int	gsn_absorb;
extern	sh_int	gsn_rocket_punch;
extern	sh_int	gsn_electric_shield;
extern	sh_int	gsn_electric_shield2;
extern	sh_int	gsn_electric_shield3;
extern	sh_int	gsn_electric_shield4;
extern	sh_int	gsn_self_destruct;
extern	sh_int	gsn_duplicate;
extern  sh_int  gsn_extreme;
extern	sh_int	gsn_tribeam;
extern	sh_int	gsn_solar_flare;
extern	sh_int	gsn_multi_form;
extern	sh_int	gsn_tri_form;
extern  sh_int	gsn_split_form;
extern	sh_int	gsn_hyper;
extern	sh_int	gsn_instant_trans;
extern	sh_int	gsn_mystic;
extern	sh_int	gsn_skga;
extern	sh_int	gsn_charge2;
extern	sh_int	gsn_charge3;
extern	sh_int	gsn_charge4;
extern	sh_int	gsn_charge5;
extern  sh_int  gsn_multi_disk;
extern  sh_int  gsn_ki_absorb;
extern  sh_int  gsn_hells_flash;
extern  sh_int  gsn_ki_burst;
extern  sh_int  gsn_ki_heal;
extern  sh_int  gsn_growth;
extern  sh_int  gsn_giant;
extern	sh_int	gsn_destructive_wave;
extern	sh_int	gsn_dodon_ray;
extern	sh_int	gsn_spirit_ball;
extern	sh_int	gsn_big_bang;
extern  sh_int  gsn_bbk;
extern	sh_int	gsn_gallic_gun;
extern	sh_int	gsn_burning_attack;
extern	sh_int	gsn_finishing_buster;
extern	sh_int	gsn_heaven_splitter_cannon;
extern	sh_int	gsn_hellzone_grenade;
extern	sh_int	gsn_makosen;
extern	sh_int	gsn_trap_ball;
extern	sh_int	gsn_scattered_finger_beam;
extern	sh_int	gsn_spirit_bomb;
extern	sh_int	gsn_ussj;
extern	sh_int	gsn_ussj2;
extern	sh_int	gsn_first_spell;
extern	sh_int	gsn_first_skill;
extern	sh_int	gsn_first_ability;
extern	sh_int	gsn_first_weapon;
extern	sh_int	gsn_first_tongue;
extern	sh_int	gsn_top_sn;
extern	sh_int	gsn_blindness;
extern	sh_int	gsn_charm_person;
extern  sh_int  gsn_aqua_breath;
extern	sh_int	gsn_curse;
extern	sh_int	gsn_invis;
extern	sh_int	gsn_mass_invis;
extern	sh_int	gsn_poison;
extern	sh_int	gsn_sleep;
extern  sh_int  gsn_possess;
extern	sh_int	gsn_fireball;		
extern	sh_int	gsn_chill_touch;	
extern	sh_int	gsn_lightning_bolt;	
extern	sh_int	gsn_punch;
extern	sh_int	gsn_bash;
extern	sh_int	gsn_stun;
extern	sh_int	gsn_bite;
extern	sh_int	gsn_claw;
extern	sh_int	gsn_sting;
extern	sh_int	gsn_tail;
extern  sh_int  gsn_poison_weapon;
extern  sh_int  gsn_scribe;
extern  sh_int  gsn_brew;
extern	sh_int	gsn_climb;
extern	sh_int	gsn_pugilism;
extern	sh_int	gsn_long_blades;
extern	sh_int	gsn_short_blades;
extern	sh_int	gsn_flexible_arms;
extern	
