#define MAX_SKILLS 15 #define MAX_TALENTS 15 #define MAX_KNOW 15 /* Attributes */ #define ATTR_FORCE 0 /* Force */ #define ATTR_INTUI 1 /* Intuition */ #define ATTR_SPEED 2 /* Speed */ #define ATTR_AGILI 3 /* Agility */ #define ATTR_RESIL 4 /* Resilience */ #define ATTR_LUCK 5 /* Luck */ #define ATTR_PERSON 6 /* Personality */ #define ATTR_WILLP 7 /* Willpower */ #define MAX_ATTRIBS 8 /* Max */ /* Statistics */ #define STAT_HP 0 /* Hitpoints */ #define STAT_HP_MAX 1 /* Max HP */ #define STAT_MANA 2 /* Mana */ #define STAT_MANA_MAX 3 /* Max Mana */ #define STAT_FATIGUE 4 /* Fatigue */ #define STAT_FATIGUE_MAX 5 /* Max Fati */ #define STAT_STAMINA 6 /* Stamina */ #define STAT_STAMINA_MAX 7 /* Max Stamina */ #define MAX_STATS 8 /* Max Stats */ /* Races */ #define RACE_PROTO 0 /* Grey Mass of Protoplasm ie unclassed */ #define RACE_NORD 1 /* Nords */ #define RACE_FELAIN 2 /* Felains, ie cat people */ #define RACE_DWARF 3 /* Dwarves, short warriors */ #define RACE_HUMAN 4 /* Ye plain ole Humans */ #define RACE_GORIAN 5 /* Gorians, Reptilians */ #define RACE_WOOD_ELF 6 /* Wood Elves */ #define RACE_HIGH_ELF 7 /* High Elves */ #define RACE_DARK_ELF 8 /* Dark Elves */ #define RACE_MAX 9 /* Total # of races */ /* Classes */ #define CLASS_PROTO 0 /* No class */ #define CLASS_THIEF 1 /* Thief Class */ #define CLASS_BURGLAR 2 /* Thief Sub: Adept at Picklock */ #define CLASS_ASSASSIN 3 /* Thief Sub: Adept at Critical */ #define CLASS_ROGUE 4 /* Thief Sub: Adept at Combat */ #define CLASS_ACROBAT 5 /* Thief Sub: Adept at Acrobatics */ #define CLASS_BARD 6 /* Thief Sub: Adept at Music/Morale */ #define CLASS_WARRIOR 7 /* Ye ole Warrior */ #define CLASS_KNIGHT 8 /* Warrior Sub: Adept at Defense */ #define CLASS_RANGER 9 /* Warrior Sub: Adept at Tracking */ #define CLASS_ARCHER 10 /* Warrior Sub: Adept at Ranged */ #define CLASS_MONK 11 /* Warrior Sub: Adept at Unnamed */ #define CLASS_BARBARIAN 12 /* Warrior Sub: Adept at Survival */ #define CLASS_MAGE 13 /* Ye Ole Mage */ #define CLASS_SOURCERER 14 /* Mage Sub: Unable to regen Mana */ #define CLASS_HEALER 15 /* Mage Sub: Adept at Healing */ #define CLASS_BATTLE_MAGE 16 /* Mage Sub: Adept with Weapons */ #define CLASS_SPELLSWORD 17 /* Mage Sub: Can wear Armor w/cast */ #define CLASS_NIGHTBLADE 18 /* Mage Sub: Thief/Mage Subclass */ #define CLASS_MAX 19 /* Total # of Classes */ /* Sizes */ #define NO_SIZE 0 #define SIZE_1FT 1 #define SIZE_2FT 2 #define SIZE_3FT 3 #define SIZE_4FT 4 #define SIZE_5FT 5 #define SIZE_6FT 6 #define SIZE_7FT 7 #define SIZE_8FT 8 #define SIZE_9FT 9 /* Various Bitflags for Restrictions */ #define NO_RESTRICTIONS 0 /* Used for 0 */ #define NO_ARMOR A #define NO_LEATHER B #define NO_CHAIN C #define NO_PLATE D #define NO_SPECIAL E #define NO_SM_SHIELD F #define NO_MD_SHIELD G #define NO_LG_SHIELD H /************************ * Player Tables * ************************/ struct race_type { char * name; char * sname; sh_int race_number; long eq_restrictions; sh_int max_view_day; sh_int max_view_night; sh_int max_view_dusk; sh_int size_range[2]; }; struct class_type { char * name; sh_int class_number; sh_int start_health; sh_int hit_dice_size; long eq_restrictions; }; struct abilities_type { char * name; sh_int number; sh_int modifier; }; extern struct race_type race_table[]; extern struct class_type class_table[]; extern struct abilities_type talent_table[]; extern struct abilities_type skill_table[]; extern struct abilities_type knowledge_table[]; /* Various Declares */ int return_race (int prace); int return_class (int pclass); int find_race (const char *name); int find_class (const char *name); int find_knowledge (const char *name); int find_skill (const char *name); int find_talent (const char *name); void cmd_train (D_MOBILE * ch, char *arg);