rom-test-port/doc/MPDocs/
rom-test-port/gods/
rom-test-port/txt/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik Strfeldt, Tom Madsen, and Katja Nyboe.    *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 **************************************************************************/

/***************************************************************************
 *   ROM 2.4 is copyright 1993-1998 Russ Taylor                            *
 *   ROM has been brought to you by the ROM consortium                     *
 *       Russ Taylor (rtaylor@hypercube.org)                               *
 *       Gabrielle Taylor (gtaylor@hypercube.org)                          *
 *       Brian Moore (zump@rom.org)                                        *
 *   By using this code, you have agreed to follow the terms of the        *
 *   ROM license, in the file Rom24/doc/rom.license                        *
 **************************************************************************/

#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <time.h>
#include "merc.h"
#include "magic.h"
#include "interp.h"


/* item type list */
const struct item_type item_table[] = {
    {ITEM_LIGHT, "light"},
    {ITEM_SCROLL, "scroll"},
    {ITEM_WAND, "wand"},
    {ITEM_STAFF, "staff"},
    {ITEM_WEAPON, "weapon"},
    {ITEM_TREASURE, "treasure"},
    {ITEM_ARMOR, "armor"},
    {ITEM_POTION, "potion"},
    {ITEM_CLOTHING, "clothing"},
    {ITEM_FURNITURE, "furniture"},
    {ITEM_TRASH, "trash"},
    {ITEM_CONTAINER, "container"},
    {ITEM_DRINK_CON, "drink"},
    {ITEM_KEY, "key"},
    {ITEM_FOOD, "food"},
    {ITEM_MONEY, "money"},
    {ITEM_BOAT, "boat"},
    {ITEM_CORPSE_NPC, "npc_corpse"},
    {ITEM_CORPSE_PC, "pc_corpse"},
    {ITEM_FOUNTAIN, "fountain"},
    {ITEM_PILL, "pill"},
    {ITEM_PROTECT, "protect"},
    {ITEM_MAP, "map"},
    {ITEM_PORTAL, "portal"},
    {ITEM_WARP_STONE, "warp_stone"},
    {ITEM_ROOM_KEY, "room_key"},
    {ITEM_GEM, "gem"},
    {ITEM_JEWELRY, "jewelry"},
    {ITEM_JUKEBOX, "jukebox"},
    {0, NULL}
};


/* weapon selection table */
const struct weapon_type weapon_table[] = {
    {"sword", OBJ_VNUM_SCHOOL_SWORD, WEAPON_SWORD, &gsn_sword},
    {"mace", OBJ_VNUM_SCHOOL_MACE, WEAPON_MACE, &gsn_mace},
    {"dagger", OBJ_VNUM_SCHOOL_DAGGER, WEAPON_DAGGER, &gsn_dagger},
    {"axe", OBJ_VNUM_SCHOOL_AXE, WEAPON_AXE, &gsn_axe},
    {"staff", OBJ_VNUM_SCHOOL_STAFF, WEAPON_SPEAR, &gsn_spear},
    {"flail", OBJ_VNUM_SCHOOL_FLAIL, WEAPON_FLAIL, &gsn_flail},
    {"whip", OBJ_VNUM_SCHOOL_WHIP, WEAPON_WHIP, &gsn_whip},
    {"polearm", OBJ_VNUM_SCHOOL_POLEARM, WEAPON_POLEARM, &gsn_polearm},
    {NULL, 0, 0, NULL}
};



/* wiznet table and prototype for future flag setting */
const struct wiznet_type wiznet_table[] = {
    {"on", WIZ_ON, IM},
    {"prefix", WIZ_PREFIX, IM},
    {"ticks", WIZ_TICKS, IM},
    {"logins", WIZ_LOGINS, IM},
    {"sites", WIZ_SITES, L4},
    {"links", WIZ_LINKS, L7},
    {"newbies", WIZ_NEWBIE, IM},
    {"spam", WIZ_SPAM, L5},
    {"deaths", WIZ_DEATHS, IM},
    {"resets", WIZ_RESETS, L4},
    {"mobdeaths", WIZ_MOBDEATHS, L4},
    {"flags", WIZ_FLAGS, L5},
    {"penalties", WIZ_PENALTIES, L5},
    {"saccing", WIZ_SACCING, L5},
    {"levels", WIZ_LEVELS, IM},
    {"load", WIZ_LOAD, L2},
    {"restore", WIZ_RESTORE, L2},
    {"snoops", WIZ_SNOOPS, L2},
    {"switches", WIZ_SWITCHES, L2},
    {"secure", WIZ_SECURE, L1},
    {NULL, 0, 0}
};


const struct god_type god_table[]=
{
	{ "" },
	{ "Paladine" },
	{ "Astinus" },
	{ "Chemosh" },
	{ "Hiddukel" },
	{ "Nuitari" },
	{ "Sargonnas" },
	{ "Zeboim" },
	{ "Branchala" },
	{ "Habbakuk" },
	{ "Kiri-Jolith" },
	{ "Majere" },
	{ "Mishakal" },
	{ "Solinari" },
	{ "Chislev" },
	{ "Gilean" },
	{ "Lunitari" },
	{ "Reorx" },
	{ "Shinare" },
	{ "Sirrion" },
	{ "Zivilyn" },
	{ "Takhisis" },
	{ "" }
};

/* attack table  -- not very organized :( */
const struct attack_type attack_table[MAX_DAMAGE_MESSAGE] = {
    {"none", "hit", -1},        /*  0 */
    {"slice", "slice", DAM_SLASH},
    {"stab", "stab", DAM_PIERCE},
    {"slash", "slash", DAM_SLASH},
    {"whip", "whip", DAM_SLASH},
    {"claw", "claw", DAM_SLASH},    /*  5 */
    {"blast", "blast", DAM_BASH},
    {"pound", "pound", DAM_BASH},
    {"crush", "crush", DAM_BASH},
    {"grep", "grep", DAM_SLASH},
    {"bite", "bite", DAM_PIERCE},    /* 10 */
    {"pierce", "pierce", DAM_PIERCE},
    {"suction", "suction", DAM_BASH},
    {"beating", "beating", DAM_BASH},
    {"digestion", "digestion", DAM_ACID},
    {"charge", "charge", DAM_BASH},    /* 15 */
    {"slap", "slap", DAM_BASH},
    {"punch", "punch", DAM_BASH},
    {"wrath", "wrath", DAM_ENERGY},
    {"magic", "magic", DAM_ENERGY},
    {"divine", "divine power", DAM_HOLY},    /* 20 */
    {"cleave", "cleave", DAM_SLASH},
    {"scratch", "scratch", DAM_PIERCE},
    {"peck", "peck", DAM_PIERCE},
    {"peckb", "peck", DAM_BASH},
    {"chop", "chop", DAM_SLASH},    /* 25 */
    {"sting", "sting", DAM_PIERCE},
    {"smash", "smash", DAM_BASH},
    {"shbite", "shocking bite", DAM_LIGHTNING},
    {"flbite", "flaming bite", DAM_FIRE},
    {"frbite", "freezing bite", DAM_COLD},    /* 30 */
    {"acbite", "acidic bite", DAM_ACID},
    {"chomp", "chomp", DAM_PIERCE},
    {"drain", "life drain", DAM_NEGATIVE},
    {"thrust", "thrust", DAM_PIERCE},
    {"slime", "slime", DAM_ACID},
    {"shock", "shock", DAM_LIGHTNING},
    {"thwack", "thwack", DAM_BASH},
    {"flame", "flame", DAM_FIRE},
    {"chill", "chill", DAM_COLD},
    {NULL, NULL, 0}
};

