wileymud-1.187b/
wileymud-1.187b/attic/
wileymud-1.187b/attic/bin/
wileymud-1.187b/attic/lib/
wileymud-1.187b/attic/lib/adm/
wileymud-1.187b/attic/lib/man/
wileymud-1.187b/attic/lib/new-wld/
wileymud-1.187b/attic/lib/new-wld/default/
wileymud-1.187b/attic/lib/old/
wileymud-1.187b/attic/lib/wld/
wileymud-1.187b/attic/public_html/
wileymud-1.187b/attic/public_html/gfx/
wileymud-1.187b/attic/src/bin/
wileymud-1.187b/attic/src/etc/
wileymud-1.187b/attic/src/libauth-4.0-p5/
wileymud-1.187b/attic/src/sedna/
wileymud-1.187b/backups/
wileymud-1.187b/bin/
wileymud-1.187b/docs/
wileymud-1.187b/etc/
wileymud-1.187b/lib/
wileymud-1.187b/lib/adm/
wileymud-1.187b/lib/boards/
wileymud-1.187b/lib/log/
wileymud-1.187b/lib/man/
wileymud-1.187b/lib/ply/
wileymud-1.187b/lib/ply/a/
wileymud-1.187b/lib/ply/b/
wileymud-1.187b/lib/ply/c/
wileymud-1.187b/lib/ply/d/
wileymud-1.187b/lib/ply/g/
wileymud-1.187b/lib/ply/k/
wileymud-1.187b/lib/ply/m/
wileymud-1.187b/lib/ply/s/
wileymud-1.187b/lib/ply/t/
wileymud-1.187b/public_html/gfx/
wileymud-1.187b/src/bin/
wileymud-1.187b/src/convert/attic/
wileymud-1.187b/src/convert/obj/
wileymud-1.187b/src/convert/perl/
wileymud-1.187b/src/convert/perl/MudConvert/
wileymud-1.187b/src/convert/perl/MudConvert/DUMP/
wileymud-1.187b/src/convert/perl/MudConvert/Report/
wileymud-1.187b/src/convert/perl/MudConvert/WileyMUD/
wileymud-1.187b/src/convert/perl/output/
wileymud-1.187b/src/convert/perl/output/DUMP/
wileymud-1.187b/src/convert/perl/output/Report/
wileymud-1.187b/src/convert/perl/output/WileyMUD/
wileymud-1.187b/src/etc/
wileymud-1.187b/src/etc/init.d/
wileymud-1.187b/src/etc/rc.d/
wileymud-1.187b/src/etc/rc.d/init.d/
wileymud-1.187b/src/lib/
wileymud-1.187b/src/lib/adm/
wileymud-1.187b/src/lib/boards/
wileymud-1.187b/src/lib/log/
wileymud-1.187b/src/lib/man/
wileymud-1.187b/src/lib/ply/
wileymud-1.187b/src/lib/ply/a/
wileymud-1.187b/src/lib/ply/b/
wileymud-1.187b/src/lib/ply/c/
wileymud-1.187b/src/lib/ply/d/
wileymud-1.187b/src/lib/ply/e/
wileymud-1.187b/src/lib/ply/f/
wileymud-1.187b/src/lib/ply/g/
wileymud-1.187b/src/lib/ply/h/
wileymud-1.187b/src/lib/ply/i/
wileymud-1.187b/src/lib/ply/j/
wileymud-1.187b/src/lib/ply/k/
wileymud-1.187b/src/lib/ply/l/
wileymud-1.187b/src/lib/ply/m/
wileymud-1.187b/src/lib/ply/n/
wileymud-1.187b/src/lib/ply/o/
wileymud-1.187b/src/lib/ply/p/
wileymud-1.187b/src/lib/ply/q/
wileymud-1.187b/src/lib/ply/r/
wileymud-1.187b/src/lib/ply/s/
wileymud-1.187b/src/lib/ply/t/
wileymud-1.187b/src/lib/ply/u/
wileymud-1.187b/src/lib/ply/v/
wileymud-1.187b/src/lib/ply/w/
wileymud-1.187b/src/lib/ply/x/
wileymud-1.187b/src/lib/ply/y/
wileymud-1.187b/src/lib/ply/z/
wileymud-1.187b/src/obj/
wileymud-1.187b/src/utils/
wileymud-1.187b/src/utils/mobmaker/
#ifndef _PARSE_WILEY_H
#define _PARSE_WILEY_H

/*
 * Here are the definitions needed to handle the zone file.
 */

#define ZONE_RESET_NEVER	0
#define ZONE_RESET_PC		1
#define ZONE_RESET_ALWAYS	2

