/* defines */
#define MAX_LEGAL	18			/* Maximum Legal Values */
#define MAX_ATTRIB	99			/*    "    Attributes */
#define MAX_LEVEL	99			/*    "    Level (Spells, etc) */
#define MAX_SP		999			/*    "    Spell Points */
#define MAX_HP		9999			/*    "    Hit Points */
#define MAX_EXPER	999999999		/*    "    Experience Pts. */
#define MAX_GOLD	4294967295		/*    "    Gold */
#define EQUIPPED	0x8000			/* Is item equipped? */

/* Races */
#define	HUMAN	 0
#define ELF	 1
#define DWARF	 2
#define HOBBIT	 3
#define HALF_ELF 4
#define HALF_ORC 5
#define GNOME	 6

/* Classes */
#define WARRIOR	 0
#define PALADIN	 1
#define ROGUE	 2
#define BARD	 3
#define HUNTER	 4
#define MONK	 5
#define CONJURER 6
#define MAGE	 7
#define SORCERER 8
#define WIZARD	 9

/*
	The following codes can be combined in any combination, for instance,
		DEAD & POISONED		= 2 + 8 = 10
		OLD & PARALYZED		= 4 + 32 = 36
		DEAD, OLD, & POISONED	= 2 + 4 + 8 = 14
		etc.
	The second #define I couldn't figure.  If that particular code is set,
	the game will NOT load your character.  The only thing I can figure this
	for is that possibly if you win the game, it will set this code on your
	characters so that you can't use them to play again.
*/

/* Conditions */
#define	HEALTHY		  0
#define	UNLOADABLE	  1	/* WHY??? */
#define	DEAD		  2
#define	OLD		  4
#define	POISONED	  8
#define STONED		 16	/* Turned to stone, not high on acid */
#define	PARALYZED	 32
#define	POSSESSED	 64
#define	NUTS		128	/* Insane, result of CRAZYCLOUD trap, etc. */

struct CharData {
   UWORD Condition;		/* Current condition - see condition defines */
   UWORD Race;			/* Character race - Human, Elf, Dwarf, etc. */
   UWORD Class;			/* Character class - Warrior, Mage, etc. */
   UWORD C_Attrib[5];		/* Current Attributes (St, IQ, etc.) */
   UWORD M_Attrib[5];		/* Maximum     "      ("   "    "  ) */
    WORD AC;			/* Armor Class */
   UWORD M_HP, C_HP;		/* Max & Current Hit Points */
   UWORD C_SpPt, M_SpPt;	/* Current & Max Spell Points */
   UWORD Possessions[8];	/* Storage for your possessions */
   ULONG Exper;			/* Experience Points */
   ULONG Gold;
   UWORD C_Level, M_Level;	/* Current & Max Level */
   UWORD Spell_Lev[4];		/* Max Spell Level by type (Sorc, Conj, Magi, Wizd) */
   UWORD dummy1, dummy2, dummy3; /* As far as I can tell, unused except DURING play */
   UWORD Hunter_Flag;		/* $ff if Hunter Class */
   UWORD Songs;			/* # songs Bard can sing before he needs a drink */
   UWORD dummy4, dummy5, dummy6; /* three more unused words */
   UWORD Attacks;		/* # Attacks/rd - 1 */
   UWORD dummy7;		/* Unused */
   UWORD Counter;		/* Unknown??? [counts battles, maybe?] */
   UWORD dummy8;		/* Unused */
   };