/* race table */
const struct race_type race_table[] = {
/*
    {
    name,        pc_race?,
    act bits,    aff_by bits,    off bits,
    imm,        res,        vuln,
    form,        parts 
    },
*/
    {"unique", FALSE, 0, 0, 0, 0, 0, 0, 0, 0},

	/* 1 */
    {
     "human", TRUE,
     0, 0, 0,
     0, 0, 0,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 2 */
    {
     "elf", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_CHARM, VULN_IRON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 3 */
    {
     "dwarf", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_POISON | RES_DISEASE, VULN_DROWNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 4 */
    {
     "giant", TRUE,
     0, 0, 0,
     0, RES_FIRE | RES_COLD, VULN_MENTAL | VULN_LIGHTNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 5 */
    {
     "draconian", TRUE,
     0, 0, 0,
     0, RES_FIRE | RES_COLD, RES_WEAPON | VULN_MAGIC,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 6 */
    {
     "gnome", TRUE,
     0, 0, 0,
     0, IMM_MENTAL, VULN_WEAPON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 7 */
    {
     "hobbit", TRUE,
     0, 0, 0,
     0, VULN_BASH, VULN_POISON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 8 */
    {
     "kender", TRUE,
     0, 0, 0,
     0, VULN_BASH, VULN_POISON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 9 */
    {
     "troll", TRUE,
     0, 0, 0,
     0, VULN_FIRE, RES_WEAPON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 10 */
    {
     "pixie", TRUE,
     0, 0, 0,
     0, VULN_BASH, VULN_POISON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

    { /* 11 */
     "half-elf", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_CHARM, VULN_IRON,
     A|H|M|V,A|B|C|D|E|F|G|H|I|J|K
    },

	/* 12 */
    {
     "half-giant", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_POISON | RES_DISEASE, VULN_DROWNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 13 */
    {
     "half-orc", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_POISON | RES_DISEASE, VULN_DROWNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 14 */
    {
     "duergar", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_POISON | RES_DISEASE, VULN_DROWNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 15 */
    {
     "minotaur", TRUE,
     0, 0, 0,
     0, RES_FIRE | RES_COLD, VULN_MENTAL | VULN_LIGHTNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 16 */
    {
     "centaur", TRUE,
     0, 0, 0,
     0, RES_FIRE | RES_COLD, VULN_MENTAL | VULN_LIGHTNING,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 17 */
    {
     "drow", TRUE,
     0, AFF_INFRARED, 0,
     0, RES_CHARM, VULN_IRON,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

	/* 18 */
    { 
     "storm giant",  TRUE,
     0, AFF_FLYING, 0,
     0, RES_LIGHTNING, VULN_MENTAL|VULN_COLD|VULN_FIRE,
     A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 19 */
    "cloud giant",  TRUE,
    0, AFF_FLYING, 0,
    0, RES_WEAPON, VULN_MENTAL|VULN_LIGHTNING,
    A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 20 */
    "fire giant",   TRUE,
    0, 0, 0,
    0, RES_FIRE, VULN_MENTAL|VULN_LIGHTNING|VULN_COLD,
    A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 21 */
    "frost giant",  TRUE, 
    0, 0, 0,
    0, RES_COLD, VULN_MENTAL|VULN_LIGHTNING|VULN_FIRE,
    A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 22 */
    "cyclops",  TRUE, 
    0, 0, 0,
    0, 0, VULN_MENTAL|VULN_MAGIC,
    A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 23 */
    "hydra",  TRUE, 
    0, 0, 0,
    0, RES_BASH, VULN_MENTAL|VULN_MAGIC,
    A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 24 */
        "rockseer",     TRUE, 
        0,              AFF_INFRARED|AFF_SNEAK|AFF_PASS_DOOR, 0,
        0,              RES_CHARM,      VULN_WOOD,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    {  /* 25 */
      "svirfnebli",     TRUE,
      0,                AFF_INFRARED,   0,
      0,                RES_MAGIC|RES_POISON|RES_DISEASE, VULN_BASH,
      A|H|M|V,          A|B|C|D|E|F|G|H|I|J|K
    },
    { /* 26 */
        "arial",        TRUE,
        0,              AFF_FLYING,             0,
        0,              0,              0,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },
    { /* 27 */
        "felar",        TRUE, 	
        0,              AFF_INFRARED,   OFF_TAIL,
        0,              RES_LIGHT|RES_COLD,     VULN_FIRE|VULN_DROWNING,
        A|H|M|V,        A|C|D|E|F|H|J|K|Q|U|V
    },

    { /* 28 */
	"githyanki",	TRUE,  	
	0,		AFF_INFRARED,	0,
	0, 		0,		0,
	A|H|M|V,	A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 29 */
	"satyr",	TRUE, 	
	0,		AFF_INFRARED,	0,
	0,		RES_WOOD|RES_DISEASE,	0,
	A|H|M|V,	A|B|C|D|E|F|G|H|I|J|K
    },
    { /* 30 */
        "black dragon", TRUE,  
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_ACID,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 31 */
        "blue dragon", 	TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_LIGHTNING, 
	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 32 */
        "green dragon", TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_POISON,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 33 */
        "red dragon", 	TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_FIRE,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 34 */
        "white dragon", TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_COLD,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 35 */
        "brass dragon", TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_FIRE,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 36 */
        "gold dragon", 	TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_FIRE|RES_POISON, 
	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 37 */
        "silver dragon",TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_COLD,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 38 */
        "bronze dragon", TRUE, 	 
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_LIGHTNING, 
	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },

    { /* 39 */
        "copper dragon",TRUE, 	
	0, 		AFF_SANCTUARY|AFF_INFRARED|AFF_FLYING,	0,
	0,		RES_BASH|RES_CHARM|RES_ACID,	VULN_PIERCE,
        A|H|M|V,        A|B|C|D|E|F|G|H|I|J|K
    },


    
    {
     "bat", FALSE,
     0, AFF_FLYING | AFF_DARK_VISION, OFF_DODGE | OFF_FAST,
     0, 0, VULN_LIGHT,
     A | G | V, A | C | D | E | F | H | J | K | P},

    {
     "bear", FALSE,
     0, 0, OFF_CRUSH | OFF_DISARM | OFF_BERSERK,
     0, RES_BASH | RES_COLD, 0,
     A | G | V, A | B | C | D | E | F | H | J | K | U | V},

    {
     "cat", FALSE,
     0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
     0, 0, 0,
     A | G | V, A | C | D | E | F | H | J | K | Q | U | V},

    {
     "centipede", FALSE,
     0, AFF_DARK_VISION, 0,
     0, RES_PIERCE | RES_COLD, VULN_BASH,
     A | B | G | O, A | C | K},

    {
     "dog", FALSE,
     0, 0, OFF_FAST,
     0, 0, 0,
     A | G | V, A | C | D | E | F | H | J | K | U | V},

    {
     "doll", FALSE,
     0, 0, 0,
     IMM_COLD | IMM_POISON | IMM_HOLY | IMM_NEGATIVE | IMM_MENTAL |
     IMM_DISEASE | IMM_DROWNING, RES_BASH | RES_LIGHT,
     VULN_SLASH | VULN_FIRE | VULN_ACID | VULN_LIGHTNING | VULN_ENERGY,
     E | J | M | cc, A | B | C | G | H | K},

    {"dragon", FALSE,
     0, AFF_INFRARED | AFF_FLYING, 0,
     0, RES_FIRE | RES_BASH | RES_CHARM,
     VULN_PIERCE | VULN_COLD,
     A | H | Z, A | C | D | E | F | G | H | I | J | K | P | Q | U | V | X},

    {
     "fido", FALSE,
     0, 0, OFF_DODGE | ASSIST_RACE,
     0, 0, VULN_MAGIC,
     A | B | G | V, A | C | D | E | F | H | J | K | Q | V},

    {
     "fox", FALSE,
     0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
     0, 0, 0,
     A | G | V, A | C | D | E | F | H | J | K | Q | V},

    {
     "goblin", FALSE,
     0, AFF_INFRARED, 0,
     0, RES_DISEASE, VULN_MAGIC,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

    {
     "hobgoblin", FALSE,
     0, AFF_INFRARED, 0,
     0, RES_DISEASE | RES_POISON, 0,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K | Y},

    {
     "kobold", FALSE,
     0, AFF_INFRARED, 0,
     0, RES_POISON, VULN_MAGIC,
     A | B | H | M | V, A | B | C | D | E | F | G | H | I | J | K | Q},

    {
     "lizard", FALSE,
     0, 0, 0,
     0, RES_POISON, VULN_COLD,
     A | G | X | cc, A | C | D | E | F | H | K | Q | V},

    {
     "modron", FALSE,
     0, AFF_INFRARED, ASSIST_RACE | ASSIST_ALIGN,
     IMM_CHARM | IMM_DISEASE | IMM_MENTAL | IMM_HOLY | IMM_NEGATIVE,
     RES_FIRE | RES_COLD | RES_ACID, 0,
     H, A | B | C | G | H | J | K},

    {
     "orc", FALSE,
     0, AFF_INFRARED, 0,
     0, RES_DISEASE, VULN_LIGHT,
     A | H | M | V, A | B | C | D | E | F | G | H | I | J | K},

    {
     "pig", FALSE,
     0, 0, 0,
     0, 0, 0,
     A | G | V, A | C | D | E | F | H | J | K},

    {
     "rabbit", FALSE,
     0, 0, OFF_DODGE | OFF_FAST,
     0, 0, 0,
     A | G | V, A | C | D | E | F | H | J | K},

    {
     "school monster", FALSE,
     ACT_NOALIGN, 0, 0,
     IMM_CHARM | IMM_SUMMON, 0, VULN_MAGIC,
     A | M | V, A | B | C | D | E | F | H | J | K | Q | U},

    {
     "snake", FALSE,
     0, 0, 0,
     0, RES_POISON, VULN_COLD,
     A | G | X | Y | cc, A | D | E | F | K | L | Q | V | X},

    {
     "song bird", FALSE,
     0, AFF_FLYING, OFF_FAST | OFF_DODGE,
     0, 0, 0,
     A | G | W, A | C | D | E | F | H | K | P},

    {
     "troll", FALSE,
     0, AFF_REGENERATION | AFF_INFRARED | AFF_DETECT_HIDDEN,
     OFF_BERSERK,
     0, RES_CHARM | RES_BASH, VULN_FIRE | VULN_ACID,
     A | B | H | M | V, A | B | C | D | E | F | G | H | I | J | K | U | V},

    {
     "water fowl", FALSE,
     0, AFF_SWIM | AFF_FLYING, 0,
     0, RES_DROWNING, 0,
     A | G | W, A | C | D | E | F | H | K | P},

    {
     "wolf", FALSE,
     0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
     0, 0, 0,
     A | G | V, A | C | D | E | F | J | K | Q | V},

    {
     "wyvern", FALSE,
     0, AFF_FLYING | AFF_DETECT_INVIS | AFF_DETECT_HIDDEN,
     OFF_BASH | OFF_FAST | OFF_DODGE,
     IMM_POISON, 0, VULN_LIGHT,
     A | B | G | Z, A | C | D | E | F | H | J | K | Q | V | X},

    {
     "unique", FALSE,
     0, 0, 0,
     0, 0, 0,
     0, 0},


    {
     NULL, 0, 0, 0, 0, 0, 0}
};

const struct pc_race_type pc_race_table[] = {
    {"null race", "", 0, {100, 100, 100, 100},
    70, 140,    {""}, {13, 13, 13, 13, 13}, {18, 18, 18, 18, 18}, 0},

/*
    {
    "race name",     short name,     points,    { class multipliers },
    "height", "weight", { bonus skills },
    { base stats },        { max stats },        size 
    },
*/
    {
     "human", "Human    ", 0, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 140, {""},
     {13, 13, 13, 13, 13}, {18, 18, 18, 18, 18}, SIZE_MEDIUM},

    {
     "elf", "Elf      ", 20, {100, 125, 100, 120, 120, 120, 100, 120, 125, 100},
     72, 130, {"sneak", "hide"},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_SMALL},

    {
     "dwarf", "Dwarf    ", 20, {150, 100, 125, 100, 100, 100, 150, 100, 100, 130},
     40, 170, {"berserk"},
     {14, 12, 14, 10, 15}, {20, 16, 19, 14, 21}, SIZE_MEDIUM},

    {
     "giant", "Giant    ", 25, {200, 150, 150, 105, 120, 120, 200, 120, 150, 175},
     120, 250, {"bash", "fast healing"},
     {16, 11, 13, 11, 14}, {22, 15, 18, 15, 20}, SIZE_LARGE},

    {
     "draconian", "Draconian", 20, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     80, 170, {""},
     {16, 12, 13, 11, 16}, {22, 15, 18, 15, 20}, SIZE_MEDIUM},

    {
     "gnome", "Gnome    ", 10, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     35, 80, {""},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_SMALL},

    {
     "hobbit", "Hobbit   ", 10, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     40, 150, {""},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_SMALL},

    {
     "kender", "Kender   ", 10, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     35, 75, {""},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_SMALL},

    {
     "troll", "Troll    ", 25, {200, 150, 150, 105, 100, 100, 200, 100, 150, 175},
     95, 220, {"bash", "fast healing"},
     {16, 11, 13, 11, 14}, {23, 15, 18, 15, 22}, SIZE_LARGE},

    {
     "pixie", "Pixie    ", 10, {100, 125, 100, 120, 120, 120, 100, 120, 125, 100},
     6, 1, {"sneak", "hide"},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_SMALL},

    {
     "half-elf", "Half-elf ", 20, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 140, {""},
     {13, 13, 13, 13, 13}, {18, 18, 18, 18, 18}, SIZE_MEDIUM},

    {
     "half-giant", "Hlf-Giant", 25, {125, 100, 125, 100, 100, 100, 125, 100, 100, 125},
     80, 220, {"berserk"},
     {14, 12, 14, 10, 15}, {20, 16, 19, 14, 21}, SIZE_LARGE},

    {
     "half-orc", "Half-Orc ", 20, {150, 100, 125, 100, 100, 100, 150, 100, 100, 125},
     70, 150, {"berserk"},
     {14, 12, 14, 10, 15}, {20, 16, 19, 14, 21}, SIZE_MEDIUM},

    {
     "duergar", "Duergar  ", 20, {150, 100, 125, 100, 100, 100, 150, 100, 100, 130},
     40, 160, {"berserk"},
     {14, 12, 14, 10, 15}, {20, 16, 19, 14, 21}, SIZE_MEDIUM},

    {
     "minotaur", "Minotaur ", 20, {200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     85, 230, {"bash", "fast healing"},
     {16, 11, 13, 11, 14}, {22, 15, 18, 15, 20}, SIZE_LARGE},

    {
     "centaur", "Centaur  ", 10, {100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     85, 260, {"berserk"},
     {14, 12, 14, 10, 15}, {20, 16, 19, 14, 21}, SIZE_LARGE},

    {
     "drow", "Dark Elf ", 20, {100, 125, 100, 120, 120, 120, 100, 120, 125, 100},
     80, 120, {"sneak", "hide"},
     {12, 14, 13, 15, 11}, {16, 20, 18, 21, 15}, SIZE_MEDIUM},

    {
     "storm giant",  "StormGia ",30,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},
    
    {
     "cloud giant",  "CloudGia ", 30,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},

    {
        "fire giant",   "FireGia  ",30 ,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},

    {
        "frost giant",  "FrostGia ",30,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},
    
    {
        "cyclops",  "Cyclops  ",30,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},

    {
        "hydra",  "Hydra    ",20,{200, 150, 150, 105, 100, 100, 200, 100, 150, 150},
     168, 600, { "bash"," enhanced damage" , "sword" },
     {15, 15, 15, 15, 15}, { 25, 25, 25, 25, 25 }, SIZE_HUGE},

    {
        "rockseer","Rockseer ",20,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 150,	{ "wand" },
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_MEDIUM},

    {
	"svirfnebli",	"Svirf    ",20,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     50, 120,	{ "lore", "identify" },
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_SMALL},

    {
	"arial",	"Arial    ",10,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 150,	{ "" },
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_MEDIUM},
   {
	"felar",	"Felar    ",20,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 150,{ "hand to hand" },
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_MEDIUM},
    {
	"githyanki",	"Githy    ",20,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 150,{ "sword" ,"dagger"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_MEDIUM},

    {
	"satyr","Satyr    ",20,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     70, 150,	{ "camouflage" ,"ambush", "steal" },
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_MEDIUM},
   {
	"black dragon","BlaDr    ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"blue dragon","BluDr    ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"green dragon","GReDr    ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"red dragon","RedDr    ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"white dragon","WhiteDrag",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"brass dragon","BrassDrag",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"gold dragon","GoldDrag ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"silver dragon","SilverDr ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"bronze dragon","BronzeDr ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT},

    {
	"copper dragon","CopperDr ",30,{100, 100, 100, 100, 100, 100, 100, 100, 100, 100},
     170, 800,	{ "hand to hand" , "bash"},
     	{ 15, 15, 15, 15, 15},	{ 25, 25, 25, 25, 25}, SIZE_GIANT}

};


// struct    class_type
// {
//    char *  name;              /* the full name of the class  */
//    char    who_name    [4];   /* Three-letter name for 'who' */
//    sh_int  attr_prime;        /* Prime attribute             */
//    sh_int  weapon;            /* First weapon                */
//    sh_int  guild[MAX_GUILD];  /* Vnum of guild rooms         */
//    sh_int  skill_adept;       /* Maximum skill level         */
//    sh_int  thac0_00;          /* Thac0 for level  0          */
//    sh_int  thac0_32;          /* Thac0 for level 32          */
//    sh_int  hp_min;            /* Min hp gained on leveling   */
//    sh_int  hp_max;            /* Max hp gained on leveling   */
//    bool    fMana;             /* Class gains mana on level   */
//    char *  base_group;        /* base skills gained          */
//    char *  default_group;     /* default skills gained       */
// };


/*
 * Class table.
 */
const struct class_type class_table[MAX_CLASS] = {
    {
     "mage", "Mag", STAT_INT, OBJ_VNUM_SCHOOL_DAGGER,
     {3018, 9618}, 75, 20, 6, 6, 8, TRUE,
     "mage basics", "mage default"},

    {
     "cleric", "Cle", STAT_WIS, OBJ_VNUM_SCHOOL_MACE,
     {3003, 9619}, 75, 20, 2, 7, 10, TRUE,
     "cleric basics", "cleric default"},

    {
     "ninja", "Nin", STAT_DEX, OBJ_VNUM_SCHOOL_DAGGER,
     {3028, 9639}, 75, 20, -4, 8, 13, FALSE,
     "thief basics", "ninja default"},

    {
     "samurai", "Sam", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
     {3022, 9633}, 75, 20, -10, 11, 15, FALSE,
     "warrior basics", "samurai default"},

    {
     "paladin", "Pal", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
     {3022, 9633}, 80, 20, -10, 13, 16, TRUE,
     "warrior basics", "paladin default"},

    {
     "antipaladin", "AP ", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
     {3022, 9633}, 80, 20, -10, 13, 16, TRUE,
     "warrior basics", "antipaladin default"},

    {
     "necromancer", "Nec", STAT_INT, OBJ_VNUM_SCHOOL_DAGGER,
     {3018, 9618}, 75, 20, 6, 6, 8, TRUE,
     "mage basics", "necromancer default"},

    {
     "ranger", "Rgr", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
     {3022, 9633}, 75, 20, -10, 11, 15, FALSE,
     "warrior basics", "ranger default"},

    {
     "monk", "Mon", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
     {3022, 9633}, 75, 20, -10, 11, 15, FALSE,
     "cleric basics", "monk default"},

    {
     "assassin", "Asn", STAT_DEX, OBJ_VNUM_SCHOOL_DAGGER,
     {3028, 9639}, 75, 20, -4, 8, 13, FALSE,
     "thief basics", "assassin default"},




//    char *  name;              /* the full name of the class  */
  //  char    who_name    [4];   /* Three-letter name for 'who' */
//    sh_int  attr_prime;        /* Prime attribute             */
//    sh_int  weapon;            /* First weapon                */
//    sh_int  guild[MAX_GUILD];  /* Vnum of guild rooms         */
//    sh_int  skill_adept;       /* Maximum skill level         */
//    sh_int  thac0_00;          /* Thac0 for level  0          */
//    sh_int  thac0_32;          /* Thac0 for level 32          */
//    sh_int  hp_min;            /* Min hp gained on leveling   */
//    sh_int  hp_max;            /* Max hp gained on leveling   */
//    bool    fMana;             /* Class gains mana on level   */
//    char *  base_group;        /* base skills gained          */
//    char *  default_group;     /* default skills gained       */

};



/*
 * Titles.
 */
char *const title_table[MAX_CLASS][MAX_LEVEL + 1][2] = {
    {
     {"Man", "Woman"},

     {"Apprentice of Magic", "Apprentice of Magic"},
     {"Spell Student", "Spell Student"},
     {"Scholar of Magic", "Scholar of Magic"},
     {"Delver in Spells", "Delveress in Spells"},
     {"Medium of Magic", "Medium of Magic"},

     {"Scribe of Magic", "Scribess of Magic"},
     {"Seer", "Seeress"},
     {"Sage", "Sage"},
     {"Illusionist", "Illusionist"},
     {"Abjurer", "Abjuress"},

     {"Invoker", "Invoker"},
     {"Enchanter", "Enchantress"},
     {"Conjurer", "Conjuress"},
     {"Magician", "Witch"},
     {"Creator", "Creator"},

     {"Savant", "Savant"},
     {"Magus", "Craftess"},
     {"Wizard", "Wizard"},
     {"Warlock", "War Witch"},
     {"Sorcerer", "Sorceress"},

     {"Elder Sorcerer", "Elder Sorceress"},
     {"Grand Sorcerer", "Grand Sorceress"},
     {"Great Sorcerer", "Great Sorceress"},
     {"Golem Maker", "Golem Maker"},
     {"Greater Golem Maker", "Greater Golem Maker"},

     {"Maker of Stones", "Maker of Stones",},
     {"Maker of Potions", "Maker of Potions",},
     {"Maker of Scrolls", "Maker of Scrolls",},
     {"Maker of Wands", "Maker of Wands",},
     {"Maker of Staves", "Maker of Staves",},

     {"Demon Summoner", "Demon Summoner"},
     {"Greater Demon Summoner", "Greater Demon Summoner"},
     {"Dragon Charmer", "Dragon Charmer"},
     {"Greater Dragon Charmer", "Greater Dragon Charmer"},
     {"Master of all Magic", "Master of all Magic"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Mage Hero", "Mage Heroine"},
     {"Avatar of Magic", "Avatar of Magic"},
     {"Angel of Magic", "Angel of Magic"},
     {"Demigod of Magic", "Demigoddess of Magic"},
     {"Immortal of Magic", "Immortal of Magic"},
     {"God of Magic", "Goddess of Magic"},
     {"Deity of Magic", "Deity of Magic"},
     {"Supremity of Magic", "Supremity of Magic"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Believer", "Believer"},
     {"Attendant", "Attendant"},
     {"Acolyte", "Acolyte"},
     {"Novice", "Novice"},
     {"Missionary", "Missionary"},

     {"Adept", "Adept"},
     {"Deacon", "Deaconess"},
     {"Vicar", "Vicaress"},
     {"Priest", "Priestess"},
     {"Minister", "Lady Minister"},

     {"Canon", "Canon"},
     {"Levite", "Levitess"},
     {"Curate", "Curess"},
     {"Monk", "Nun"},
     {"Healer", "Healess"},

     {"Chaplain", "Chaplain"},
     {"Expositor", "Expositress"},
     {"Bishop", "Bishop"},
     {"Arch Bishop", "Arch Lady of the Church"},
     {"Patriarch", "Matriarch"},

     {"Elder Patriarch", "Elder Matriarch"},
     {"Grand Patriarch", "Grand Matriarch"},
     {"Great Patriarch", "Great Matriarch"},
     {"Demon Killer", "Demon Killer"},
     {"Greater Demon Killer", "Greater Demon Killer"},

     {"Cardinal of the Sea", "Cardinal of the Sea"},
     {"Cardinal of the Earth", "Cardinal of the Earth"},
     {"Cardinal of the Air", "Cardinal of the Air"},
     {"Cardinal of the Ether", "Cardinal of the Ether"},
     {"Cardinal of the Heavens", "Cardinal of the Heavens"},

     {"Avatar of an Immortal", "Avatar of an Immortal"},
     {"Avatar of a Deity", "Avatar of a Deity"},
     {"Avatar of a Supremity", "Avatar of a Supremity"},
     {"Avatar of an Implementor", "Avatar of an Implementor"},
     {"Master of all Divinity", "Mistress of all Divinity"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Holy Hero", "Holy Heroine"},
     {"Holy Avatar", "Holy Avatar"},
     {"Angel", "Angel"},
     {"Demigod", "Demigoddess",},
     {"Immortal", "Immortal"},
     {"God", "Goddess"},
     {"Deity", "Deity"},
     {"Supreme Master", "Supreme Mistress"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Pilferer", "Pilferess"},
     {"Footpad", "Footpad"},
     {"Filcher", "Filcheress"},
     {"Pick-Pocket", "Pick-Pocket"},
     {"Sneak", "Sneak"},

     {"Pincher", "Pincheress"},
     {"Cut-Purse", "Cut-Purse"},
     {"Snatcher", "Snatcheress"},
     {"Sharper", "Sharpress"},
     {"Rogue", "Rogue"},

     {"Robber", "Robber"},
     {"Magsman", "Magswoman"},
     {"Highwayman", "Highwaywoman"},
     {"Burglar", "Burglaress"},
     {"Thief", "Thief"},

     {"Knifer", "Knifer"},
     {"Quick-Blade", "Quick-Blade"},
     {"Killer", "Murderess"},
     {"Brigand", "Brigand"},
     {"Cut-Throat", "Cut-Throat"},

     {"Spy", "Spy"},
     {"Grand Spy", "Grand Spy"},
     {"Master Spy", "Master Spy"},
     {"Assassin", "Assassin"},
     {"Greater Assassin", "Greater Assassin"},

     {"Master of Vision", "Mistress of Vision"},
     {"Master of Hearing", "Mistress of Hearing"},
     {"Master of Smell", "Mistress of Smell"},
     {"Master of Taste", "Mistress of Taste"},
     {"Master of Touch", "Mistress of Touch"},

     {"Crime Lord", "Crime Mistress"},
     {"Infamous Crime Lord", "Infamous Crime Mistress"},
     {"Greater Crime Lord", "Greater Crime Mistress"},
     {"Master Crime Lord", "Master Crime Mistress"},
     {"Godfather", "Godmother"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Assassin Hero", "Assassin Heroine"},
     {"Avatar of Death", "Avatar of Death",},
     {"Angel of Death", "Angel of Death"},
     {"Demigod of Assassins", "Demigoddess of Assassins"},
     {"Immortal Assasin", "Immortal Assassin"},
     {"God of Assassins", "God of Assassins",},
     {"Deity of Assassins", "Deity of Assassins"},
     {"Supreme Master", "Supreme Mistress"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Swordpupil", "Swordpupil"},
     {"Recruit", "Recruit"},
     {"Sentry", "Sentress"},
     {"Fighter", "Fighter"},
     {"Soldier", "Soldier"},

     {"Warrior", "Warrior"},
     {"Veteran", "Veteran"},
     {"Swordsman", "Swordswoman"},
     {"Fencer", "Fenceress"},
     {"Combatant", "Combatess"},

     {"Hero", "Heroine"},
     {"Myrmidon", "Myrmidon"},
     {"Swashbuckler", "Swashbuckleress"},
     {"Mercenary", "Mercenaress"},
     {"Swordmaster", "Swordmistress"},

     {"Lieutenant", "Lieutenant"},
     {"Champion", "Lady Champion"},
     {"Dragoon", "Lady Dragoon"},
     {"Cavalier", "Lady Cavalier"},
     {"Knight", "Lady Knight"},

     {"Grand Knight", "Grand Knight"},
     {"Master Knight", "Master Knight"},
     {"Paladin", "Paladin"},
     {"Grand Paladin", "Grand Paladin"},
     {"Demon Slayer", "Demon Slayer"},

     {"Greater Demon Slayer", "Greater Demon Slayer"},
     {"Dragon Slayer", "Dragon Slayer"},
     {"Greater Dragon Slayer", "Greater Dragon Slayer"},
     {"Underlord", "Underlord"},
     {"Overlord", "Overlord"},

     {"Baron of Thunder", "Baroness of Thunder"},
     {"Baron of Storms", "Baroness of Storms"},
     {"Baron of Tornadoes", "Baroness of Tornadoes"},
     {"Baron of Hurricanes", "Baroness of Hurricanes"},
     {"Baron of Meteors", "Baroness of Meteors"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Knight Hero", "Knight Heroine"},
     {"Avatar of War", "Avatar of War"},
     {"Angel of War", "Angel of War"},
     {"Demigod of War", "Demigoddess of War"},
     {"Immortal Warlord", "Immortal Warlord"},
     {"God of War", "God of War"},
     {"Deity of War", "Deity of War"},
     {"Supreme Master of War", "Supreme Mistress of War"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },
    {
     {"Man", "Woman"},

     {"Swordpupil", "Swordpupil"},
     {"Recruit", "Recruit"},
     {"Sentry", "Sentress"},
     {"Fighter", "Fighter"},
     {"Soldier", "Soldier"},

     {"Warrior", "Warrior"},
     {"Veteran", "Veteran"},
     {"Swordsman", "Swordswoman"},
     {"Fencer", "Fenceress"},
     {"Combatant", "Combatess"},

     {"Hero", "Heroine"},
     {"Myrmidon", "Myrmidon"},
     {"Swashbuckler", "Swashbuckleress"},
     {"Mercenary", "Mercenaress"},
     {"Swordmaster", "Swordmistress"},

     {"Lieutenant", "Lieutenant"},
     {"Champion", "Lady Champion"},
     {"Dragoon", "Lady Dragoon"},
     {"Cavalier", "Lady Cavalier"},
     {"Knight", "Lady Knight"},

     {"Grand Knight", "Grand Knight"},
     {"Master Knight", "Master Knight"},
     {"Paladin", "Paladin"},
     {"Grand Paladin", "Grand Paladin"},
     {"Demon Slayer", "Demon Slayer"},

     {"Greater Demon Slayer", "Greater Demon Slayer"},
     {"Dragon Slayer", "Dragon Slayer"},
     {"Greater Dragon Slayer", "Greater Dragon Slayer"},
     {"Underlord", "Underlord"},
     {"Overlord", "Overlord"},

     {"Baron of Thunder", "Baroness of Thunder"},
     {"Baron of Storms", "Baroness of Storms"},
     {"Baron of Tornadoes", "Baroness of Tornadoes"},
     {"Baron of Hurricanes", "Baroness of Hurricanes"},
     {"Baron of Meteors", "Baroness of Meteors"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Knight Hero", "Knight Heroine"},
     {"Avatar of War", "Avatar of War"},
     {"Angel of War", "Angel of War"},
     {"Demigod of War", "Demigoddess of War"},
     {"Immortal Warlord", "Immortal Warlord"},
     {"God of War", "God of War"},
     {"Deity of War", "Deity of War"},
     {"Supreme Master of War", "Supreme Mistress of War"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },
    {
     {"Man", "Woman"},

     {"Swordpupil", "Swordpupil"},
     {"Recruit", "Recruit"},
     {"Sentry", "Sentress"},
     {"Fighter", "Fighter"},
     {"Soldier", "Soldier"},

     {"Warrior", "Warrior"},
     {"Veteran", "Veteran"},
     {"Swordsman", "Swordswoman"},
     {"Fencer", "Fenceress"},
     {"Combatant", "Combatess"},

     {"Hero", "Heroine"},
     {"Myrmidon", "Myrmidon"},
     {"Swashbuckler", "Swashbuckleress"},
     {"Mercenary", "Mercenaress"},
     {"Swordmaster", "Swordmistress"},

     {"Lieutenant", "Lieutenant"},
     {"Champion", "Lady Champion"},
     {"Dragoon", "Lady Dragoon"},
     {"Cavalier", "Lady Cavalier"},
     {"Knight", "Lady Knight"},

     {"Grand Knight", "Grand Knight"},
     {"Master Knight", "Master Knight"},
     {"Paladin", "Paladin"},
     {"Grand Paladin", "Grand Paladin"},
     {"Demon Slayer", "Demon Slayer"},

     {"Greater Demon Slayer", "Greater Demon Slayer"},
     {"Dragon Slayer", "Dragon Slayer"},
     {"Greater Dragon Slayer", "Greater Dragon Slayer"},
     {"Underlord", "Underlord"},
     {"Overlord", "Overlord"},

     {"Baron of Thunder", "Baroness of Thunder"},
     {"Baron of Storms", "Baroness of Storms"},
     {"Baron of Tornadoes", "Baroness of Tornadoes"},
     {"Baron of Hurricanes", "Baroness of Hurricanes"},
     {"Baron of Meteors", "Baroness of Meteors"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Knight Hero", "Knight Heroine"},
     {"Avatar of War", "Avatar of War"},
     {"Angel of War", "Angel of War"},
     {"Demigod of War", "Demigoddess of War"},
     {"Immortal Warlord", "Immortal Warlord"},
     {"God of War", "God of War"},
     {"Deity of War", "Deity of War"},
     {"Supreme Master of War", "Supreme Mistress of War"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Apprentice of Magic", "Apprentice of Magic"},
     {"Spell Student", "Spell Student"},
     {"Scholar of Magic", "Scholar of Magic"},
     {"Delver in Spells", "Delveress in Spells"},
     {"Medium of Magic", "Medium of Magic"},

     {"Scribe of Magic", "Scribess of Magic"},
     {"Seer", "Seeress"},
     {"Sage", "Sage"},
     {"Illusionist", "Illusionist"},
     {"Abjurer", "Abjuress"},

     {"Invoker", "Invoker"},
     {"Enchanter", "Enchantress"},
     {"Conjurer", "Conjuress"},
     {"Magician", "Witch"},
     {"Creator", "Creator"},

     {"Savant", "Savant"},
     {"Magus", "Craftess"},
     {"Wizard", "Wizard"},
     {"Warlock", "War Witch"},
     {"Sorcerer", "Sorceress"},

     {"Elder Sorcerer", "Elder Sorceress"},
     {"Grand Sorcerer", "Grand Sorceress"},
     {"Great Sorcerer", "Great Sorceress"},
     {"Golem Maker", "Golem Maker"},
     {"Greater Golem Maker", "Greater Golem Maker"},

     {"Maker of Stones", "Maker of Stones",},
     {"Maker of Potions", "Maker of Potions",},
     {"Maker of Scrolls", "Maker of Scrolls",},
     {"Maker of Wands", "Maker of Wands",},
     {"Maker of Staves", "Maker of Staves",},

     {"Demon Summoner", "Demon Summoner"},
     {"Greater Demon Summoner", "Greater Demon Summoner"},
     {"Dragon Charmer", "Dragon Charmer"},
     {"Greater Dragon Charmer", "Greater Dragon Charmer"},
     {"Master of all Magic", "Master of all Magic"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},
     {"Master Mage", "Master Mage"},

     {"Mage Hero", "Mage Heroine"},
     {"Avatar of Magic", "Avatar of Magic"},
     {"Angel of Magic", "Angel of Magic"},
     {"Demigod of Magic", "Demigoddess of Magic"},
     {"Immortal of Magic", "Immortal of Magic"},
     {"God of Magic", "Goddess of Magic"},
     {"Deity of Magic", "Deity of Magic"},
     {"Supremity of Magic", "Supremity of Magic"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },
    {
     {"Man", "Woman"},

     {"Swordpupil", "Swordpupil"},
     {"Recruit", "Recruit"},
     {"Sentry", "Sentress"},
     {"Fighter", "Fighter"},
     {"Soldier", "Soldier"},

     {"Warrior", "Warrior"},
     {"Veteran", "Veteran"},
     {"Swordsman", "Swordswoman"},
     {"Fencer", "Fenceress"},
     {"Combatant", "Combatess"},

     {"Hero", "Heroine"},
     {"Myrmidon", "Myrmidon"},
     {"Swashbuckler", "Swashbuckleress"},
     {"Mercenary", "Mercenaress"},
     {"Swordmaster", "Swordmistress"},

     {"Lieutenant", "Lieutenant"},
     {"Champion", "Lady Champion"},
     {"Dragoon", "Lady Dragoon"},
     {"Cavalier", "Lady Cavalier"},
     {"Knight", "Lady Knight"},

     {"Grand Knight", "Grand Knight"},
     {"Master Knight", "Master Knight"},
     {"Paladin", "Paladin"},
     {"Grand Paladin", "Grand Paladin"},
     {"Demon Slayer", "Demon Slayer"},

     {"Greater Demon Slayer", "Greater Demon Slayer"},
     {"Dragon Slayer", "Dragon Slayer"},
     {"Greater Dragon Slayer", "Greater Dragon Slayer"},
     {"Underlord", "Underlord"},
     {"Overlord", "Overlord"},

     {"Baron of Thunder", "Baroness of Thunder"},
     {"Baron of Storms", "Baroness of Storms"},
     {"Baron of Tornadoes", "Baroness of Tornadoes"},
     {"Baron of Hurricanes", "Baroness of Hurricanes"},
     {"Baron of Meteors", "Baroness of Meteors"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},
     {"Master Warrior", "Master Warrior"},

     {"Knight Hero", "Knight Heroine"},
     {"Avatar of War", "Avatar of War"},
     {"Angel of War", "Angel of War"},
     {"Demigod of War", "Demigoddess of War"},
     {"Immortal Warlord", "Immortal Warlord"},
     {"God of War", "God of War"},
     {"Deity of War", "Deity of War"},
     {"Supreme Master of War", "Supreme Mistress of War"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Believer", "Believer"},
     {"Attendant", "Attendant"},
     {"Acolyte", "Acolyte"},
     {"Novice", "Novice"},
     {"Missionary", "Missionary"},

     {"Adept", "Adept"},
     {"Deacon", "Deaconess"},
     {"Vicar", "Vicaress"},
     {"Priest", "Priestess"},
     {"Minister", "Lady Minister"},

     {"Canon", "Canon"},
     {"Levite", "Levitess"},
     {"Curate", "Curess"},
     {"Monk", "Nun"},
     {"Healer", "Healess"},

     {"Chaplain", "Chaplain"},
     {"Expositor", "Expositress"},
     {"Bishop", "Bishop"},
     {"Arch Bishop", "Arch Lady of the Church"},
     {"Patriarch", "Matriarch"},

     {"Elder Patriarch", "Elder Matriarch"},
     {"Grand Patriarch", "Grand Matriarch"},
     {"Great Patriarch", "Great Matriarch"},
     {"Demon Killer", "Demon Killer"},
     {"Greater Demon Killer", "Greater Demon Killer"},

     {"Cardinal of the Sea", "Cardinal of the Sea"},
     {"Cardinal of the Earth", "Cardinal of the Earth"},
     {"Cardinal of the Air", "Cardinal of the Air"},
     {"Cardinal of the Ether", "Cardinal of the Ether"},
     {"Cardinal of the Heavens", "Cardinal of the Heavens"},

     {"Avatar of an Immortal", "Avatar of an Immortal"},
     {"Avatar of a Deity", "Avatar of a Deity"},
     {"Avatar of a Supremity", "Avatar of a Supremity"},
     {"Avatar of an Implementor", "Avatar of an Implementor"},
     {"Master of all Divinity", "Mistress of all Divinity"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},
     {"Master Cleric", "Master Cleric"},

     {"Holy Hero", "Holy Heroine"},
     {"Holy Avatar", "Holy Avatar"},
     {"Angel", "Angel"},
     {"Demigod", "Demigoddess",},
     {"Immortal", "Immortal"},
     {"God", "Goddess"},
     {"Deity", "Deity"},
     {"Supreme Master", "Supreme Mistress"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },

    {
     {"Man", "Woman"},

     {"Pilferer", "Pilferess"},
     {"Footpad", "Footpad"},
     {"Filcher", "Filcheress"},
     {"Pick-Pocket", "Pick-Pocket"},
     {"Sneak", "Sneak"},

     {"Pincher", "Pincheress"},
     {"Cut-Purse", "Cut-Purse"},
     {"Snatcher", "Snatcheress"},
     {"Sharper", "Sharpress"},
     {"Rogue", "Rogue"},

     {"Robber", "Robber"},
     {"Magsman", "Magswoman"},
     {"Highwayman", "Highwaywoman"},
     {"Burglar", "Burglaress"},
     {"Thief", "Thief"},

     {"Knifer", "Knifer"},
     {"Quick-Blade", "Quick-Blade"},
     {"Killer", "Murderess"},
     {"Brigand", "Brigand"},
     {"Cut-Throat", "Cut-Throat"},

     {"Spy", "Spy"},
     {"Grand Spy", "Grand Spy"},
     {"Master Spy", "Master Spy"},
     {"Assassin", "Assassin"},
     {"Greater Assassin", "Greater Assassin"},

     {"Master of Vision", "Mistress of Vision"},
     {"Master of Hearing", "Mistress of Hearing"},
     {"Master of Smell", "Mistress of Smell"},
     {"Master of Taste", "Mistress of Taste"},
     {"Master of Touch", "Mistress of Touch"},

     {"Crime Lord", "Crime Mistress"},
     {"Infamous Crime Lord", "Infamous Crime Mistress"},
     {"Greater Crime Lord", "Greater Crime Mistress"},
     {"Master Crime Lord", "Master Crime Mistress"},
     {"Godfather", "Godmother"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},
     {"Master Thief", "Master Thief"},

     {"Assassin Hero", "Assassin Heroine"},
     {"Avatar of Death", "Avatar of Death",},
     {"Angel of Death", "Angel of Death"},
     {"Demigod of Assassins", "Demigoddess of Assassins"},
     {"Immortal Assasin", "Immortal Assassin"},
     {"God of Assassins", "God of Assassins",},
     {"Deity of Assassins", "Deity of Assassins"},
     {"Supreme Master", "Supreme Mistress"},
     {"Creator", "Creator"},
     {"Implementor", "Implementress"}
     },


};



/*
 * Attribute bonus tables.
 */
const struct str_app_type str_app[26] = {
    {-5, -4, 0, 0},                /* 0  */
    {-5, -4, 3, 1},                /* 1  */
    {-3, -2, 3, 2},
    {-3, -1, 10, 3},            /* 3  */
    {-2, -1, 25, 4},
    {-2, -1, 55, 5},            /* 5  */
    {-1, 0, 80, 6},
    {-1, 0, 90, 7},
    {0, 0, 100, 8},
    {0, 0, 100, 9},
    {0, 0, 115, 10},            /* 10  */
    {0, 0, 115, 11},
    {0, 0, 130, 12},
    {0, 0, 130, 13},            /* 13  */
    {0, 1, 140, 14},
    {1, 1, 150, 15},            /* 15  */
    {1, 2, 165, 16},
    {2, 3, 180, 22},
    {2, 3, 200, 25},            /* 18  */
    {3, 4, 225, 30},
    {3, 5, 250, 35},            /* 20  */
    {4, 6, 300, 40},
    {4, 6, 350, 45},
    {5, 7, 400, 50},
    {5, 8, 450, 55},
    {6, 9, 500, 60}                /* 25   */
};



const struct int_app_type int_app[26] = {
    {3},                        /*  0 */
    {5},                        /*  1 */
    {7},
    {8},                        /*  3 */
    {9},
    {10},                        /*  5 */
    {11},
    {12},
    {13},
    {15},
    {17},                        /* 10 */
    {19},
    {22},
    {25},
    {28},
    {31},                        /* 15 */
    {34},
    {37},
    {40},                        /* 18 */
    {44},
    {49},                        /* 20 */
    {55},
    {60},
    {70},
    {80},
    {85}                        /* 25 */
};



const struct wis_app_type wis_app[26] = {
    {0},                        /*  0 */
    {0},                        /*  1 */
    {0},
    {0},                        /*  3 */
    {0},
    {1},                        /*  5 */
    {1},
    {1},
    {1},
    {1},
    {1},                        /* 10 */
    {1},
    {1},
    {1},
    {1},
    {2},                        /* 15 */
    {2},
    {2},
    {3},                        /* 18 */
    {3},
    {3},                        /* 20 */
    {3},
    {4},
    {4},
    {4},
    {5}                            /* 25 */
};



const struct dex_app_type dex_app[26] = {
    {60},                        /* 0 */
    {50},                        /* 1 */
    {50},
    {40},
    {30},
    {20},                        /* 5 */
    {10},
    {0},
    {0},
    {0},
    {0},                        /* 10 */
    {0},
    {0},
    {0},
    {0},
    {-10},                        /* 15 */
    {-15},
    {-20},
    {-30},
    {-40},
    {-50},                        /* 20 */
    {-60},
    {-75},
    {-90},
    {-105},
    {-120}                        /* 25 */
};


const struct con_app_type con_app[26] = {
    {-4, 20},                    /*  0 */
    {-3, 25},                    /*  1 */
    {-2, 30},
    {-2, 35},                    /*  3 */
    {-1, 40},
    {-1, 45},                    /*  5 */
    {-1, 50},
    {0, 55},
    {0, 60},
    {0, 65},
    {0, 70},                    /* 10 */
    {0, 75},
    {0, 80},
    {0, 85},
    {0, 88},
    {1, 90},                    /* 15 */
    {2, 95},
    {2, 97},
    {3, 99},                    /* 18 */
    {3, 99},
    {4, 99},                    /* 20 */
    {4, 99},
    {5, 99},
    {6, 99},
    {7, 99},
    {8, 99}                        /* 25 */
};



/*
 * Liquid properties.
 * Used in world.obj.
 */
const struct liq_type liq_table[] = {
/*    name            color    proof, full, thirst, food, ssize */
    {"water", "clear", {0, 1, 10, 0, 16}},
    {"beer", "amber", {12, 1, 8, 1, 12}},
    {"red wine", "burgundy", {30, 1, 8, 1, 5}},
    {"ale", "brown", {15, 1, 8, 1, 12}},
    {"dark ale", "dark", {16, 1, 8, 1, 12}},

    {"whisky", "golden", {120, 1, 5, 0, 2}},
    {"lemonade", "pink", {0, 1, 9, 2, 12}},
    {"firebreather", "boiling", {190, 0, 4, 0, 2}},
    {"local specialty", "clear", {151, 1, 3, 0, 2}},
    {"slime mold juice", "green", {0, 2, -8, 1, 2}},

    {"milk", "white", {0, 2, 9, 3, 12}},
    {"tea", "tan", {0, 1, 8, 0, 6}},
    {"coffee", "black", {0, 1, 8, 0, 6}},
    {"blood", "red", {0, 2, -1, 2, 6}},
    {"salt water", "clear", {0, 1, -2, 0, 1}},

    {"coke", "brown", {0, 2, 9, 2, 12}},
    {"root beer", "brown", {0, 2, 9, 2, 12}},
    {"elvish wine", "green", {35, 2, 8, 1, 5}},
    {"white wine", "golden", {28, 1, 8, 1, 5}},
    {"champagne", "golden", {32, 1, 8, 1, 5}},

    {"mead", "honey-colored", {34, 2, 8, 2, 12}},
    {"rose wine", "pink", {26, 1, 8, 1, 5}},
    {"benedictine wine", "burgundy", {40, 1, 8, 1, 5}},
    {"vodka", "clear", {130, 1, 5, 0, 2}},
    {"cranberry juice", "red", {0, 1, 9, 2, 12}},

    {"orange juice", "orange", {0, 2, 9, 3, 12}},
    {"absinthe", "green", {200, 1, 4, 0, 2}},
    {"brandy", "golden", {80, 1, 5, 0, 4}},
    {"aquavit", "clear", {140, 1, 5, 0, 2}},
    {"schnapps", "clear", {90, 1, 5, 0, 2}},

    {"icewine", "purple", {50, 2, 6, 1, 5}},
    {"amontillado", "burgundy", {35, 2, 8, 1, 5}},
    {"sherry", "red", {38, 2, 7, 1, 5}},
    {"framboise", "red", {50, 1, 7, 1, 5}},
    {"rum", "amber", {151, 1, 4, 0, 2}},

    {"cordial", "clear", {100, 1, 5, 0, 2}},
    {NULL, NULL, {0, 0, 0, 0, 0}}
};



/*
 * The skill and spell table.
 * Slot numbers must never be changed as they appear in #OBJECTS sections.
 */
#define SLOT(n)    n

const struct skill_type skill_table[MAX_SKILL] = {

/*
 * Magic spells.
 */

//    char *    name;            /* Name of skill        */
//    sh_int    skill_level[MAX_CLASS];    /* Level needed by class    */
//    sh_int    rating[MAX_CLASS];    /* How hard it is to learn    */
//    SPELL_FUN *    spell_fun;        /* Spell pointer (for spells)    */
//    sh_int    target;            /* Legal targets        */
//    sh_int    minimum_position;    /* Position for caster / user    */
//    sh_int *    pgsn;            /* Pointer to associated gsn    */
//    sh_int    slot;            /* Slot for #OBJECT loading    */
//    sh_int    min_mana;        /* Minimum mana used        */
//    sh_int    beats;            /* Waiting time after use    */
//    char *    noun_damage;        /* Damage message        */
//    char *    msg_off;        /* Wear off message        */
//    char *    msg_obj;        /* Wear off message for obects    */

    {
     "reserved", {99, 99, 99, 99}, {99, 99, 99, 99},
     0, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (0), 0, 0,
     "", "", ""},

    {
     "4xexp", {50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
     spell_4xexp, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (75), 5, 0,
     "", "You now advance slower.", ""},

    {
        "acid arrow",           { 38, 60, 60, 60, 60, 60,52,60,60,60},
        { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
        spell_acid_arrow,       TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
        NULL,           SLOT(644),      20,     12,
        "acid arrow", "!Acid Arrow!" },

    {
     "acid blast", {28, 101, 35, 32, 28, 25, 20, 42, 101, 35}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_acid_blast, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (70), 20, 12,
     "acid blast", "!Acid Blast!"},

    {
        "animate dead",         { 60, 60, 60, 60, 60, 60, 40, 60, 60, 60 },
        { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
        spell_animate_dead,     TAR_OBJ_CHAR_OFF,       POS_STANDING,
        NULL,           SLOT(581),      50,     12,
        "",     "You gain energy to animate new deads."},


    {
     "armor", {7, 2, 10, 5, 5, 5, 8, 5, 2, 10 }, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_armor, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (1), 5, 12,
     "", "You feel less armored.", ""},

    {
     "bless", {101, 7, 101, 8, 10, 15, 60, 45, 10, 40}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_bless, TAR_OBJ_CHAR_DEF, POS_STANDING,
     NULL, SLOT (3), 5, 12,
     "", "You feel less righteous.",
     "$p's holy aura fades."},

    {
     "blindness", {12, 8, 17, 15, 20, 10, 10, 20, 8, 15}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_blindness, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     &gsn_blindness, SLOT (4), 5, 12,
     "", "You can see again.", ""},

    {
     "burning hands", {7, 101, 10, 9, 8, 7, 7, 10, 101, 7}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_burning_hands, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (5), 15, 12,
     "burning hands", "!Burning Hands!", ""},

    {
     "call lightning", {26, 18, 31, 22, 20, 20, 25, 20, 16, 30}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_call_lightning, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (6), 15, 12,
     "lightning bolt", "!Call Lightning!", ""},

    {"calm", {48, 16, 50, 20, 17, 23, 45, 20, 16, 45},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_calm, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (509), 30, 12,
     "", "You have lost your peace of mind.", ""},

    {
     "cancellation", {18, 26, 34, 34, 34, 34, 18, 34, 25, 34},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cancellation, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (507), 20, 12,
     "" "!cancellation!", ""},

    {
     "cause critical", {101, 13, 101, 19, 16, 15, 101, 17, 12, 101},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cause_critical, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (63), 20, 12,
     "spell", "!Cause Critical!", ""},

    {
     "cause light", {101, 1, 101, 3, 3, 2, 101, 3, 1, 101},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cause_light, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (62), 15, 12,
     "spell", "!Cause Light!", ""},

    {
     "cause serious", {101, 7, 101, 10, 8, 8, 101, 9, 7, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cause_serious, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (64), 17, 12,
     "spell", "!Cause Serious!", ""},

    {
     "chain lightning", {33, 101, 39, 36, 30, 30, 32, 30, 101, 35 }, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_chain_lightning, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (500), 25, 12,
     "lightning", "!Chain Lightning!", ""},

    {
     "change sex", {101, 101, 101, 101, 101, 101, 101, 101, 101, 101},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_change_sex, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (82), 15, 12,
     "", "Your body feels familiar again.", ""},

    {
     "charm person", {20, 101, 25, 101, 50, 50, 25, 30, 101, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_charm_person, TAR_CHAR_OFFENSIVE, POS_STANDING,
     &gsn_charm_person, SLOT (7), 5, 12,
     "", "You feel more self-confident.", ""},

    {
     "chill touch", {4, 101, 6, 6, 5, 4, 4, 20, 101, 6}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_chill_touch, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (8), 15, 12,
     "chilling touch", "You feel less cold.", ""},

    {
     "colour spray", {16, 101, 22, 20, 18, 18, 15, 17, 101, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_colour_spray, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (10), 15, 12,
     "colour spray", "!Colour Spray!", ""},

    {
     "continual light", {6, 4, 6, 9, 9, 9, 5, 9, 4, 6}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_continual_light, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (57), 7, 12,
     "", "!Continual Light!", ""},

    {
     "control weather", {15, 19, 28, 22, 22, 22, 15, 22, 19, 28}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_control_weather, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (11), 25, 12,
     "", "!Control Weather!", ""},

    {
     "counter", { 101, 101, 20, 25, 20, 20, 101, 20, 101, 30 },  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_counter, SLOT( 0), 0, 0,
     "counterattack", "!Counter!",   ""
    },

    {
     "create food", {10, 5, 11, 12, 10, 10, 10, 10, 5, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_create_food, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (12), 5, 12,
     "", "!Create Food!", ""},

    {
     "create rose", {16, 11, 10, 24, 24, 24, 15, 20, 11, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_create_rose, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (511), 30, 12,
     "", "!Create Rose!", ""},

    {
     "create spring", {14, 17, 23, 20, 15, 15, 12, 10, 17, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_create_spring, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (80), 20, 12,
     "", "!Create Spring!", ""},

    {
     "create water", {8, 3, 12, 11, 11, 11, 8, 11, 3, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_create_water, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (13), 5, 12,
     "", "!Create Water!", ""},

    {
     "cure blindness", {101, 6, 101, 8, 8, 8, 101, 8, 6, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_blindness, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (14), 5, 12,
     "", "!Cure Blindness!", ""},

    {
     "cure critical", {101, 13, 101, 19, 10, 20, 101, 7, 13, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_critical, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (15), 20, 12,
     "", "!Cure Critical!", ""},

    {
     "cure disease", {101, 13, 101, 14, 14, 14, 101, 14, 14, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_disease, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (501), 20, 12,
     "", "!Cure Disease!", ""},

    {
     "cure light", {101, 1, 101, 3, 2, 5, 101, 3, 1, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_light, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (16), 10, 12,
     "", "!Cure Light!", ""},

    {
     "cure poison", {101, 14, 101, 16, 12, 20, 101, 15, 14, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_poison, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (43), 5, 12,
     "", "!Cure Poison!", ""},

    {
     "cure serious", {101, 7, 101, 10, 8, 13, 101, 10, 7, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_cure_serious, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (61), 15, 12,
     "", "!Cure Serious!", ""},

    {
     "curse", {18, 18, 26, 22, 22, 22, 18, 22, 18, 23}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_curse, TAR_OBJ_CHAR_OFF, POS_FIGHTING,
     &gsn_curse, SLOT (17), 20, 12,
     "curse", "The curse wears off.",
     "$p is no longer impure."},

    {
     "demonfire", {101, 34, 101, 45, 50, 35, 101, 50, 34, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_demonfire, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (505), 20, 12,
     "torments", "!Demonfire!", ""},

    {
     "detect evil", {11, 4, 12, 101, 10, 10, 10, 15, 4, 12}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_evil, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (18), 5, 12,
     "", "The red in your vision disappears.", ""},

    {
     "detect good", {11, 4, 12, 101, 10, 10, 10, 15, 4, 12}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_good, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (513), 5, 12,
     "", "The gold in your vision disappears.", ""},

    {
     "detect hidden", {15, 11, 12, 101, 101, 101, 15, 20, 11, 12}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_hidden, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (44), 5, 12,
     "", "You feel less aware of your surroundings.",
     ""},

    {
     "detect invis", {3, 8, 6, 101, 101, 101, 3, 101, 8, 5}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_invis, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (19), 5, 12,
     "", "You no longer see invisible objects.",
     ""},

    {
     "detect magic", {2, 6, 5, 101, 101, 101, 2, 101, 6, 3}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_magic, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (20), 5, 12,
     "", "The detect magic wears off.", ""},

    {
     "detect poison", {15, 7, 9, 101, 101, 101, 15, 40, 7, 9},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_detect_poison, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (21), 5, 12,
     "", "!Detect Poison!", ""},

    {
     "dispel evil", {101, 15, 101, 21, 10, 20, 101, 20, 15, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_dispel_evil, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (22), 15, 12,
     "dispel evil", "!Dispel Evil!", ""},

    {
     "dispel good", {101, 15, 101, 21, 30, 20, 101, 30, 15, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_dispel_good, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (512), 15, 12,
     "dispel good", "!Dispel Good!", ""},

    {
     "dispel magic", {16, 24, 30, 30, 25, 25, 16, 25, 24, 23}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_dispel_magic, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (59), 15, 12,
     "", "!Dispel Magic!", ""},

    {
     "earthquake", {101, 10, 101, 14, 12, 12, 101, 13, 10, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_earthquake, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (23), 15, 12,
     "earthquake", "!Earthquake!", ""},

    {
     "enchant armor", {16, 101, 101, 101, 35, 35, 16, 35, 101, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_enchant_armor, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (510), 100, 24,
     "", "!Enchant Armor!", ""},

    {
     "enchant weapon", {17, 101, 101, 101, 35, 35, 16, 35, 101, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_enchant_weapon, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (24), 100, 24,
     "", "!Enchant Weapon!", ""},

    {
     "energy drain", {19, 22, 26, 23, 20, 15, 19, 25, 22, 23}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_energy_drain, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (25), 35, 12,
     "energy drain", "!Energy Drain!", ""},

    {
     "faerie fire", {6, 3, 5, 8, 8, 8, 6, 8, 3, 5}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_faerie_fire, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (72), 5, 12,
     "faerie fire", "The pink aura around you fades away.",
     ""},

    {
     "faerie fog", {14, 21, 16, 24, 24, 24, 14, 24, 31, 16}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_faerie_fog, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (73), 12, 12,
     "faerie fog", "!Faerie Fog!", ""},

    {
     "farsight", {14, 16, 16, 101, 40, 40, 14, 40, 15, 15}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_farsight, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (521), 36, 20,
     "farsight", "!Farsight!", ""},

    {
     "fireball", {22, 101, 30, 26, 26, 24, 22, 25, 101, 25}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_fireball, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (26), 15, 12,
     "fireball", "!Fireball!", ""},

    {
     "fireproof", {13, 12, 19, 18, 18, 18, 13, 18, 12, 19}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_fireproof, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (523), 10, 12,
     "", "", "$p's protective aura fades."},

    {
     "flamestrike", {101, 20, 101, 27, 25, 25, 101, 25, 20, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_flamestrike, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (65), 20, 12,
     "flamestrike", "!Flamestrike!", ""},

    {
     "fly", {10, 18, 20, 22, 20, 20, 10, 20, 18, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_fly, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (56), 10, 18,
     "", "You slowly float to the ground.", ""},

    {
     "floating disc", {4, 10, 7, 16, 15, 15, 4, 15, 10, 7}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_floating_disc, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (522), 40, 24,
     "", "!Floating disc!", ""},

    {
     "frenzy", {101, 24, 101, 26, 25, 25, 101, 25, 24, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_frenzy, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (504), 30, 24,
     "", "Your rage ebbs.", ""},

    {
     "gate", {10, 17, 8, 28, 12, 12, 10, 25, 17, 8}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_gate, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (83), 80, 12,
     "", "!Gate!", ""},

    {
     "giant strength", {11, 101, 22, 20, 20, 20, 11, 20, 101, 22}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_giant_strength, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (39), 20, 12,
     "", "You feel weaker.", ""},

    {
     "harm", {101, 23, 101, 28, 30, 20, 101, 30, 23, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_harm, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (27), 35, 12,
     "harm spell", "!Harm!,        " ""},

    {
     "haste", {21, 101, 26, 29, 25, 25, 21, 25, 101, 24}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_haste, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (502), 30, 12,
     "", "You feel yourself slow down.", ""},

    {
     "heal", {101, 21, 33, 30, 10, 40, 101, 20, 21, 35}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_heal, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (28), 50, 12,
     "", "!Heal!", ""},

    {
     "heat metal", {101, 16, 101, 23, 23, 23, 101, 25, 16, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_heat_metal, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (516), 25, 18,
     "spell", "!Heat Metal!", ""},

    {
     "holy word", {101, 36, 101, 42, 12, 101, 101, 42, 36, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_holy_word, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (506), 200, 24,
     "divine wrath", "!Holy Word!", ""},

    {
     "identify", {15, 16, 18, 101, 15, 15, 10, 15, 15, 15 }, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_identify, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (101), 12, 24,
     "", "!Identify!", ""},

    {
     "infravision", {9, 13, 10, 16, 10, 10, 10, 10, 10, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_infravision, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (77), 5, 18,
     "", "You no longer see in the dark.", ""},

    {
     "invisibility", {5, 101, 9, 101, 35, 35, 5, 35, 101, 7}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_invis, TAR_OBJ_CHAR_DEF, POS_STANDING,
     &gsn_invis, SLOT (29), 5, 12,
     "", "You are no longer invisible.",
     "$p fades into view."},

    {
     "know alignment", {12, 9, 20, 101, 20, 20, 12, 20, 9, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_know_alignment, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
     NULL, SLOT (58), 9, 12,
     "", "!Know Alignment!", ""},

    {
     "lightning bolt", {13, 23, 18, 16, 14, 14, 13, 14, 23, 18}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_lightning_bolt, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (30), 15, 12,
     "lightning bolt", "!Lightning Bolt!", ""},

    {
     "locate object", {9, 15, 11, 101, 12, 12, 9, 12, 15, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_locate_object, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (31), 20, 18,
     "", "!Locate Object!", ""},

    {
     "magic missile", {1, 101, 2, 2, 2, 2, 1, 2, 101, 1}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_magic_missile, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (32), 15, 12,
     "magic missile", "!Magic Missile!", ""},

    {
     "mass healing", {101, 38, 101, 46, 20, 101, 101, 30, 38, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_mass_healing, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (508), 100, 36,
     "", "!Mass Healing!", ""},

    {
     "mass invis", {22, 25, 31, 101, 101, 101, 22, 101, 25, 31}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_mass_invis, TAR_IGNORE, POS_STANDING,
     &gsn_mass_invis, SLOT (69), 20, 24,
     "", "You are no longer invisible.", ""},

    {
     "nexus", {40, 35, 50, 45, 40, 40, 40, 40, 35, 45},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_nexus, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (520), 150, 36,
     "", "!Nexus!", ""},

    {
     "pass door", {24, 32, 25, 37, 25, 25, 24, 25, 32, 25}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_pass_door, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (74), 20, 12,
     "", "You feel solid again.", ""},

    {
     "plague", {23, 17, 36, 26, 101, 20, 23, 35, 17, 25 }, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_plague, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     &gsn_plague, SLOT (503), 20, 12,
     "sickness", "Your sores vanish.", ""},

    {
     "poison", {17, 12, 15, 21, 21, 20, 17, 22, 12, 16}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_poison, TAR_OBJ_CHAR_OFF, POS_FIGHTING,
     &gsn_poison, SLOT (33), 10, 12,
     "poison", "You feel less sick.",
     "The poison on $p dries up."},

    {
     "portal", {35, 30, 45, 40, 30, 30, 35, 40, 25, 40},  { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_portal, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (519), 100, 24,
     "", "!Portal!", ""},

    {
     "protection evil", {12, 9, 17, 11, 10, 10, 12, 15, 9, 17}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_protection_evil, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (34), 5, 12,
     "", "You feel less protected.", ""},

    {
     "protection good", {12, 9, 17, 11, 10, 10, 12, 10, 9, 17}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_protection_good, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (514), 5, 12,
     "", "You feel less protected.", ""},

    {
     "ray of truth", {101, 35, 101, 47, 40, 101, 101, 40, 35, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_ray_of_truth, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (518), 20, 12,
     "ray of truth", "!Ray of Truth!", ""},

    {
     "recharge", {9, 101, 101, 101, 101, 101, 9, 101, 101, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_recharge, TAR_OBJ_INV, POS_STANDING,
     NULL, SLOT (517), 60, 24,
     "", "!Recharge!", ""},

    {
     "refresh", {8, 5, 12, 9, 7, 7, 6, 7, 5, 12}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_refresh, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (81), 12, 18,
     "refresh", "!Refresh!", ""},

    {
     "remove curse", {101, 18, 101, 22, 10, 20, 101, 30, 18, 101}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_remove_curse, TAR_OBJ_CHAR_DEF, POS_STANDING,
     NULL, SLOT (35), 5, 12,
     "", "!Remove Curse!", ""},

    {
     "sanctuary", {36, 20, 42, 30, 15, 25, 36, 20, 20, 40}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_sanctuary, TAR_CHAR_DEFENSIVE, POS_STANDING,
     &gsn_sanctuary, SLOT (36), 75, 12,
     "", "The white aura around your body fades.",
     ""},

    {
     "shield", {20, 35, 35, 40, 20, 25, 20, 25, 35, 30}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_shield, TAR_CHAR_DEFENSIVE, POS_STANDING,
     NULL, SLOT (67), 12, 18,
     "", "Your force shield shimmers then fades away.",
     ""},

    {
     "shocking grasp", {10, 101, 14, 13, 13, 13, 10, 13, 101, 14}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_shocking_grasp, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (101), 15, 12,
     "shocking grasp", "!Shocking Grasp!", ""},

    {
     "sleep", {10, 101, 11, 101, 101, 40, 10, 101, 101, 10}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_sleep, TAR_CHAR_OFFENSIVE, POS_STANDING,
     &gsn_sleep, SLOT (38), 15, 12,
     "", "You feel less tired.", ""},

    {
     "slow", {23, 30, 29, 32, 32, 32, 23, 32, 30, 25}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_slow, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (515), 30, 12,
     "", "You feel yourself speed up.", ""},

    {
     "stone skin", {25, 40, 40, 45, 30, 30, 25, 40, 40, 30}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_stone_skin, TAR_CHAR_SELF, POS_STANDING,
     NULL, SLOT (66), 12, 18,
     "", "Your skin feels soft again.", ""},

    {
     "summon", {24, 12, 29, 22, 20, 20, 24, 25, 12, 26}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_summon, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (40), 50, 12,
     "", "!Summon!", ""},

    {
     "tesseract", {  20, 25, 28, 30,25,25,20,30,25,20},
        { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
        spell_tesseract,      TAR_IGNORE,       POS_STANDING,
        &gsn_tesseract,       SLOT(556),        150,       12,
        "", "!tesseract!", ""},

    {
     "teleport", {13, 22, 25, 36, 36, 36, 13, 36, 22, 20}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_teleport, TAR_CHAR_SELF, POS_FIGHTING,
     NULL, SLOT (2), 35, 12,
     "", "!Teleport!", ""},

    {
     "ventriloquate", {1, 101, 2, 101, 101, 101, 1, 101, 101, 2}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_ventriloquate, TAR_IGNORE, POS_STANDING,
     NULL, SLOT (41), 5, 12,
     "", "!Ventriloquate!", ""},

    {
     "weaken", {11, 14, 16, 17, 16, 16, 11, 16, 14, 16},{ 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_weaken, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (68), 20, 12,
     "spell", "You feel stronger.", ""},

    {
     "word of recall", {32, 28, 40, 30, 30, 30, 32, 30, 28, 40}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_word_of_recall, TAR_CHAR_SELF, POS_RESTING,
     NULL, SLOT (42), 5, 12,
     "", "!Word of Recall!", ""},

/*
 * Dragon breath
 */
    {
     "acid breath", {31, 32, 33, 34, 34, 34, 31, 34, 32, 33}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_acid_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (200), 100, 24,
     "blast of acid", "!Acid Breath!", ""},

    {
     "fire breath", {40, 45, 50, 51, 51, 51, 40, 51, 45, 50}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_fire_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (201), 200, 24,
     "blast of flame", "The smoke leaves your eyes.", ""},

    {
     "frost breath", {34, 36, 38, 40, 40, 40, 34, 40, 36, 38}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_frost_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (202), 125, 24,
     "blast of frost", "!Frost Breath!", ""},

    {
     "gas breath", {39, 43, 47, 50, 50, 50, 39, 50, 43, 47}, { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_gas_breath, TAR_IGNORE, POS_FIGHTING,
     NULL, SLOT (203), 175, 24,
     "blast of gas", "!Gas Breath!", ""},

    {
     "lightning breath", {37, 40, 43, 46, 46, 46, 37, 46, 40, 43},{ 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_lightning_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (204), 150, 24,
     "blast of lightning", "!Lightning Breath!", ""},

/*
 * Spells for mega1.are from Glop/Erkenbrand.
 */
    {
     "general purpose", {101, 101, 101, 101, 101, 101, 101, 101, 101, 101}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
     spell_general_purpose, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (401), 0, 12,
     "general purpose ammo", "!General Purpose Ammo!", ""},

    {
     "high explosive", {101, 101, 101, 101, 101, 101, 101, 101, 101, 101},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
     spell_high_explosive, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     NULL, SLOT (402), 0, 12,
     "high explosive ammo", "!High Explosive Ammo!", ""},


/* combat and weapons skills */

    {
    "assassinate", {60, 60, 10, 10, 60, 60, 60, 60, 60, 10}, 	{0, 0, 5, 5, 0, 0, 0, 0, 0, 5},
    spell_null, TAR_IGNORE,          POS_STANDING,
    &gsn_assassinate,       SLOT(0),        0,       18,
    "assassination attempt", "!assassinate!", ""},

    {
     "axe", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {6, 6, 5, 4, 4, 4, 6, 4, 5, 5},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_axe, SLOT (0), 0, 0,
     "", "!Axe!", ""},

    {
     "dagger", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {2, 3, 2, 2, 2, 2, 2, 2, 3, 2},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_dagger, SLOT (0), 0, 0,
     "", "!Dagger!", ""},

    {
     "flail", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {6, 3, 6, 4, 4, 4, 6, 4, 3, 6},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_flail, SLOT (0), 0, 0,
     "", "!Flail!", ""},

    {
     "mace", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {5, 2, 3, 3, 3, 3, 5, 3, 2, 4},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_mace, SLOT (0), 0, 0,
     "", "!Mace!", ""},

    {
     "polearm", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {6, 6, 6, 4, 4, 4, 6, 4, 6, 6},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_polearm, SLOT (0), 0, 0,
     "", "!Polearm!", ""},

    {
     "shield block", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {6, 4, 6, 2, 2, 2, 6, 2, 4, 6 },
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_shield_block, SLOT (0), 0, 0,
     "", "!Shield!", ""},

    {
     "spear", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {4, 4, 4, 3, 3, 3, 4, 3, 4, 4},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_spear, SLOT (0), 0, 0,
     "", "!Spear!", ""},

    {
     "sword", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {5, 6, 3, 2, 2, 2, 5, 2, 6, 3},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_sword, SLOT (0), 0, 0,
     "", "!sword!", ""},

    {
     "whip", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {6, 5, 5, 4, 4, 4, 6, 4, 5, 5},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_whip, SLOT (0), 0, 0,
     "", "!Whip!", ""},

    {
     "backstab", {101, 101, 1, 101, 101, 101, 101, 101, 101, 1}, {0, 0, 5, 0, 0, 0, 0, 0, 0, 5},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_backstab, SLOT (0), 0, 24,
     "backstab", "!Backstab!", ""},

    {
     "circle", {60, 60, 10, 60, 60, 60, 60, 60, 60, 10}, {0, 0, 5, 0, 0, 0, 0, 0, 0, 5},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_circle, SLOT (0), 0, 24,
     "circle", "!Circle!", ""},

    {
     "jugular slice", {60, 60, 60, 15, 25, 25, 60, 20, 60, 60}, 
     {0, 0, 0, 3, 5, 5, 0, 0, 0, 0},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_jugular_slice, SLOT (0), 0, 24,
     "jugular slice", "!Jugular Slice!", ""},


    {
     "bomuzite", {60, 60, 10, 60, 60, 60, 60, 60, 60, 60}, {0, 0, 5, 0, 0, 0, 0, 0, 0, 0},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_bomuzite, SLOT (0), 0, 24,
     "bomuzite", "!Bomuzite!", ""},


    {
     "bash", {101, 101, 101, 1, 1, 1, 101, 1, 101, 101}, {0, 0, 0, 4, 4, 4, 0, 4, 0, 0},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_bash, SLOT (0), 0, 24,
     "bash", "!Bash!", ""},

    {
     "berserk", {101, 101, 101, 18, 15, 15, 101, 15, 101, 101}, {0, 0, 0, 5, 5, 5, 0, 5, 0, 0},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_berserk, SLOT (0), 0, 24,
     "", "You feel your pulse slow down.", ""},

    {
     "cleave", {  60, 60, 60, 60, 30, 30, 60, 60 ,60,60},{ 1,  1,  1,  1, 1, 1, 1, 1, 1, 1},
     spell_null,     TAR_CHAR_OFFENSIVE,     POS_STANDING,
     &gsn_cleave,         SLOT(0),        0,       24,
     "cleave",         "!Cleave!", ""},


    {
     "dirt kicking", {101, 101, 3, 3, 3, 3, 101, 3, 101, 3}, {0, 0, 4, 4, 4, 4, 0, 4, 0, 4},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_dirt, SLOT (0), 0, 24,
     "kicked dirt", "You rub the dirt out of your eyes.", ""},

    {
     "disarm", {101, 101, 12, 11, 11, 11, 101, 11, 101, 12}, {0, 0, 6, 4, 4, 4, 0, 4, 0, 6},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_disarm, SLOT (0), 0, 24,
     "", "!Disarm!", ""},

    {
     "dodge", {20, 22, 1, 13, 13, 13, 20, 13, 22, 1}, {8, 8, 4, 6, 6, 6, 8, 6, 8, 4},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_dodge, SLOT (0), 0, 0,
     "", "!Dodge!", ""},

   {
     "dual backstab", {  60, 60, 15, 60, 60, 60, 60, 60 ,60,15},
        { 1,  1,  1,  1, 1, 1, 1, 1, 1, 1,1,1,1},
        spell_null,             TAR_CHAR_OFFENSIVE,           POS_STANDING,
        &gsn_dual_backstab,       SLOT(0),        0,       0,
        "second backstab",      "!dual backstab!", ""},

    {
     "precisionstrike", {60, 60, 60, 5, 60, 60, 60, 60, 60, 60}, 
	{0, 0, 0, 5, 0, 0, 0, 0, 0, 0},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_precisionstrike, SLOT (0), 0, 24,
     "precision strike", "!Precision Strike!", ""},

    {
     "enhanced damage", {45, 30, 25, 1, 1, 1, 45, 1, 30, 25}, {10, 9, 5, 3, 3, 3, 10, 3, 9, 5},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_enhanced_damage, SLOT (0), 0, 0,
     "", "!Enhanced Damage!", ""},

    {
     "envenom", {101, 101, 10, 101, 101, 101, 101, 101, 101, 10}, {0, 0, 4, 0, 0, 0, 0, 0, 0, 4},
     spell_null, TAR_IGNORE, POS_RESTING,
     &gsn_envenom, SLOT (0), 0, 36,
     "", "!Envenom!", ""},

    {
        "grip",           { 40, 35, 30, 10, 15, 15, 40, 16, 30, 30},
        { 1, 1, 1,  1, 1, 1, 1, 1, 1, 1},
        spell_null,             TAR_IGNORE,             POS_FIGHTING,
        &gsn_grip,            SLOT( 0),        0,     18,
        "",                     "!Grip!",               ""},


    {
     "hand to hand", {25, 10, 15, 6, 6, 6, 25, 6, 10, 15}, {8, 5, 6, 4, 4, 4, 8, 4, 5, 6},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_hand_to_hand, SLOT (0), 0, 0,
     "", "!Hand to Hand!", ""},

    {
     "kick", {101, 12, 14, 8, 8, 8, 101, 8, 12, 14}, {0, 4, 6, 3, 3, 3, 0, 3, 4, 6},
     spell_null, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
     &gsn_kick, SLOT (0), 0, 12,
     "kick", "!Kick!", ""},

    {
     "parry", {22, 20, 13, 1, 1, 1, 22, 1, 20, 13}, {8, 8, 6, 4, 4, 4, 8, 4, 8, 6},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_parry, SLOT (0), 0, 0,
     "", "!Parry!", ""},

    {
     "rescue", {101, 101, 101, 1, 1, 1, 101, 1, 101, 101}, {0, 0, 0, 4, 4, 4, 0, 4, 0, 0},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_rescue, SLOT (0), 0, 12,
     "", "!Rescue!", ""},

    {
     "trip", {101, 101, 1, 15, 15, 15, 101, 15, 101, 1}, {0, 0, 4, 8, 8, 8, 0, 8, 0, 4},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_trip, SLOT (0), 0, 24,
     "trip", "!Trip!", ""},

    {
     "second attack", {30, 24, 12, 5, 5, 5, 30, 5, 24, 15}, {10, 8, 5, 3, 3, 3, 10, 3, 8, 5},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_second_attack, SLOT (0), 0, 0,
     "", "!Second Attack!", ""},

    {
     "third attack", {35, 30, 20, 12, 12, 12, 35, 12, 30, 20}, {10, 8, 5, 4, 4, 4, 10, 4, 10, 10},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_third_attack, SLOT (0), 0, 0,
     "", "!Third Attack!", ""},

    {
     "fourth attack", {101, 101, 30, 15, 15, 15, 101, 15, 101, 35}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_fourth_attack, SLOT (0), 0, 0,
     "", "!Fourth Attack!", ""},

    {
     "fifth attack", {101, 101, 35, 20, 20, 20, 101, 20, 101, 35}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
     spell_null, TAR_IGNORE, POS_FIGHTING,
     &gsn_fifth_attack, SLOT (0), 0, 0,
     "", "!Fifth Attack!", ""},

/* non-combat skills */

    {
     "fast healing", {15, 9, 16, 6, 6, 6, 15, 6, 9, 16}, {8, 5, 6, 4, 4, 4, 8, 4, 5, 6},
     spell_null, TAR_IGNORE, POS_SLEEPING,
     &gsn_fast_healing, SLOT (0), 0, 0,
     "", "!Fast Healing!", ""},

    {
     "haggle", {7, 18, 1, 14, 14, 14, 7, 14, 18, 1}, {5, 8, 3, 6, 6, 6, 5, 6, 8, 3},
     spell_null, TAR_IGNORE, POS_RESTING,
     &gsn_haggle, SLOT (0), 0, 0,
     "", "!Haggle!", ""},

    {
     "hide", {101, 101, 1, 12, 12, 12, 101, 12, 101, 1}, {0, 0, 4, 6, 6, 6, 0, 6, 0, 4},
     spell_null, TAR_IGNORE, POS_RESTING,
     &gsn_hide, SLOT (0), 0, 12,
     "", "!Hide!", ""},

    {
     "lore", {10, 10, 6, 20, 20, 20, 10, 20, 10, 6}, {6, 6, 4, 8, 8, 8, 6, 8, 6, 4},
     spell_null, TAR_IGNORE, POS_RESTING,
     &gsn_lore, SLOT (0), 0, 36,
     "", "!Lore!", ""},

    {
     "meditation", {6, 6, 15, 15, 15, 15, 6, 15, 6, 15}, {5, 5, 8, 8, 8, 8, 5, 8, 5, 8},
     spell_null, TAR_IGNORE, POS_SLEEPING,
     &gsn_meditation, SLOT (0), 0, 0,
     "", "Meditation", ""},

    {
     "peek", {8, 21, 1, 14, 14, 14, 8, 14, 21, 1}, {5, 7, 3, 6, 6, 6, 5, 6, 7, 3},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_peek, SLOT (0), 0, 0,
     "", "!Peek!", ""},

    {
     "pick lock", {25, 25, 7, 25, 25, 25, 25, 25, 25, 7}, {8, 8, 4, 8, 8, 8, 8, 8, 4},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_pick_lock, SLOT (0), 0, 12,
     "", "!Pick!", ""},

    {
     "sneak", {101, 101, 4, 10, 10, 10, 101, 10, 101, 4}, {0, 0, 4, 6, 6, 6, 0, 6, 0, 4},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_sneak, SLOT (0), 0, 12,
     "", "You no longer feel stealthy.", ""},

    {
     "steal", {101, 101, 5, 101, 101, 101, 101, 101, 101, 5}, {0, 0, 4, 0, 0, 0, 0, 0, 0, 4},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_steal, SLOT (0), 0, 24,
     "", "!Steal!", ""},

    {
     "scrolls", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},  {2, 3, 5, 8, 8, 8, 2, 8, 3, 5},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_scrolls, SLOT (0), 0, 24,
     "", "!Scrolls!", ""},

    {
     "staves", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {2, 3, 5, 8, 8, 8, 2, 8, 3, 5},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_staves, SLOT (0), 0, 12,
     "", "!Staves!", ""},

    {
     "wands", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {2, 3, 5, 8, 8, 8, 2, 8, 3, 5},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_wands, SLOT (0), 0, 12,
     "", "!Wands!", ""},

    {
     "recall", {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
     spell_null, TAR_IGNORE, POS_STANDING,
     &gsn_recall, SLOT (0), 0, 12,
     "", "!Recall!", ""}
};

const struct group_type group_table[MAX_GROUP] = {

    {
     "rom basics", {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
     {"scrolls", "staves", "wands", "recall"}
     },

    {
     "mage basics", {0, -1, -1, -1, -1, -1, 0, -1, -1, -1},
     {"dagger"}
     },

    {
     "cleric basics", {-1, 0, -1, -1, -1, -1, -1, -1, 0, -1},
     {"mace"}
     },

    {
     "thief basics", {-1, -1, 0, -1, -1, -1, -1, -1, -1, 0},
     {"dagger", "steal"}
     },

    {
     "warrior basics", {-1, -1, -1, 0, 0, 0, -1, 0, -1, -1},
     {"sword", "second attack"}
     },

    {
     "mage default", {40, -1, -1, -1, -1, -1, -1, -1, -1, -1},
     {"lore", "beguiling", "combat", "detection", "enhancement", "illusion",
      "maladictions", "protective", "transportation", "weather"}
     },

    {
     "cleric default", {-1, 40, -1, -1, -1, -1, -1, -1, -1, -1},
     {"flail", "attack", "creation", "curative", "benedictions",
      "detection", "healing", "maladictions", "protective", "shield block",
      "transportation", "weather"}
     },

    {
     "paladin default", {-1, -1, -1, -1, 40, -1, -1, -1, -1, -1},
     {"weaponsmaster", "shield block", "bash", "maladictions", "enhanced damage",
      "benedictions", "protective", "parry", "rescue", "third attack"}
     },

    {
     "antipaladin default", {-1, -1, -1, -1, -1, 40, -1, -1, -1, -1},
     {"weaponsmaster", "shield block", "bash", "maladictions", "enhanced damage",
      "combat", "transportation", "parry", "rescue", "third attack"}
     },

    {
     "ninja default", {-1, -1, 40, -1, -1, -1, -1, -1, -1, -1},
     {"mace", "sword", "backstab", "disarm", "dodge", "second attack",
      "trip", "hide", "peek", "pick lock", "sneak"}
     },

    {
     "samurai default", {-1, -1, -1, 40, -1, -1, -1, -1, -1, -1},
     {"weaponsmaster", "shield block", "bash", "disarm", "enhanced damage",
      "parry", "rescue", "third attack"}
     },

    {
     "necromancer default", {-1, -1, -1, -1, -1, -1, 0, -1, -1, -1},
     {"lore", "beguiling", "combat", "detection", "enhancement", "attack",
      "maladictions", "protective", "transportation", "weather"}
     },

    {
     "ranger default", {-1, -1, -1, -1, -1, -1, -1, 0, -1, -1},
     {"weaponsmaster", "shield block", "detection", "disarm", "enhanced damage",
      "weather", "curative", "parry", "rescue", "third attack"}
     },

    {
     "monk default", {-1, -1, -1, -1, -1, -1, -1, -1, 0, -1},
     {"mace", "attack", "creation", "curative", "benedictions",
      "detection", "healing", "maladictions", "protective", "shield block",
      "transportation", "weather"}
     },

    {
     "assassin default", {-1, -1, -1, -1, -1, -1, -1, -1, -1, 0},
     {"mace", "sword", "backstab", "disarm", "dodge", "second attack",
      "trip", "hide", "peek", "pick lock", "sneak", "lore", "beguiling", 
      "combat", "detection", "enhancement", "illusion", "maladictions",
      "attack", "transportation", "weather"}
     },

    {
     "weaponsmaster", {40, 40, 40, 20, 20, 20, 40, 20, 40, 40},
     {"axe", "dagger", "flail", "mace", "polearm", "spear", "sword", "whip"}
     },

    {
     "attack", {-1, 5, -1, 8, 8, 8, -1, 8, 5, 0},
     {"demonfire", "dispel evil", "dispel good", "earthquake",
      "flamestrike", "heat metal", "ray of truth"}
     },

    {
     "beguiling", {4, -1, 6, -1, -1, -1, 4, -1, -1, 4},
     {"calm", "charm person", "sleep"}
     },

    {
     "benedictions", {-1, 4, -1, 8, 8, 8, -1, 8, 4, -1},
     {"bless", "calm", "frenzy", "holy word", "remove curse"}
     },

    {
     "combat", {6, -1, 10, 9, 9, 9, 6, 9, -1, 10},
     {"acid arrow", "acid blast", "burning hands", "chain lightning", "chill touch",
      "colour spray", "fireball", "lightning bolt", "magic missile",
      "shocking grasp"}
     },

    {
     "creation", {4, 4, 8, 8, 8, 8, 4, 8, 4, 8},
     {"continual light", "create food", "create spring", "create water",
      "create rose", "floating disc"}
     },

    {
     "curative", {-1, 4, -1, 8, 8, 8, -1, 8, 4, -1},
     {"cure blindness", "cure disease", "cure poison"}
     },

    {
     "detection", {4, 3, 6, -1, -1, -1, 4, -1, 3, 6},
     {"detect evil", "detect good", "detect hidden", "detect invis",
      "detect magic", "detect poison", "farsight", "identify",
      "know alignment", "locate object"}
     },

    {
     "draconian", {8, -1, -1, -1, -1, -1, 8, -1, -1, -1},
     {"acid breath", "fire breath", "frost breath", "gas breath",
      "lightning breath"}
     },

    {
     "enchantment", {6, -1, -1, -1, -1, -1, 6, -1, -1, -1},
     {"enchant armor", "enchant weapon", "fireproof", "recharge"}
     },

    {
     "enhancement", {5, -1, 9, 9, 9, 9, 5, 9, -1, 9},
     {"giant strength", "haste", "infravision", "refresh"}
     },

    {
     "harmful", {-1, 3, -1, 6, 6, 6, -1, 6, 3, -1},
     {"cause critical", "cause light", "cause serious", "harm"}
     },

    {
     "healing", {-1, 3, -1, 6, 6, 6, -1, 6, 3, -1},
     {"cure critical", "cure light", "cure serious", "heal",
      "mass healing", "refresh"}
     },

    {
     "illusion", {4, -1, 7, -1, -1, -1, 4, -1, -1, 7},
     {"invis", "mass invis", "ventriloquate"}
     },

    {
     "maladictions", {5, 5, 9, 9, 9, 9, 5, 9, 5, 9},
     {"blindness", "change sex", "curse", "energy drain", "plague",
      "poison", "slow", "weaken"}
     },

    {
     "protective", {4, 4, 7, 8, 8, 8, 4, 8, 4, 7},
     {"armor", "cancellation", "dispel magic", "fireproof",
      "protection evil", "protection good", "sanctuary", "shield",
      "stone skin"}
     },

    {
     "transportation", {4, 4, 8, 9, 9, 9, 4, 9, 4, 8},
     {"fly", "gate", "nexus", "pass door", "portal", "summon", "teleport",
      "tesseract", "word of recall"}
     },

    {
     "weather", {4, 4, 8, 8, 8, 8, 4, 8, 4, 8},
     {"call lightning", "control weather", "faerie fire", "faerie fog",
      "lightning bolt"}
     }



};


int god_lookup (const char *name)
{
    int god;

    for (god = 0; god < MAX_GOD; god++)
    {
        if (LOWER (name[0]) == LOWER (god_table[god].name[0])
            && !str_prefix (name, god_table[god].name))
            return god;
    }

    return -1;
}