#define ZONE_CMD_MOBILE		'M'
#define ZONE_MOBILE		0
#define ZONE_MAX		1
#define ZONE_ROOM		2
#define ZONE_CMD_OBJECT		'O'
#define ZONE_OBJECT		0
#define ZONE_CMD_EQUIP		'E'
#define ZONE_POSITION		2
#define ZONE_CMD_PUT		'P'
#define ZONE_TARGET_OBJ		2
#define ZONE_CMD_DOOR		'D'
#define ZONE_DOOR_ROOM		0
#define ZONE_DOOR_EXIT		1
#define ZONE_DOOR_STATE		2
#define ZONE_CMD_GIVE		'G'
#define ZONE_CMD_REMOVE		'R'
#define ZONE_REMOVE_ROOM	0
#define ZONE_REMOVE_OBJ		1
#define ZONE_CMD_LEAD		'L'
#define ZONE_GROUP		1
#define ZONE_CMD_HATE		'H'
#define ZONE_HATE_TYPE		0
#define ZONE_HATE_VALUE		1
#define ZONE_CMD_END		'S'

/*
 * This is for the main world file.
 */

#define EXIT_OPEN			0
#define EXIT_DOOR			1
#define EXIT_NOPICK			2
#define EXIT_SECRET			3
#define EXIT_SECRET_NOPICK		4
#define EXIT_ALIAS_MAGIC		4
#define EXIT_OPEN_ALIAS			5		       /* contradiction? the docs say add 4... */
#define EXIT_DOOR_ALIAS			6
#define EXIT_NOPICK_ALIAS		7
#define EXIT_SECRET_ALIAS		8
#define EXIT_SECRET_NOPICK_ALIAS	9

#define EXIT_INVALID		-1			       /* exit was corrupted somehow */
#define EXIT_NORTH		0
#define EXIT_EAST		1
#define EXIT_SOUTH		2
#define EXIT_WEST		3
#define EXIT_UP			4
#define EXIT_DOWN		5

#define EXIT_OK			0
#define EXIT_NON_EUCLIDEAN	1
#define EXIT_ONE_WAY		2
#define EXIT_DESCRIPTION_ONLY	3
#define EXIT_NO_TARGET		4
#define EXIT_UNKNOWN		5

#define ROOM_DARK		0x00000001
#define ROOM_DEATH		0x00000002
#define ROOM_NOMOB		0x00000004
#define ROOM_INDOORS		0x00000008
#define ROOM_NOATTACK		0x00000010
#define ROOM_NOSTEAL		0x00000020
#define ROOM_NOSUMMON		0x00000040
#define ROOM_NOMAGIC		0x00000080
#define ROOM_UNUSED		0x00000100
#define ROOM_PRIVATE		0x00000200
#define ROOM_SOUND		0x00000400

#define SECT_TELEPORT		-1
#define SECT_INDOORS		0
#define SECT_CITY		1
#define SECT_FIELD		2
#define SECT_FOREST		3
#define SECT_HILLS		4
#define SECT_MOUNTAIN		5
#define SECT_WATER_SWIM		6
#define SECT_WATER_NOSWIM	7
#define SECT_AIR		8
#define SECT_UNDERWATER		9

#ifndef _PARSE_WILEY_C
extern const int                        SectorCosts[];
extern const int                        RevDir[];
#endif

/*
 * And these are the shopkeeper definitions.
 */

#define SHOP_SELLCOUNT		5
#define SHOP_TRADECOUNT		5
#define SHOP_MESSAGECOUNT	7

#define WEAR_LIGHT	0
#define WEAR_FINGER_R	1
#define WEAR_FINGER_L	2
#define WEAR_NECK_1	3
#define WEAR_NECK_2	4
#define WEAR_BODY	5
#define WEAR_HEAD	6
#define WEAR_LEGS	7
#define WEAR_FEET	8
#define WEAR_HANDS	9
#define WEAR_ARMS	10
#define WEAR_SHIELD	11
#define WEAR_ABOUT	12
#define WEAR_WAIST	13
#define WEAR_WRIST_R	14
#define WEAR_WRIST_L	15
#define WIELD		16
#define HOLD		17
#define TWOH		18

#define DOOR_OPEN	0
#define DOOR_CLOSED	1
#define DOOR_LOCKED	2

#define SEX_NEUTER	0
#define SEX_MALE	1
#define SEX_FEMALE	2

#define RACE_HALFBREED	0
#define RACE_HUMAN	1
#define RACE_ELVEN	2
#define RACE_DWARF	3
#define RACE_HALFLING	4
#define RACE_GNOME	5
#define RACE_REPTILE	6
#define RACE_SPECIAL	7
#define RACE_LYCANTH	8
#define RACE_DRAGON	9
#define RACE_UNDEAD	10
#define RACE_ORC	11
#define RACE_INSECT	12
#define RACE_ARACHNID	13
#define RACE_DINOSAUR	14
#define RACE_FISH	15
#define RACE_BIRD	16
#define RACE_GIANT	17
#define RACE_PREDATOR	18
#define RACE_PARASITE	19
#define RACE_SLIME	20
#define RACE_DEMON	21
#define RACE_SNAKE	22
#define RACE_HERBIV	23
#define RACE_TREE	24
#define RACE_VEGGIE	25
#define RACE_ELEMENT	26
#define RACE_PLANAR	27
#define RACE_DEVIL	28
#define RACE_GHOST	29
#define RACE_GOBLIN	30
#define RACE_TROLL	31
#define RACE_VEGMAN	32
#define RACE_MFLAYER	33
#define RACE_PRIMATE	34
#define RACE_ANIMAL	35
#define RACE_FAERY	36
#define RACE_PLANT	37

#define PULSE_PER_SECOND	4
/* #define PULSE_UPDATE	(75 * 5) */
#define PULSE_UPDATE	(70 * PULSE_PER_SECOND)
#define PULSE_VARIABLE	(30 * PULSE_PER_SECOND)

#define PULSE_VIOLENCE    6				       /* combat rounds */
#define PULSE_RIVER      10				       /* These two must be 10 to make the timings */
#define PULSE_TELEPORT   10				       /* in the world files come out right. */
#define PULSE_NATURE     19				       /* This is checks for falling/drowning */
#define PULSE_MOBILE     25				       /* mob movement/specials/etc */
#define PULSE_SOUND      33				       /* room sounds */
#define PULSE_ZONE      239				       /* zone updates */
#define PULSE_REBOOT    599				       /* reboot checking */
#define PULSE_SHOUT    1203				       /* replacement for the astral traveller */
#define PULSE_DUMP     3601				       /* dump player list */
#define PULSE_MAX    999999

#define WAIT_SEC       4
#define WAIT_ROUND     4

#define ALIGN_REALLY_VILE -1000
#define ALIGN_VILE -900
#define ALIGN_VERY_EVIL -700
#define ALIGN_EVIL -350
#define ALIGN_WICKED -100
#define ALIGN_NEUTRAL 0
#define ALIGN_NICE 100
#define ALIGN_GOOD 350
#define ALIGN_VERY_GOOD 700
#define ALIGN_HOLY 900
#define ALIGN_REALLY_HOLY 1000

#define FIRE_DAMAGE 1
#define COLD_DAMAGE 2
#define ELEC_DAMAGE 3
#define BLOW_DAMAGE 4
#define ACID_DAMAGE 5

#define MAGE_LEVEL_IND    0
#define CLERIC_LEVEL_IND  1
#define WARRIOR_LEVEL_IND 2
#define THIEF_LEVEL_IND   3
#define RANGER_LEVEL_IND  4
#define DRUID_LEVEL_IND   5

#define CLASS_MAGE	1
#define CLASS_CLERIC	2
#define CLASS_WARRIOR	4
#define CLASS_THIEF	8
#define CLASS_RANGER	16
#define CLASS_DRUID	32

#define MAX_CLASS	5

/* 'class' for PC's */
#define CLASS_MAGIC_USER  1
#define CLASS_CLERIC      2
#define CLASS_WARRIOR     4
#define CLASS_THIEF       8
#define CLASS_RANGER	  16
#define CLASS_DRUID	  32
#define CLASS_ALL ( CLASS_MAGIC_USER | CLASS_CLERIC | CLASS_WARRIOR | CLASS_THIEF | CLASS_RANGER | CLASS_DRUID )
#define CLASS_WIZARD ( CLASS_MAGIC_USER | CLASS_RANGER )
#define CLASS_PRIEST ( CLASS_CLERIC | CLASS_DRUID | CLASS_RANGER )
#define CLASS_MAGICAL ( CLASS_MAGIC_USER | CLASS_CLERIC | CLASS_RANGER | CLASS_DRUID )
#define CLASS_FIGHTER ( CLASS_WARRIOR | CLASS_RANGER )
#define CLASS_SNEAK ( CLASS_THIEF | CLASS_RANGER )

#define HATE_SEX	1
#define HATE_RACE	2
#define HATE_CHAR	4
#define HATE_CLASS	8
#define HATE_EVIL	16
#define HATE_GOOD	32
#define HATE_VNUM	64
#define HATE_RICH	128

#define FEAR_SEX   1
#define FEAR_RACE  2
#define FEAR_CHAR  4
#define FEAR_CLASS 8
#define FEAR_EVIL  16
#define FEAR_GOOD  32
#define FEAR_VNUM  64
#define FEAR_RICH  128

#define IMM_FIRE        1
#define IMM_COLD        2
#define IMM_ELEC        4
#define IMM_ENERGY      8
#define IMM_BLUNT      16
#define IMM_PIERCE     32
#define IMM_SLASH      64
#define IMM_ACID      128
#define IMM_POISON    256
#define IMM_DRAIN     512
#define IMM_SLEEP    1024
#define IMM_CHARM    2048
#define IMM_HOLD     4096
#define IMM_NONMAG   8192
#define IMM_PLUS1   16384
#define IMM_PLUS2   32768
#define IMM_PLUS3   65536
#define IMM_PLUS4  131072

#define MAX_IMM 18

/* Here are the object flags */

/* For 'type_flag' */

#define ITEM_LIGHT      1
#define ITEM_SCROLL     2
#define ITEM_WAND       3
#define ITEM_STAFF      4
#define ITEM_WEAPON     5				       /* These are not correct, flipped for sanity */
#define ITEM_FIREWEAPON 6
#define ITEM_MISSILE    7				       /* These are not correct, flipped for sanity */
#define ITEM_TREASURE   8
#define ITEM_ARMOR      9
#define ITEM_POTION    10
#define ITEM_WORN      11
#define ITEM_OTHER     12
#define ITEM_TRASH     13
#define ITEM_TRAP      14
#define ITEM_CONTAINER 15
#define ITEM_NOTE      16
#define ITEM_DRINKCON  17
#define ITEM_KEY       18
#define ITEM_FOOD      19
#define ITEM_MONEY     20
#define ITEM_PEN       21
#define ITEM_BOAT      22
#define ITEM_AUDIO     23
#define ITEM_BOARD     24
#define ITEM_KENNEL    25

/* Bitvector For 'wear_flags' */
#define ITEM_TAKE              1
#define ITEM_WEAR_FINGER       2
#define ITEM_WEAR_NECK         4
#define ITEM_WEAR_BODY         8
#define ITEM_WEAR_HEAD        16
#define ITEM_WEAR_LEGS        32
#define ITEM_WEAR_FEET        64
#define ITEM_WEAR_HANDS      128
#define ITEM_WEAR_ARMS       256
#define ITEM_WEAR_SHIELD     512
#define ITEM_WEAR_ABOUT     1024
#define ITEM_WEAR_WAISTE    2048
#define ITEM_WEAR_WRIST     4096
#define ITEM_WIELD          8192
#define ITEM_HOLD          16384
#define ITEM_WIELD_TWOH    32768

#define MAX_WEAR 16

/* UNUSED, CHECKS ONLY FOR ITEM_LIGHT #define ITEM_LIGHT_SOURCE  65536 */

/* Bitvector for 'extra_flags' */

#define ITEM_GLOW            1
#define ITEM_HUM             2
#define ITEM_METAL           4				       /* undefined...  */
#define ITEM_MINERAL         8				       /* undefined? */
#define ITEM_ORGANIC        16				       /* undefined? */
#define ITEM_INVISIBLE      32
#define ITEM_MAGIC          64
#define ITEM_NODROP        128
#define ITEM_BLESS         256
#define ITEM_ANTI_GOOD     512				       /* not usable by good people */
#define ITEM_ANTI_EVIL    1024				       /* not usable by evil people */
#define ITEM_ANTI_NEUTRAL 2048				       /* not usable by neutral people */
#define ITEM_ANTI_CLERIC  4096
#define ITEM_ANTI_MAGE    8192
#define ITEM_ANTI_THIEF   16384
#define ITEM_ANTI_FIGHTER 32768
#define ITEM_ANTI_RANGER  65536
#define ITEM_PARISH	  131072

#define MAX_ITEM_FLAGS 18

/* Some different kind of liquids */

#define LIQ_WATER      0
#define LIQ_BEER       1
#define LIQ_WINE       2
#define LIQ_ALE        3
#define LIQ_DARKALE    4
#define LIQ_WHISKY     5
#define LIQ_LEMONADE   6
#define LIQ_FIREBRT    7
#define LIQ_LOCALSPC   8
#define LIQ_SLIME      9
#define LIQ_MILK       10
#define LIQ_TEA        11
#define LIQ_COFFE      12
#define LIQ_BLOOD      13
#define LIQ_SALTWATER  14
#define LIQ_COKE       15

/* for containers  - value[1] */

#define CONT_CLOSEABLE      1
#define CONT_PICKPROOF      2
#define CONT_CLOSED         4
#define CONT_LOCKED         8

#define MAX_CONT_CLOSE 4

/* Bitvector for 'affected_by' */
#define AFF_BLIND             0x00000001
#define AFF_INVISIBLE         0x00000002
#define AFF_DETECT_EVIL       0x00000004
#define AFF_DETECT_INVISIBLE  0x00000008
#define AFF_DETECT_MAGIC      0x00000010
#define AFF_SENSE_LIFE        0x00000020
#define AFF_SILENCED          0x00000040		       /* this may have to go */
#define AFF_SANCTUARY         0x00000080
#define AFF_GROUP             0x00000100

/* there is one missing here....... */
#define AFF_CURSE             0x00000400
#define AFF_FLYING            0x00000800
#define AFF_POISON            0x00001000
#define AFF_PROTECT_EVIL      0x00002000
#define AFF_PARALYSIS         0x00004000
#define AFF_INFRAVISION       0x00008000
#define AFF_WATERBREATH       0x00010000
#define AFF_SLEEP             0x00020000
#define AFF_DRUG_FREE         0x00040000		       /* i.e. can't be stoned */
#define AFF_SNEAK             0x00080000
#define AFF_HIDE              0x00100000
#define AFF_FEAR              0x00200000		       /* this may have to go */
#define AFF_CHARM             0x00400000
#define AFF_FOLLOW            0x00800000
#define AFF_UNDEF_1           0x01000000		       /* saved objects?? */
#define AFF_TRUE_SIGHT        0x02000000
#define AFF_SCRYING           0x04000000		       /* seeing other rooms */
#define AFF_FIRESHIELD        0x08000000
#define AFF_RIDE              0x10000000
#define AFF_UNDEF_6           0x20000000
#define AFF_UNDEF_7           0x40000000
#define AFF_UNDEF_8           0x80000000

#define MAX_AFFECTED_BY 32
/* modifiers to char's abilities */

#define APPLY_NONE              0
#define APPLY_STR               1
#define APPLY_DEX               2
#define APPLY_INT               3
#define APPLY_WIS               4
#define APPLY_CON               5
#define APPLY_SEX               6
#define APPLY_CLASS             7
#define APPLY_LEVEL             8
#define APPLY_AGE               9
#define APPLY_CHAR_WEIGHT      10
#define APPLY_CHAR_HEIGHT      11
#define APPLY_MANA             12
#define APPLY_HIT              13
#define APPLY_MOVE             14
#define APPLY_GOLD             15
#define APPLY_EXP              16
#define APPLY_AC               17
#define APPLY_ARMOR            17
#define APPLY_HITROLL          18
#define APPLY_DAMROLL          19
#define APPLY_SAVING_PARA      20
#define APPLY_SAVING_ROD       21
#define APPLY_SAVING_PETRI     22
#define APPLY_SAVING_BREATH    23
#define APPLY_SAVING_SPELL     24
#define APPLY_SAVE_ALL         25
#define APPLY_IMMUNE           26
#define APPLY_SUSC             27
#define APPLY_M_IMMUNE         28
#define APPLY_SPELL            29
#define APPLY_WEAPON_SPELL     30
#define APPLY_EAT_SPELL        31
#define APPLY_BACKSTAB         32
#define APPLY_KICK             33
#define APPLY_SNEAK            34
#define APPLY_HIDE             35
#define APPLY_BASH             36
#define APPLY_PICK             37
#define APPLY_STEAL            38
#define APPLY_TRACK            39
#define APPLY_HITNDAM          40

/* positions */
#define POSITION_DEAD       0
#define POSITION_MORTALLYW  1
#define POSITION_INCAP      2
#define POSITION_STUNNED    3
#define POSITION_SLEEPING   4
#define POSITION_RESTING    5
#define POSITION_SITTING    6
#define POSITION_FIGHTING   7
#define POSITION_STANDING   8
#define POSITION_MOUNTED    9

/* for mobile actions: specials.act */
#define ACT_SPEC       (1<<0)				       /* special routine to be called if exist */
#define ACT_SENTINEL   (1<<1)				       /* this mobile not to be moved */
#define ACT_SCAVENGER  (1<<2)				       /* pick up stuff lying around */
#define ACT_ISNPC      (1<<3)				       /* This bit is set for use with IS_NPC() */
#define ACT_NICE_THIEF (1<<4)				       /* Set if a thief should NOT be killed */
#define ACT_AGGRESSIVE (1<<5)				       /* Set if automatic attack on NPC's */
#define ACT_STAY_ZONE  (1<<6)				       /* MOB Must stay inside its own zone */
#define ACT_WIMPY      (1<<7)				       /* MOB Will flee when injured, and if */
			       /*
			        * aggressive only attack sleeping players 
			        */
#define ACT_ANNOYING   (1<<8)				       /* MOB is so utterly irritating that other */
			       /*
			        * monsters will attack it...  
			        */
#define ACT_HATEFUL    (1<<9)				       /* MOB will attack a PC or NPC matching a */
			       /*
			        * specified name 
			        */
#define ACT_AFRAID    (1<<10)				       /* MOB is afraid of a certain PC or NPC, */
			       /*
			        * and will always run away ....  
			        */
#define ACT_IMMORTAL  (1<<11)				       /* MOB is a natural event, can't be kiled */
#define ACT_HUNTING   (1<<12)				       /* MOB is hunting someone */
#define ACT_DEADLY    (1<<13)				       /* MOB has deadly poison */
#define ACT_POLYSELF  (1<<14)				       /* MOB is a polymorphed person */
#define ACT_POLYOTHER (1<<15)				       /* MOB is a polymorphed person */
#define ACT_GUARDIAN  (1<<16)				       /* MOB will guard master */
#define ACT_USE_ITEM  (1<<17)				       /* Will use an item when picked up */
#define ACT_FIGHTER_MOVES (1<<18)			       /* mob will attack like a fighter */
#define ACT_FOOD_PROVIDE (1<<19)
#define ACT_PROTECTOR (1<<20)				       /* mob will come to aid those that call */
				 /*
				  * this is inter zonal only 
				  */
#define ACT_MOUNT     (1<<21)				       /* mobile can act as a mount */
#define ACT_SWITCH    (1<<22)				       /* we are a wizard switch to a mob */

#define MAX_ACT 23

 /**/
#define SPELL_RESERVED_DBC            0			       /* SKILL NUMBER ZERO */
#define SPELL_ARMOR                   1
#define SPELL_TELEPORT                2
#define SPELL_BLESS                   3
#define SPELL_BLINDNESS               4
#define SPELL_BURNING_HANDS           5
#define SPELL_CALL_LIGHTNING          6
#define SPELL_CHARM_PERSON            7
#define SPELL_CHILL_TOUCH             8
#define SPELL_CLONE                   9
#define SPELL_COLOUR_SPRAY           10
#define SPELL_CONTROL_WEATHER        11
#define SPELL_CREATE_FOOD            12
#define SPELL_CREATE_WATER           13
#define SPELL_CURE_BLIND             14
#define SPELL_CURE_CRITIC            15
#define SPELL_CURE_LIGHT             16
#define SPELL_CURSE                  17
#define SPELL_DETECT_EVIL            18
#define SPELL_DETECT_INVISIBLE       19
#define SPELL_DETECT_MAGIC           20
#define SPELL_DETECT_POISON          21
#define SPELL_DISPEL_EVIL            22
#define SPELL_EARTHQUAKE             23
#define SPELL_ENCHANT_WEAPON         24
#define SPELL_ENERGY_DRAIN           25
#define SPELL_FIREBALL               26
#define SPELL_HARM                   27
#define SPELL_HEAL                   28
#define SPELL_INVISIBLE              29
#define SPELL_LIGHTNING_BOLT         30
#define SPELL_LOCATE_OBJECT          31
#define SPELL_MAGIC_MISSILE          32
#define SPELL_POISON                 33
#define SPELL_PROTECT_FROM_EVIL      34
#define SPELL_REMOVE_CURSE           35
#define SPELL_SANCTUARY              36
#define SPELL_SHOCKING_GRASP         37
#define SPELL_SLEEP                  38
#define SPELL_STRENGTH               39
#define SPELL_SUMMON                 40
#define SPELL_VENTRILOQUATE          41
#define SPELL_WORD_OF_RECALL         42
#define SPELL_REMOVE_POISON          43
#define SPELL_SENSE_LIFE             44
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
/* Skills 45 - 52 already in use! */
#define SPELL_IDENTIFY               53
#define SPELL_INFRAVISION            54
#define SPELL_CAUSE_LIGHT            55
#define SPELL_CAUSE_CRITICAL         56
#define SPELL_FLAMESTRIKE            57
#define SPELL_DISPEL_GOOD            58
#define SPELL_WEAKNESS               59
#define SPELL_DISPEL_MAGIC           60
#define SPELL_KNOCK                  61
#define SPELL_KNOW_ALIGNMENT         62
#define SPELL_ANIMATE_DEAD           63
#define SPELL_PARALYSIS              64
#define SPELL_REMOVE_PARALYSIS       65
#define SPELL_FEAR                   66
#define SPELL_ACID_BLAST             67
#define SPELL_WATER_BREATH           68
#define SPELL_FLY                    69
#define SPELL_CONE_OF_COLD           70
#define SPELL_METEOR_SWARM           71
#define SPELL_ICE_STORM              72
#define SPELL_SHIELD                 73
#define SPELL_MON_SUM_1              74
#define SPELL_MON_SUM_2              75
#define SPELL_MON_SUM_3              76
#define SPELL_MON_SUM_4              77
#define SPELL_MON_SUM_5              78
#define SPELL_MON_SUM_6              79
#define SPELL_MON_SUM_7              80
#define SPELL_FIRESHIELD             81
#define SPELL_CHARM_MONSTER          82
#define SPELL_CURE_SERIOUS           83
#define SPELL_CAUSE_SERIOUS          84
#define SPELL_REFRESH                85
#define SPELL_SECOND_WIND            86
#define SPELL_TURN                   87
#define SPELL_SUCCOR                 88
#define SPELL_LIGHT                  89
#define SPELL_CONT_LIGHT             90
#define SPELL_CALM                   91
#define SPELL_STONE_SKIN             92
#define SPELL_CONJURE_ELEMENTAL      93
#define SPELL_TRUE_SIGHT             94
#define SPELL_MINOR_CREATE           95
#define SPELL_FAERIE_FIRE            96
#define SPELL_FAERIE_FOG             97
#define SPELL_CACAODEMON             98
#define SPELL_POLY_SELF              99
#define SPELL_MANA                  100
#define SPELL_ASTRAL_WALK           101
#define SPELL_FLY_GROUP             102
#define SPELL_AID                   103
#define SPELL_SHELTER               104
#define SPELL_DRAGON_BREATH         105
#define SPELL_GOODBERRY             106
#define SPELL_VISIONS               107
#define SPELL_MAJOR_TRACK           108
#define SPELL_GOLEM                 109
#define SPELL_FAMILIAR              110
#define SPELL_CHANGESTAFF           111
#define SPELL_HOLY_WORD             112
#define SPELL_UNHOLY_WORD           113
#define SPELL_PWORD_KILL            114
#define SPELL_PWORD_BLIND           115
#define SPELL_CHAIN_LIGHTNING       116
#define SPELL_SCARE                 117
#define SPELL_COMMAND               119
#define SPELL_CHANGE_FORM           120			       /* druid... */
#define SPELL_FEEBLEMIND            121
#define SPELL_SHILLELAGH            122
/* 123? */
#define SPELL_FLAME_BLADE           124
#define SPELL_ANIMAL_GROWTH         125
#define SPELL_INSECT_GROWTH         126
#define SPELL_CREEPING_DEATH        127
#define SPELL_COMMUNE               128			       /* whatzone */
#define SPELL_ANIMAL_SUM_1          129
#define SPELL_ANIMAL_SUM_2          130
#define SPELL_ANIMAL_SUM_3          131
#define SPELL_FIRE_SERVANT          132
#define SPELL_EARTH_SERVANT         133
#define SPELL_WATER_SERVANT         134
#define SPELL_WIND_SERVANT          135
#define SPELL_REINCARNATE           136
#define SPELL_CHARM_VEGGIE          137
#define SPELL_VEGGIE_GROWTH         138
#define SPELL_TREE                  139
#define SPELL_ANIMATE_ROCK          140
#define SPELL_TREE_TRAVEL           141
#define SPELL_TRAVELLING            142			       /* faster move outdoors */
#define SPELL_ANIMAL_FRIENDSHIP     143
#define SPELL_INVIS_TO_ANIMALS      144
#define SPELL_SLOW_POISON           145
#define SPELL_ENTANGLE              146
#define SPELL_SNARE                 147
#define SPELL_GUST_OF_WIND          148
#define SPELL_BARKSKIN              149
#define SPELL_SUNRAY                150
#define SPELL_WARP_WEAPON           151
#define SPELL_HEAT_STUFF            152
#define SPELL_FIND_TRAPS            153
#define SPELL_FIRESTORM             154
#define SPELL_HASTE                 155			       /* other */
#define SPELL_SLOW                  156
#define SPELL_DUST_DEVIL            157
#define SPELL_KNOW_MONSTER          158
#define SPELL_TRANSPORT_VIA_PLANT   159
#define SPELL_SPEAK_WITH_PLANT      160
#define SPELL_SILENCE               161
#define SPELL_SENDING               162
#define SPELL_TELEPORT_WO_ERROR     163
#define SPELL_PORTAL                164
#define SPELL_DRAGON_RIDE           165
#define SPELL_MOUNT                 166
#define SPELL_GREEN_SLIME            199
#define SPELL_GEYSER                 200
#define SPELL_FIRE_BREATH            201
#define SPELL_GAS_BREATH             202
#define SPELL_FROST_BREATH           203
#define SPELL_ACID_BREATH            204
#define SPELL_LIGHTNING_BREATH       205
#define SKILL_SNEAK             45			       /* r,t */
#define SKILL_HIDE              46			       /* r,t */
#define SKILL_STEAL             47			       /* t */
#define SKILL_BACKSTAB          48			       /* t */
#define SKILL_PICK_LOCK         49			       /* t */
#define SKILL_KICK              50			       /* f */
#define SKILL_BASH              51			       /* f */
#define SKILL_RESCUE            52			       /* f,r */
#define SKILL_DOOR_BASH	 	149			       /* f,r */
#define SKILL_READ_MAGIC 	150			       /* f,m,c,t,r */
#define SKILL_SCRIBE		151			       /* m,c */
#define SKILL_BREW		152			       /* m,c */
#define SKILL_PUNCH		153			       /* f,c,r */
#define SKILL_TWO_HANDED	154			       /* f,m,c,t,r */
#define SKILL_TWO_WEAPON	155			       /* NONE */
#define SKILL_BANDAGE		156			       /* f,m,c,t,r */
#define SKILL_SEARCH		157			       /* t,r */
#define SKILL_SWIMMING		158			       /* f,m,c,t,r */
#define SKILL_ENDURANCE		159			       /* f,m,c,r,t */
#define SKILL_BARE_HAND		160			       /* f,m,c,t,r */
#define SKILL_BLIND_FIGHTING	161			       /* f,c,m,r,t */
#define SKILL_PARRY		162			       /* f,r,t NOT PUT IN */
#define SKILL_APRAISE		163			       /* f,m,c,t,r */
#define SKILL_SPEC_SMITE	164			       /* f */
#define SKILL_SPEC_STAB		165
#define SKILL_SPEC_WHIP		166
#define SKILL_SPEC_SLASH	167
#define SKILL_SPEC_SMASH	168
#define SKILL_SPEC_CLEAVE	169
#define SKILL_SPEC_CRUSH	170
#define SKILL_SPEC_BLUDGE	171
#define SKILL_SPEC_PIERCE	172			       /* f */
#define SKILL_PEER		173			       /* t,r */
#define SKILL_DETECT_NOISE	174			       /* t,r */
#define SKILL_DODGE		175			       /* m,c,t,r NOT PUT IN */
#define SKILL_BARTER		176			       /* m,c,t */
#define SKILL_KNOCK_OUT		177			       /* m,c,t NOT PUT IN */
#define SKILL_SPELLCRAFT	178			       /* m,c */
#define SKILL_MEDITATION	179			       /* m,c */
#define SKILL_TRACK             180			       /* r,t */
#define SKILL_FIND_TRAP         181			       /* t */
#define SKILL_DISARM_TRAP       182			       /* t */
#define SKILL_DISARM            183			       /* f,r */
#define SKILL_BASH_W_SHIELD     184			       /* not a useable skill, but included with bash */
#define SKILL_RIDE		185
#define TYPE_HIT                     206
#define TYPE_BLUDGEON                207
#define TYPE_PIERCE                  208
#define TYPE_SLASH                   209
#define TYPE_WHIP                    210		       /* EXAMPLE */
#define TYPE_CLAW                    211		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_BITE                    212		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_STING                   213		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_CRUSH                   214		       /* NO MESSAGES WRITTEN YET! */
#define TYPE_CLEAVE                  215
#define TYPE_STAB                    216
#define TYPE_SMASH                   217
#define TYPE_SMITE                   218
#define TYPE_SUFFERING               220
#define TYPE_HUNGER                  221
zones                                  *load_zones(char *infile);
char                                   *zone_reset_name(int Reset);
int                                     remap_zone_vnum(zones *Zones, int VNum);
char                                   *zone_name(zones *Zones, int VNum);

char                                   *exit_name(int Direction);
char                                   *exit_name_lower(int Direction);
int                                     remap_room_vnum(rooms *Rooms, int VNum);
char                                   *room_name(rooms *Rooms, int VNum);
void                                    fix_exit_vnums(rooms *Rooms);
void                                    check_duplicate_rooms(rooms *Rooms);
void                                    verify_exits(rooms *Rooms);
void                                    fix_zone_ids(zones *Zones, rooms *Rooms);
rooms                                  *load_rooms(char *infile, zones *Zones);
char                                   *room_flag_name(int Flag);
char                                   *sector_name(int Sector);
char                                   *exittype_name(int Type);
char                                   *room_flags(int Flags);

shops                                  *load_shops(char *infile);
char                                   *shop_attitude_name(int Attitude);
char                                   *shop_immortal_name(int Immortal);
int                                     remap_shop_vnum(shops *Shops, int VNum);

char                                   *equip_name(int Position);
char                                   *doorstate_name(int State);
char                                   *sex_name(int State);
char                                   *race_name(int Race);

char                                   *alignment_name(int Alignment);
char                                   *damage_type_name(int Type);
char                                   *class_name(int Class); /* returns ALL classes of a character */
char                                   *hate_name(int Type, int Value);

#define fear_name(x,y) hate_name((x),(y))
char                                   *immunity_name(int Imms);
char                                   *item_type_name(int Type);
char                                   *item_equip_name(int Position);
char                                   *item_flag_name(int Type);
char                                   *liquid_name(int Type);
char                                   *container_closeable(int Value);
char                                   *affected_by_name(int Flag);
char                                   *apply_name(int Flag);
char                                   *position_name(int Flag);
char                                   *act_name(int Flag);
char                                   *item_wear_name(int Type);

int                                     remap_obj_vnum(objects *Objects, int VNum);
char                                   *obj_name(objects *Objects, int VNum);
void                                    check_duplicate_objs(objects *Objects);
void                                    set_obj_zones(zones *Zones, objects *Objects);
objects                                *load_objects(char *infile, zones *Zones);
char                                   *spell_name(int Spell);

#define skill_name(x) spell_name(x)
#define MAX_SKILLS 222
#define ASSIGN_SPELL( num, a, b, name, c, d, e, f, g, h, i, j, k, l, m, n, o, p ) { spell[(num)]= my_strdup(name); }

char                                   *damage_name(int Type);

int                                     remap_mob_vnum(mobs *Mobs, int VNum);
char                                   *mob_name(mobs *Mobs, int VNum);
void                                    check_duplicate_mobs(mobs *Mobs);
void                                    set_mob_zones(zones *Zones, mobs *Mobs);
mobs                                   *load_mobs(char *infile, zones *Zones);

void                                    check_room_zone_mismatch(zones *Zones, rooms *Rooms);
void                                    check_object_zone_mismatch(zones *Zones,
								   objects *Objects);
void                                    check_mob_zone_mismatch(zones *Zones, mobs *Mobs);

#endif