bast/
bast/area/
bast/backup/
bast/clans/
bast/doc/MSP/
bast/doc/OLC11/
bast/doc/OLC11/doc/
bast/doc/OLC11/options/
bast/log/
bast/mobprogs/
bast/player/
/***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  Envy Diku Mud improvements copyright (C) 1994 by Michael Quan, David   *
 *  Love, Guilherme 'Willie' Arnold, and Mitchell Tse.                     *
 *                                                                         *
 *  EnvyMud 2.0 improvements copyright (C) 1995 by Michael Quan and        *
 *  Mitchell Tse.                                                          *
 *                                                                         *
 *  EnvyMud 2.2 improvements copyright (C) 1996, 1997 by Michael Quan.     *
 *                                                                         *
 *  In order to use any part of this Envy Diku Mud, you must comply with   *
 *  the original Diku license in 'license.doc', the Merc license in        *
 *  'license.txt', as well as the Envy license in 'license.nvy'.           *
 *  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.                                                  *
 ***************************************************************************/

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



/* 
 * Race types
 */
// Races must be kept in order and player-available races must be first
// in the list.  If a race becomes player available, move it to the first
// part of the race definitions - Veygoth.
const   struct    race_type       race_table      [MAX_RACE]	=
{
// 1
    {
	"Human",
	"&+CHuman&n",
        "PH",
	RACE_PC_AVAIL | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	100, 100, 100, 100, 100, 100, 100, 100, 100,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON,
        RACEWAR_GOOD,
    },

// 2
    {
	"Barbarian",
	"&+BBarbarian&n",
        "PB",
	RACE_PC_AVAIL | RACE_WEAPON_WIELD | RACE_BODYSLAM,
	SIZE_LARGE,
	125, 85, 85, 100, 125, 90, 90, 90, 100,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON,
        RACEWAR_GOOD,
    },

// 3
    {
	"Grey Elf",
	"&+cGrey Elf&n",
        "PE",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_DETECT_HIDDEN |
		RACE_WEAPON_WIELD,
	SIZE_AVERAGE,
	90, 120, 110, 100, 85, 110, 100, 100, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN,
        RACEWAR_GOOD,
    },

// 4
    {
	"Rakshasa",
	"&+RRak&+Yshasa&n",
        "RA",
	RACE_PC_AVAIL | RACE_ULTRAVISION | RACE_WEAPON_WIELD,
	SIZE_AVERAGE,
	85, 122, 112, 101, 85, 110, 100, 100, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN,
        RACEWAR_EVIL,
    },

// 5
    {
	"Half-Elf",
	"&+cHalf&+C-Elf&n",
        "P2",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	99, 105, 101, 105, 95, 105, 90, 100, 100,
	0, 2, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM | RIS_POISON,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN,
        RACEWAR_GOOD,
    },

// 6
    {
	"Flind",
	"&+MFlind&n",
        "FL",
	RACE_PC_AVAIL | RACE_ULTRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	101, 103, 99, 102, 98, 102, 90, 100, 100,
	0, 2, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM | RIS_POISON,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN,
        RACEWAR_EVIL,
    },

// 7
    {
	"Drow",
	"&+mDrow&n",
        "PL",
	RACE_PC_AVAIL | RACE_ULTRAVISION | RACE_DETECT_HIDDEN |
		RACE_WEAPON_WIELD,
	SIZE_PETITE,
	80, 125, 110, 105, 70, 120, 70, 110, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_MAGIC,
	RIS_NONE,
	RIS_NONE,
	LANG_DROW,
        RACEWAR_EVIL,
    },

// 8
    {
	"Dwarf",
	"&+YDwarf&n",
        "PM",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	120, 80, 105, 85, 125, 95, 80, 95, 100,
	0, 0, 0,
	0, 1,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_POISON | RIS_DISEASE,
	RIS_NONE,
	RIS_DROWNING,
	LANG_DWARVEN,
        RACEWAR_GOOD,
    },

// 9
    {
	"Duergar",
	"&+rDuergar&n",
        "PD",
	RACE_PC_AVAIL | RACE_ULTRAVISION | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	120, 80, 110, 90, 120, 100, 75, 85, 100,
	0, 0, 0,
	0, 1,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_POISON | RIS_DISEASE,
	RIS_NONE,
	RIS_DROWNING,
	LANG_DWARVEN,
        RACEWAR_EVIL,
    },

// 10
    {
	"Halfling",
	"&+yHalfling&n",
        "PF",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_DETECT_HIDDEN |
		RACE_WEAPON_WIELD,
	SIZE_PETITE,
	65, 100, 95, 140, 80, 140, 100, 100, 150,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_POISON | RIS_DISEASE | RIS_MAGIC,
	RIS_NONE,
	RIS_NONE,
	LANG_HALFLING,
        RACEWAR_GOOD,
    },

// 11
    {
	"Troll",
	"&+gTroll&n",
        "PT",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_TITANIC,
	120, 70, 75, 80, 140, 80, 65, 70, 100,
	10, 0, 0,
	0, 8,
	"fist",
        "walks",
	"Human Elf Halfelf Dwarf Halfdwarf Hobbit Vampire Werewolf Gnome",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_CLAWS | PART_FANGS,
	RIS_CHARM | RIS_BASH,
	RIS_NONE,
	RIS_FIRE | RIS_ACID,
	LANG_TROLLISH,
        RACEWAR_EVIL,
    },

// 12
    {
	"Ogre",
	"&+bOgre&n",
        "PO",
	RACE_PC_AVAIL | RACE_WEAPON_WIELD | RACE_BODYSLAM | RACE_INFRAVISION,
	SIZE_HUGE,
	160, 60, 65, 70, 150, 70, 70, 70, 100,
	2, -3, -1,
	0, 2,
	"fist",
        "lumbers",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MENTAL,
	LANG_OGRE,
        RACEWAR_EVIL,
    },

// 13
    {
	"Orc",
	"&+LOrc&n",
        "HO",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_LARGE,
	110, 95, 101, 99, 105, 99, 90, 99, 99,
	2, -1, -1,
	0, 1,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_DISEASE,
	RIS_NONE,
	RIS_NONE,
	LANG_ORCISH,
        RACEWAR_EVIL,
    },

// 14
    {
	"Gnome",
	"&+RGnome&n",
        "PG",
	RACE_PC_AVAIL | RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	60, 130, 110, 105, 85, 100, 90, 110, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_POISON | RIS_DISEASE | RIS_MAGIC,
	RIS_NONE,
	RIS_NONE,
	LANG_GNOMISH,
        RACEWAR_GOOD,
    },

// 15
    {
	"Centaur",
	"&+gCen&+Ltaur&n",
        "CT",
	RACE_PC_AVAIL | RACE_WEAPON_WIELD | RACE_BODYSLAM,
	SIZE_LARGE,
	140, 70, 80, 85, 145, 90, 80, 100, 100,
	3, 0, -1,
	0, 3,
	"fist",
        "trots",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON,
        RACEWAR_GOOD,
    },

// 16
    {
	"Githyanki",
	"&+GGith&+Wyanki&n",
        "GI",
	RACE_PC_AVAIL | RACE_WEAPON_WIELD | RACE_ULTRAVISION,
	SIZE_MEDIUM,
	90, 120, 110, 90, 90, 90, 70, 140, 90,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"Illithid",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_GITH,
        RACEWAR_EVIL,
    },


// 17
    {
	"Goblin",
	"&+GGoblin&n",
        "HG",
	RACE_INFRAVISION | RACE_WEAPON_WIELD | RACE_PC_AVAIL,
	SIZE_PETITE,
	80, 105, 105, 110, 90, 110, 70, 70, 100,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"Elf Halfelf Dwarf Halfdwarf Hobbit Vampire Werewolf Gnome",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TUSKS,
	RIS_DISEASE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_GOBLIN,
        RACEWAR_EVIL,
    },

// End of PC available races.  If you want to add a PC available race,
// you will need to place them before this comment, increase MAX_PC_RACE
// in merc.h by one, and edit the class_avail chart in this file do
// determine what classes they get - Veygoth

// 18

    {
	"Minotaur",
	"&+rMino&+Ltaur&n",
        "MT",
	RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD | RACE_BODYSLAM | RACE_CHARGE,
	SIZE_LARGE,
	145, 80, 90, 90, 135, 90, 80, 100, 100,
	3, 0, -1,
	0, 3,
	"fist",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 19
    {
	"Thri-Kreen",
	"&+GThri-&+YKreen&n",
        "TK",
	RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	105, 50, 50, 90, 70, 115, 50, 50, 50,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 20
    {
	"Aquatic Elf",
	"&+bAquatic Elf&n",
        "PA",
	RACE_INFRAVISION | RACE_WEAPON_WIELD | RACE_SWIM,
	SIZE_AVERAGE,
	95, 105, 120, 105, 90, 115, 100, 95, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN
        ,RACEWAR_NONE,
    },

// 21
    {
	"Sahaugin",
	"&+bSahau&+ggin&n",
        "SA",
	RACE_INFRAVISION | RACE_WEAPON_WIELD | RACE_SWIM,
	SIZE_AVERAGE,
	115, 85, 95, 105, 90, 115, 100, 95, 100,
	0, 4, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_CHARM,
	RIS_NONE,
	RIS_IRON,
	LANG_ELVEN
        ,RACEWAR_NONE,
    },

// 22
    {
	"Half-Orc",
	"&+cHalf-&+LOrc&n",
        "H2",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_LARGE,
	105, 98, 100, 98, 102, 98, 94, 98, 98,
	2, -1, -1,
	0, 1,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_DISEASE,
	RIS_NONE,
	RIS_NONE,
	LANG_ORCISH,
        RACEWAR_NONE,
    },

// 23
    {
	"Half-Dwarf",
	"&+CHalf-&+YDwarf&n",
        "D2",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	110, 95, 100, 95, 110, 95, 95, 100, 100,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_POISON | RIS_DISEASE,
	RIS_NONE,
	RIS_DROWNING,
	LANG_DWARVEN
        ,RACEWAR_NONE,
    },

// 24
    {
	"Half-Kobold",
	"&+CHalf-&+rKobold&n",
        "K2",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	85, 85, 85, 110, 95, 110, 65, 75, 110,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL,
	RIS_POISON,
	RIS_NONE,
	RIS_MAGIC,
	LANG_KOBOLD
        ,RACEWAR_NONE,
    },

// 25
    {
	"Giant",
	"Giant",
        "G",
	RACE_WEAPON_WIELD,
	SIZE_HUGE,
	170, 70, 100, 80, 130, 90, 90, 80, 100,
	3, -5, -2,
	2, 4,
	"fist",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_FIRE | RIS_COLD,
	RIS_NONE,
	RIS_MENTAL,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 26
    {
	"Illithid",
	"&+mIllithid&n",
        "MF",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	60, 160, 130, 80, 70, 90, 70, 160, 90,
	0, 6, 0,
	0, 0,
	"punch",
        "walks",
	"Githyanki",
	PART_LEGS | PART_HEART | PART_GUTS | PART_FEET | PART_TENTACLES,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 27
    {
	"Neogi",
	"&+LN&+me&+Lo&+mg&+Li&n",
        "NE",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	75, 160, 135, 90, 75, 95, 40, 170, 100,
	0, 6, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_LEGS | PART_HEART | PART_GUTS | PART_FEET,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 28
    {
	"Kobold",
	"&+rKobold&n",
        "K",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_PETITE,
	80, 80, 85, 120, 90, 120, 60, 70, 115,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL,
	RIS_POISON,
	RIS_NONE,
	RIS_MAGIC,
	LANG_KOBOLD
        ,RACEWAR_NONE,
    },

// 29
    {
	"Hobgoblin",
	"Hobgoblin",
        "HB",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	110, 90, 85, 95, 115, 95, 90, 90, 90,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_DISEASE | RIS_POISON,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 30
    {
	"Humanoid",
	"Humanoid",
        "H",
	RACE_INFRAVISION | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	100, 90, 85, 95, 100, 95, 90, 90, 90,
	0, 0, 0,
	0, 0,
	"punch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_DISEASE | RIS_POISON,
	RIS_NONE,
	RIS_NONE,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 31
    {
	"Demon",
	"&+rDemon&n",
        "X",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_GARGANTUAN,
	190, 130, 150, 100, 170, 100, 10, 140, 110,
	15, 0, -10,
	0, 10,
	"claw",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS | PART_TAIL | PART_CLAWS | PART_FANGS |
		PART_SCALES,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

// 32
    {
	"God",
	"&+WGod&n",
        "GD",
	RACE_WATERBREATH | RACE_FLY | RACE_SWIM | RACE_WATERWALK |
		RACE_PASSDOOR | RACE_INFRAVISION | RACE_DETECT_ALIGN |
		RACE_DETECT_INVIS | RACE_DETECT_HIDDEN | RACE_PROTECTION |
		RACE_SANCT | RACE_WEAPON_WIELD,
	SIZE_GARGANTUAN,
	250, 250, 250, 250, 250, 250, 250, 250, 250,
	20, 0, 10,
	0, 0,
	"smite",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_MAGIC | RIS_POISON | RIS_MENTAL | RIS_CHARM,
	RIS_DROWNING | RIS_DISEASE,
	RIS_NONE,
	LANG_GOD
        ,RACEWAR_NONE,
    },

// 33
    {
	"Devil",
	"&+rDevil&n",
        "Y",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_GARGANTUAN,
	180, 160, 180, 100, 150, 120, 140, 170, 120,
	15, 0, -10,
	0, 10,
	"claw",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS | PART_TAIL | PART_CLAWS | PART_FANGS |
		PART_SCALES,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

// 34
    {
	"Faerie",
	"&+RFae&+Yrie&n",
        "HF",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_INVIS | RACE_DETECT_HIDDEN |
		RACE_WEAPON_WIELD,
	SIZE_MINUTE,
	40, 130, 130, 170, 40, 150, 130, 120, 110,
	0, 0, 7,
	0, 0,
	"punch",
        "flutters",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS,
	RIS_MAGIC,
	RIS_NONE,
	RIS_NONE,
	LANG_PIXIE
        ,RACEWAR_NONE,
    },

// 35
    {
	"Vampire",
	"&+mVam&+Lpire&n",
        "UV",
	RACE_FLY | RACE_PASSDOOR | RACE_INFRAVISION | RACE_DETECT_ALIGN |
		RACE_DETECT_INVIS | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	135, 120, 110, 110, 120, 110, 130, 130, 100,
	10, 3, 3,
	-1, 10,
	"claw",
        "walks",
	"Human Elf Halfelf Drow Dwarf Halfdwarf Hobbit Giant Ogre Orc Kobold Minotaur Troll Hobgoblin Werewolf Goblin Faerie Gnome",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_FANGS,
	RIS_DISEASE | RIS_BLACK_MANA,
	RIS_POISON,
	RIS_DROWNING | RIS_WOOD | RIS_LIGHT | RIS_WHITE_MANA,
	LANG_COMMON
        ,RACEWAR_NONE,
    },

// 36
    {
	"Werewolf",
	"&+yWere&+Lwolf&n",
        "LW",
	RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
	    RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	145, 90, 90, 120, 160, 120, 70, 110, 100,
	10, 0, 5,
	0, 5,
	"claw",
        "walks",
	"Human Elf Halfelf Drow Dwarf Halfdwarf Hobbit Giant Ogre Orc Kobold Minotaur Troll Hobgoblin Vampire Goblin Faerie Gnome",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL | PART_CLAWS | PART_FANGS,
	RIS_BASH,
	RIS_NONE,
	RIS_SILVER,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

// 37
    {
	"Dragon",
	"&+gDragon&n",
        "D",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_GARGANTUAN,
	200, 140, 170, 90, 140, 90, 110, 120, 100,
	15, 0, -10,
	0, 10,
	"claw",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS | PART_TAIL | PART_CLAWS | PART_FANGS |
		PART_SCALES,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

// 38
    {
	"Beholder",
	"&+LBe&+mhol&+Lder&n",
        "BH",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN,
	SIZE_HUGE,
	110, 160, 160, 90, 120, 100, 105, 160, 100,
	15, 0, -10,
	0, 10,
	"bite",
        "floats",
	"",
	PART_HEAD | PART_HEART | PART_BRAINS | PART_GUTS | PART_EYE | PART_SCALES |
           PART_EYESTALKS,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

// End of coin-carrying races.  If you want to have a race carry money on
// them, you will have to put it above this comment and augment the
// MAX_COIN_RACE in merc.h - Veygoth

    {
	"Golem",
	"Golem",
        "OG",
	RACE_WEAPON_WIELD | RACE_MUTE,
	SIZE_HUGE,
	170, 50, 50, 80, 140, 90, 90, 80, 100,
	3, -5, -2,
	2, 4,
	"fist",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_FIRE | RIS_COLD,
	RIS_NONE,
	RIS_MENTAL,
	LANG_COMMON
        ,RACEWAR_NONE,
    },


    {
	"Dracolich",
	"&+gDraco&+Wlich&n",
        "UD",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_GARGANTUAN,
	170, 90, 90, 90, 140, 90, 110, 120, 100,
	15, 0, -10,
	0, 10,
	"claw",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS | PART_TAIL | PART_CLAWS | PART_FANGS |
		PART_SCALES,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

    {
	"Dragonkin",
	"&+gDragon&+Wkin&n",
        "DK",
	RACE_FLY | RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
		RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_HUGE,
	160, 110, 130, 90, 120, 90, 105, 110, 100,
	15, 0, -10,
	0, 10,
	"claw",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_WINGS | PART_TAIL | PART_CLAWS | PART_FANGS |
		PART_SCALES,
	RIS_FIRE | RIS_BASH | RIS_CHARM,
	RIS_NONE,
	RIS_PIERCE | RIS_COLD,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

    {
	"Insect",
	"Insect",
        "I",
	RACE_MUTE,
	SIZE_MINUTE,
	50, 10, 10, 80, 100, 100, 10, 10, 50,
	0, 0, 5,
	0, 0,
	"bite",
        "crawls",
	"",
	PART_HEAD | PART_LEGS | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_INSECTOID
        ,RACEWAR_NONE,
    },

    {
	"Animal",
	"Animal",
        "A",
	RACE_MUTE,
	SIZE_PETITE,
	100, 50, 50, 80, 100, 100, 90, 40, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Herbivore",
	"Herbivore",
        "AH",
	RACE_MUTE,
	SIZE_PETITE,
	80, 50, 50, 80, 100, 110, 90, 40, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Carnivore",
	"Carnivore",
        "AC",
	RACE_MUTE,
	SIZE_PETITE,
	110, 50, 50, 90, 105, 105, 70, 30, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Bird",
	"Bird",
        "B",
	RACE_FLY | RACE_DETECT_HIDDEN | RACE_MUTE,
	SIZE_PETITE,
	100, 50, 50, 80, 100, 100, 90, 40, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Horse",
	"&+yHorse&n",
        "AE",
	RACE_DETECT_HIDDEN | RACE_MUTE,
	SIZE_PETITE,
	110, 50, 50, 80, 105, 100, 90, 40, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "trots",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Primate",
	"Primate",
        "AA",
	RACE_DETECT_HIDDEN | RACE_MUTE,
	SIZE_PETITE,
	100, 70, 70, 90, 100, 100, 90, 50, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"Kobold Halfkobold",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_GUTS | PART_FEET |
		PART_EAR | PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_MAGIC,
	LANG_ANIMAL
        ,RACEWAR_NONE,
    },

    {
	"Undead",
	"Undead",
        "U",
	RACE_INFRAVISION | RACE_DETECT_ALIGN |
	           RACE_DETECT_INVIS | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	110, 10, 10, 50, 100, 50, 10, 120, 10,
	0, 0, 0,
	-1, -1,
	"touch",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_WEAPON,
	RIS_DISEASE | RIS_POISON,
	RIS_LIGHT | RIS_WHITE_MANA,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

    {
	"Ghost",
	"&+WGhost&n",
        "UG",
	RACE_PASSDOOR | RACE_INFRAVISION | RACE_DETECT_ALIGN |
	           RACE_DETECT_INVIS | RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	110, 100, 100, 100, 100, 100, 10, 130, 70,
	0, 0, 0,
	-1, -1,
	"touch",
        "floats",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_WEAPON,
	RIS_DISEASE | RIS_POISON,
	RIS_LIGHT | RIS_WHITE_MANA,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

    {
	"Harpy",
	"Harpy",
        "HP",
	RACE_FLY | RACE_DETECT_INVIS | RACE_MUTE,
	SIZE_MEDIUM,
	100, 100, 100, 100, 100, 100, 100, 100, 100,
	0, 0, 6,
	0, 0,
	"claw",
        "walks",
	"Human Elf Halfelf Dwarf Halfdwarf Hobbit Gnome",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_FINGERS | PART_EAR | PART_EYE | PART_WINGS |
		PART_TAIL | PART_CLAWS | PART_FANGS | PART_SCALES,
	RIS_SOUND,
	RIS_NONE,
	RIS_NONE,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

    {
	"Bear",
	"&+yBear&n",
        "AB",
	RACE_SWIM | RACE_DETECT_HIDDEN | RACE_MUTE,
	SIZE_LARGE,
	120, 40, 45, 90, 110, 100, 100, 90, 100,
	0, 0, 0,
	0, 3,
	"swipe",
        "walks",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_EAR | PART_EYE |
		PART_CLAWS | PART_FANGS,
	RIS_BASH | RIS_COLD,
	RIS_NONE,
	RIS_NONE,
	LANG_MAMMAL
        ,RACEWAR_NONE,
    },

    {
	"Fire Elemental",
	"&+rFire Elemental&n",
        "EF",
	RACE_MUTE,
	SIZE_LARGE,
	110, 10, 10, 100, 110, 100, 10, 10, 10,
	0, 0, 0,
	-1, -1,
	"punch",
        "blazes",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_MAGICAL
        ,RACEWAR_NONE,
    },

    {
	"Air Elemental",
	"&+CAir Elemental&n",
        "EA",
	RACE_MUTE,
	SIZE_LARGE,
	110, 10, 10, 100, 110, 100, 10, 10, 10,
	0, 0, 0,
	-1, -1,
	"punch",
        "blows",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_MAGICAL
        ,RACEWAR_NONE,
    },
    {
	"Water Elemental",
	"&+bWater Elemental&n",
        "EW",
	RACE_MUTE,
	SIZE_LARGE,
	110, 10, 10, 100, 110, 100, 10, 10, 10,
	0, 0, 0,
	-1, -1,
	"punch",
        "flows",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_MAGICAL
        ,RACEWAR_NONE,
    },
    {
	"Earth Elemental",
	"&+yEarth Elemental&n",
        "EE",
	RACE_MUTE,
	SIZE_LARGE,
	110, 10, 10, 100, 110, 100, 10, 10, 10,
	0, 0, 0,
	-1, -1,
	"punch",
        "lumbers",
	"",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_MAGICAL
        ,RACEWAR_NONE,
    },

    {
	"Bat",
	"&+LBat&n",
        "BB",
	RACE_FLY | RACE_INFRAVISION | RACE_MUTE,
	SIZE_MINUTE,
	40, 20, 20, 40, 90, 110, 20, 20, 100,
	0, 0, 4,
	0, 0,
	"bite",
        "flies",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_EAR | PART_EYE | PART_WINGS | PART_CLAWS |
		PART_FANGS,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_RODENT
        ,RACEWAR_NONE,
    },

    {
	"Plant",
	"&+gPlant&n",
        "VP",
	RACE_MUTE,
	SIZE_MINUTE,
	100, 10, 10, 50, 110, 60, 100, 70, 100,
	0, 0, 0,
	-1, 0,
	"swipe",
        "walks",
	"",
	PART_HEAD | PART_FANGS,
	RIS_DROWNING,
	RIS_NONE,
	RIS_FIRE | RIS_COLD,
	LANG_PLANT
        ,RACEWAR_NONE,
    },

    {
	"Tree",
	"&+gTree&n",
        "VT",
	RACE_MUTE,
	SIZE_MINUTE,
	120, 10, 10, 50, 110, 60, 100, 70, 100,
	0, 0, 0,
	-1, 0,
	"swipe",
        "walks",
	"",
	PART_HEAD | PART_FANGS,
	RIS_DROWNING,
	RIS_NONE,
	RIS_FIRE | RIS_COLD,
	LANG_PLANT
        ,RACEWAR_NONE,
    },

    {
	"Rat",
	"&+yRat&n",
        "AR",
	RACE_PASSDOOR | RACE_MUTE,
	SIZE_MINUTE,
	35, 20, 20, 160, 70, 110, 30, 20, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "scurries",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_EAR | PART_EYE | PART_FANGS,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_RODENT
        ,RACEWAR_NONE,
    },

    {
	"Parasite",
	"Parasite",
        "AP",
	RACE_MUTE,
	SIZE_MINUTE,
	35, 20, 20, 40, 70, 40, 30, 20, 40,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_EAR | PART_EYE | PART_FANGS,
	RIS_NONE,
	RIS_NONE,
	RIS_NONE,
	LANG_RODENT
        ,RACEWAR_NONE,
    },

    {
	"Lycanthrope",
	"&+yLycanthrope&n",
        "L",
	RACE_INFRAVISION | RACE_DETECT_ALIGN | RACE_DETECT_INVIS |
	    RACE_DETECT_HIDDEN | RACE_WEAPON_WIELD,
	SIZE_MEDIUM,
	130, 90, 90, 110, 140, 110, 70, 100, 100,
	10, 0, 5,
	0, 5,
	"claw",
        "walks",
	"Human Elf Halfelf Drow Dwarf Halfdwarf Hobbit Giant Ogre Orc Kobold Minotaur Troll Hobgoblin Vampire Goblin Faerie Gnome",
	PART_HEAD | PART_ARMS | PART_LEGS | PART_HEART | PART_BRAINS |
		PART_GUTS | PART_HANDS | PART_FEET | PART_FINGERS | PART_EAR |
		PART_EYE | PART_TAIL | PART_CLAWS | PART_FANGS,
	RIS_BASH,
	RIS_NONE,
	RIS_SILVER,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

    {
	"Arachnid",
	"Arachnid",
        "AS",
	RACE_NO_ABILITIES | RACE_WEAPON_WIELD | RACE_MUTE,
	SIZE_SMALL,
	70, 10, 10, 80, 100, 100, 10, 10, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "crawls",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_FEET | PART_EYE |
		PART_FANGS,
	RIS_POISON,
	RIS_NONE,
	RIS_NONE,
	LANG_INSECTOID
        ,RACEWAR_NONE,
    },

    {
	"Object",
	"Object",
        "O",
	RACE_WATERBREATH | RACE_MUTE,
	SIZE_AVERAGE,
	100, 10, 10, 10, 100, 10, 10, 10, 10,
	0, 0, 0,
	-1, -1,
	"swing",
        "moves",
	"",
	PART_NONE,
	RIS_LIGHT,
	RIS_POISON | RIS_DISEASE | RIS_DROWNING,
	RIS_ENERGY,
	LANG_MAGICAL
        ,RACEWAR_NONE,
    },

    {
	"Mist",
	"Mist",
        "M",
	RACE_FLY | RACE_PASSDOOR | RACE_MUTE,
	SIZE_PETITE,
	30, 100, 100, 100, 100, 100, 10, 100, 100,
	0, 0, 20,
	-1, -1,
	"gas",
        "floats",
	"",
	PART_NONE,
	RIS_NONE,
	RIS_DISEASE | RIS_POISON,
	RIS_MAGIC,
	LANG_SPIRITUAL
        ,RACEWAR_NONE,
    },

    {
	"Snake",
	"&+gSnake&n",
        "RS",
	RACE_MUTE,
	SIZE_MINUTE,
	100, 60, 60, 110, 100, 110, 100, 60, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "slithers",
	"",
	PART_HEAD | PART_HEART | PART_BRAINS | PART_GUTS | PART_EYE |
		PART_TAIL | PART_FANGS | PART_SCALES,
	RIS_POISON,
	RIS_NONE,
	RIS_COLD,
	LANG_REPTILE
        ,RACEWAR_NONE,
    },

    {
	"Worm",
	"Worm",
        "AW",
	RACE_PASSDOOR | RACE_MUTE,
	SIZE_MINUTE,
	40, 10, 10, 30, 100, 30, 10, 10, 100,
	0, 0, 0,
	0, 0,
	"slime",
        "crawls",
	"",
	PART_HEAD | PART_TAIL,
	RIS_NONE,
	RIS_NONE,
	RIS_BASH,
	LANG_INSECTOID
        ,RACEWAR_NONE,
    },

    {
	"Fish",
	"&+bFish&n",
        "F",
	RACE_WATERBREATH | RACE_SWIM | RACE_MUTE,
	SIZE_MINUTE,
	70, 40, 40, 120, 100, 120, 100, 40, 100,
	0, 0, 0,
	-1, 0,
	"slap",
        "swims",
	"",
	PART_HEAD | PART_HEART | PART_BRAINS | PART_GUTS | PART_EYE |
		PART_TAIL | PART_SCALES | PART_FINS,
	RIS_NONE,
	RIS_DROWNING,
	RIS_NONE,
	LANG_FISH
        ,RACEWAR_NONE,
    },

    {
	"Hydra",
	"&+gHydra&n",
        "DH",
	RACE_DETECT_HIDDEN | RACE_MUTE,
	SIZE_TITANIC,
	180, 90, 90, 90, 170, 90, 50, 100, 100,
	0, 0, 0,
	0, 0,
	"bite",
        "walks",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_EYE | PART_TAIL | PART_FANGS | PART_SCALES,
	RIS_BASH,
	RIS_NONE,
	RIS_PIERCE,
	LANG_DRAGON
        ,RACEWAR_NONE,
    },

    {
	"Reptile",
	"&+gReptile&n",
        "R",
	RACE_MUTE,
	SIZE_PETITE,
	70, 70, 70, 100, 100, 100, 70, 70, 100,
	0, 0, 0,
	0, 0,
	"lash",
        "walks",
	"",
	PART_HEAD | PART_LEGS | PART_HEART | PART_BRAINS | PART_GUTS |
		PART_FEET | PART_EYE | PART_TAIL | PART_FANGS,
	RIS_POISON,
	RIS_NONE,
	RIS_COLD,
	LANG_REPTILE,
        RACEWAR_NONE
    }
};

const int class_avail [MAX_PC_RACE][MAX_CLASS] =
{
//No Wa So Ps Cl Th As Me Pa An Ra Ee Ea Ef Ew Sh Dr
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // human
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // barbarian
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // grey elf
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // rakshasa
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // half-elf
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // flind
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // drow
{ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // dwarf
{ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // duergar
{ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // halfling
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // troll
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // ogre
{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // orc
{ 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // gnome
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // centaur
{ 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},  // githyanki
{ 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}  // goblin
};

const int repop_point [MAX_PC_RACE][MAX_CLASS] =
{
//No Wa So Ps Cl Th As Me Pa An Ra Ee Ea Ef Ew Sh Dr
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // human
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // barbarian
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // grey elf
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // rakshasa
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // half-elf
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // flind
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // drow
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // dwarf
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // duergar
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // halfling
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // troll
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // ogre
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // orc
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // gnome
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // centaur
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // githyanki
{ ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START,
  ROOM_VNUM_START,
  ROOM_VNUM_START, ROOM_VNUM_START, ROOM_VNUM_START }, // goblin
};

/*
 * Drunkeness string changes.
 */
const   struct  struckdrunk     drunk           [  ]            =
{
    { 3, 10,
	{ "a", "a", "a", "A", "aa", "ah", "Ah", "ao", "aw", "oa", "ahhhh" }  },
    { 8, 5,
	{ "b", "b", "b", "B", "B", "vb" }                                    },
    { 3, 5,
	{ "c", "c", "C", "ch", "sj", "zj" }                                  },
    { 5, 2,
	{ "d", "d", "D" }                                                    },
    { 3, 3,
	{ "e", "e", "eh", "E" }                                              },
    { 4, 5,
	{ "f", "f", "ff", "fff", "fFf", "F" }                                },
    { 8, 3,
	{ "g", "g", "G", "jeh" }                                             },
    { 9, 6,
	{ "h", "h", "hh", "hhh", "Hhh", "HhH", "H" }                         },
    { 7, 6,
	{ "i", "i", "Iii", "ii", "iI", "Ii", "I" }                           },
    { 9, 5,
	{ "j", "j", "jj", "Jj", "jJ", "J" }                                  },
    { 7, 3,
	{ "k", "k", "K", "kah" }                                             },
    { 3, 2, 
	{ "l", "l", "L" }                                                    },
    { 5, 8,
	{ "m", "m", "mm", "mmm", "mmmm", "mmmmm", "MmM", "mM", "M" }         },
    { 6, 6,
	{ "n", "n", "nn", "Nn", "nnn", "nNn", "N" }                          },
    { 3, 6,
	{ "o", "o", "ooo", "ao", "aOoo", "Ooo", "ooOo" }                     },
    { 3, 2,
	{ "p", "p", "P" }                                                    },
    { 5, 5,
	{ "q", "q", "Q", "ku", "ququ", "kukeleku" }                          },
    { 4, 2,
	{ "r", "r", "R" }                                                    },
    { 2, 5,
	{ "s", "ss", "zzZzssZ", "ZSssS", "sSzzsss", "sSss" }                 },
    { 5, 2,
	{ "t", "t", "T" }                                                    },
    { 3, 6,
	{ "u", "u", "uh", "Uh", "Uhuhhuh", "uhU", "uhhu" }                   },
    { 4, 2,
	{ "v", "v", "V" }                                                    },
    { 4, 2,
	{ "w", "w", "W" }                                                    },
    { 5, 6,
	{ "x", "x", "X", "ks", "iks", "kz", "xz" }                           },
    { 3, 2,
	{ "y", "y", "Y" }                                                    },
    { 2, 8,
	{ "z", "z", "ZzzZz", "Zzz", "Zsszzsz", "szz", "sZZz", "ZSz", "zZ"}   }
};
      
/*
 * Attack damage type and string.
 */
const	struct	attack_type	attack_table	[MAX_ATTACK]	=
{
    {  "hit",       &gsn_hit,      DAM_BASH,	NULL             },  /*  0   */
    {  "slice",     &gsn_slash,    DAM_SLASH,	NULL             },  /*  1   */
    {  "stab",      &gsn_pierce,   DAM_PIERCE,	NULL             },
    {  "slash",     &gsn_slash,    DAM_SLASH,	NULL             },
    {  "whip",      &gsn_whip,     DAM_SLASH,	NULL             },
    {  "claw",      &gsn_slash,	   DAM_SLASH,	NULL             },  /*  5   */
    {  "blast",     &gsn_explode,  DAM_BASH,	NULL             },
    {  "pound",     &gsn_pound,    DAM_BASH,	NULL             },
    {  "crush",     &gsn_pound,    DAM_BASH,	NULL             },
    {  "grep",      &gsn_pierce,   DAM_PIERCE,	NULL             },
    {  "bite",      &gsn_pierce,   DAM_PIERCE,	NULL             },  /*  10  */
    {  "pierce",    &gsn_pierce,   DAM_PIERCE,	NULL             },
    {  "suction",   &gsn_suction,  DAM_BASH,	hit_suck_disarm  },
    {  "chop",      &gsn_slash,    DAM_SLASH,	NULL             },
    {  "vorpal",    &gsn_slash,    DAM_SLASH,	hit_vorpal       },
    {  "cleave",    &gsn_slash,    DAM_SLASH,	NULL             },  /*  15  */
    {  "wail",      &gsn_hit,      DAM_BASH,	NULL             }
};

/*
 * Attribute bonus tables.
 */
const	struct	str_app_type	str_app		[251]		=
{
    { -5, -4,   0,  1 },  /* 0  */
    { -5, -4,   3,  1 },  /* 1  */
    { -3, -2,   3,  1 },
    { -3, -1,  10,  1 },  /* 3  */
    { -2, -1,  25,  2 },
    { -2, -1,  55,  2 },  /* 5  */
    { -1,  0,  80,  2 },
    { -1,  0,  90,  2 },
    {  0,  0, 100,  3 },
    {  0,  0, 100,  3 },
    {  0,  0, 115,  3 }, /* 10 */
    {  0,  0, 115,  3 },
    {  0,  0, 140,  4 }, /* 12 */
    {  0,  0, 140,  4 },
    {  0,  0, 140,  4 },
    {  0,  0, 140,  4 },
    {  0,  0, 140,  5 },
    {  0,  0, 140,  5 },
    {  0,  0, 140,  5 },
    {  0,  0, 140,  5 },
    {  0,  0, 140,  6 }, /* 20 */
    {  0,  0, 140,  6 },
    {  0,  0, 140,  6 },
    {  0,  0, 140,  6 },
    {  0,  0, 140,  7 },
    {  0,  0, 140,  7 },
    {  0,  0, 140,  7 },
    {  0,  0, 140,  7 },
    {  0,  0, 140,  8 },
    {  0,  0, 140,  8 },
    {  0,  0, 140,  8 }, /* 30 */
    {  0,  0, 140,  8 },
    {  0,  0, 140,  8 },
    {  0,  0, 140,  9 },
    {  0,  0, 140,  9 },
    {  0,  0, 140,  9 },
    {  0,  0, 140,  9 },
    {  0,  0, 140, 10 },
    {  0,  0, 140, 10 },
    {  0,  0, 140, 10 },
    {  0,  0, 140, 10 }, /* 40 */
    {  0,  0, 140, 11 },
    {  0,  0, 140, 11 },
    {  0,  0, 140, 11 },
    {  0,  0, 140, 11 },
    {  0,  0, 140, 12 },
    {  0,  0, 140, 12 },
    {  0,  0, 140, 12 },
    {  0,  0, 140, 12 },
    {  0,  0, 140, 13 },
    {  0,  0, 140, 13 }, /* 50 */
    {  0,  0, 140, 13 },
    {  0,  0, 140, 13 },
    {  0,  0, 140, 14 },
    {  0,  0, 140, 14 },
    {  0,  0, 140, 14 },
    {  0,  0, 140, 14 },
    {  0,  0, 140, 15 },
    {  0,  0, 140, 15 },
    {  0,  0, 140, 15 },
    {  0,  0, 140, 15 }, /* 60 */
    {  0,  0, 140, 16 },
    {  0,  0, 140, 16 },
    {  0,  0, 140, 16 },
    {  0,  0, 140, 16 },
    {  0,  0, 140, 17 },
    {  0,  0, 140, 17 },
    {  0,  0, 140, 17 },
    {  0,  0, 140, 17 },
    {  0,  0, 140, 18 },
    {  0,  0, 140, 18 }, /* 70 */
    {  0,  0, 140, 18 },
    {  0,  0, 140, 18 },
    {  0,  0, 140, 19 },
    {  0,  0, 140, 19 },
    {  0,  0, 140, 19 },
    {  0,  0, 140, 19 },
    {  0,  0, 140, 20 },
    {  0,  0, 140, 20 },
    {  0,  0, 140, 20 },
    {  0,  1, 140, 20 }, /* 80 */
    {  0,  1, 140, 21 },
    {  0,  1, 140, 21 },
    {  0,  1, 140, 21 },
    {  0,  1, 140, 21 },
    {  0,  1, 140, 22 },
    {  0,  1, 140, 22 },
    {  1,  1, 140, 22 },
    {  1,  1, 140, 22 },
    {  1,  1, 140, 23 },
    {  1,  1, 140, 23 }, /* 90 */
    {  1,  1, 140, 23 },
    {  1,  1, 140, 23 },
    {  1,  2, 140, 24 },
    {  1,  2, 140, 24 },
    {  1,  2, 140, 24 },
    {  1,  2, 140, 24 },
    {  2,  2, 140, 25 },
    {  2,  2, 140, 25 },
    {  2,  2, 140, 25 },
    {  2,  3, 140, 25 }, /* 100 */
    {  2,  3, 140, 26 },
    {  2,  3, 140, 26 },
    {  2,  3, 140, 26 },
    {  2,  3, 140, 26 },
    {  2,  3, 140, 27 },
    {  2,  3, 140, 27 },
    {  2,  3, 140, 27 },
    {  2,  3, 140, 27 },
    {  2,  3, 140, 28 },
    {  2,  4, 140, 28 }, /* 110 */
    {  2,  4, 140, 28 },
    {  2,  4, 140, 28 },
    {  2,  4, 140, 29 },
    {  2,  4, 140, 29 },
    {  2,  4, 140, 29 },
    {  2,  4, 140, 29 },
    {  2,  4, 140, 30 },
    {  2,  4, 140, 30 },
    {  2,  4, 140, 30 },
    {  3,  4, 140, 30 }, /* 120 */
    {  3,  4, 140, 31 },
    {  3,  4, 140, 31 },
    {  3,  4, 140, 31 },
    {  3,  4, 140, 31 },
    {  3,  4, 140, 32 },
    {  3,  4, 140, 32 },
    {  3,  4, 140, 32 },
    {  3,  4, 140, 32 },
    {  3,  4, 140, 33 },
    {  3,  5, 140, 33 }, /* 130 */
    {  3,  5, 140, 33 },
    {  3,  5, 140, 33 },
    {  3,  5, 140, 34 },
    {  3,  5, 140, 34 },
    {  3,  5, 140, 34 },
    {  3,  5, 140, 34 },
    {  3,  5, 140, 35 },
    {  3,  5, 140, 35 },
    {  3,  5, 140, 35 },
    {  3,  6, 140, 35 }, /* 140 */
    {  3,  6, 140, 36 },
    {  3,  6, 140, 36 },
    {  3,  6, 140, 36 },
    {  3,  6, 140, 36 },
    {  3,  6, 140, 37 },
    {  3,  6, 140, 37 },
    {  3,  6, 140, 37 },
    {  3,  6, 140, 37 },
    {  3,  6, 140, 38 },
    {  3,  7, 140, 38 }, /* 150 */
    {  3,  7, 140, 38 },
    {  3,  7, 140, 38 },
    {  3,  7, 140, 39 },
    {  3,  7, 140, 39 },
    {  3,  7, 140, 39 },
    {  3,  7, 140, 39 },
    {  3,  7, 140, 40 },
    {  3,  7, 140, 40 },
    {  3,  7, 140, 40 },
    {  4,  7, 140, 40 }, /* 160 */
    {  4,  7, 140, 41 },
    {  4,  7, 140, 41 },
    {  4,  7, 140, 41 },
    {  4,  7, 140, 41 },
    {  4,  7, 140, 42 },
    {  4,  7, 140, 42 },
    {  4,  7, 140, 42 },
    {  4,  7, 140, 42 },
    {  4,  7, 140, 43 },
    {  4,  8, 140, 43 }, /* 170 */
    {  4,  8, 140, 43 },
    {  4,  8, 140, 43 },
    {  4,  8, 140, 44 },
    {  4,  8, 140, 44 },
    {  4,  8, 140, 44 },
    {  4,  8, 140, 44 },
    {  4,  8, 140, 45 },
    {  4,  8, 140, 45 },
    {  4,  8, 140, 45 },
    {  4,  9, 140, 45 }, /* 180 */
    {  4,  9, 140, 46 },
    {  4,  9, 140, 46 },
    {  4,  9, 140, 46 },
    {  4,  9, 140, 46 },
    {  4,  9, 140, 47 },
    {  4,  9, 140, 47 },
    {  4,  9, 140, 47 },
    {  4,  9, 140, 47 },
    {  4,  9, 140, 48 },
    {  5,  9, 140, 48 }, /* 190 */
    {  5,  9, 140, 48 },
    {  5,  9, 140, 48 },
    {  5,  9, 140, 49 },
    {  5,  9, 140, 49 },
    {  5,  9, 140, 49 },
    {  5,  9, 140, 49 },
    {  5,  9, 140, 50 },
    {  5,  9, 140, 50 },
    {  5,  9, 140, 50 },
    {  5,  10, 140, 50 }, /* 200 */
    {  5,  10, 140, 51 },
    {  5,  10, 140, 51 },
    {  5,  10, 140, 51 },
    {  5,  10, 140, 51 },
    {  5,  10, 140, 112 },
    {  5,  10, 140, 112 },
    {  5,  10, 140, 112 },
    {  5,  10, 140, 112 },
    {  5,  10, 140, 112 },
    {  5,  11, 140, 112 }, /* 210 */
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 },
    {  5,  11, 140, 112 }, /* 220 */
    {  5,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 },
    {  6,  11, 140, 112 }, /* 230 */
    {  6,  12, 140, 112 },
    {  6,  12, 140, 112 },
    {  6,  12, 140, 112 },
    {  6,  12, 140, 112 },
    {  7,  12, 140, 112 },
    {  7,  12, 140, 112 },
    {  7,  12, 140, 112 },
    {  7,  12, 140, 112 },
    {  7,  12, 140, 113 },
    {  7,  13, 170, 114 }, /* 240 */
    {  7,  13, 170, 115 }, 
    {  7,  13, 195, 116 },
    {  7,  13, 220, 122 },
    {  7,  13, 250, 125 }, 
    {  8,  13, 400, 130 },
    {  8,  13, 500, 135 }, 
    {  8,  13, 600, 140 },
    {  8,  14, 700, 145 },
    {  8,  15, 800, 150 },
    {  9,  16, 800, 150 }, /* 250 */
};



const	struct	int_app_type	int_app		[251]		=
{
    {  3 },	/*  0 */
    {  5 },	/*  1 */
    {  7 },
    {  8 },	/*  3 */
    {  9 },
    { 10 },	/*  5 */
    { 11 },
    { 12 },
    { 13 },
    { 15 },
    { 17 },	/* 10 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 15 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 20 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 25 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 30 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 35 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 40 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 45 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 50 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 55 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 60 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 65 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 70 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 75 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 80 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 85 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 90 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 95 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 100 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 105 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 110 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 115 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 120 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 125 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 130 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 135 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 140 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 145 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 150 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 155 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 160 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 165 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 170 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 175 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 180 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 185 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 190 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 195 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 200 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 205 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 210 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 215 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 220 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 225 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },	/* 230 */
    { 17 },
    { 17 },
    { 17 },
    { 17 },
    { 17 },     /* 235 */
    { 19 },     /* 236 */
    { 22 },
    { 25 },
    { 28 },
    { 31 },	/* 240 */
    { 34 },
    { 37 },
    { 40 },	/* 243 */
    { 44 },
    { 49 },	/* 245 */
    { 55 },
    { 60 },
    { 70 },
    { 85 },
    { 99 }	/* 250 */
};



const	struct	wis_app_type	wis_app		[251]		=
{
    { 0 },	/*  0 */
    { 0 },	/*  1 */
    { 0 },
    { 0 },	/*  3 */
    { 0 },
    { 1 },	/*  5 */
    { 1 },
    { 1 },
    { 1 },
    { 2 },
    { 2 },	/* 10 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 15 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 20 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 25 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 30 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 35 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 40 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 45 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 50 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 55 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 60 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 65 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 70 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 75 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 80 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 85 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 90 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 95 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 100 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 105 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 110 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 115 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 120 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 125 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 130 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 135 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 140 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 145 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 150 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 155 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 160 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 165 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 170 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 175 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 180 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 185 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 190 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 195 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 200 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 205 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 210 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 215 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 220 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 225 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 230 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 2 },	/* 235 */
    { 2 },
    { 2 },
    { 2 },
    { 2 },
    { 3 },	/* 240 */
    { 3 },
    { 4 },
    { 4 },	/* 243 */
    { 5 },
    { 5 },	/* 245 */
    { 6 },
    { 7 },
    { 7 },
    { 7 },
    { 8 }	/* 250 */
};

const	struct	agi_app_type	agi_app		[251]		=
{
    {   60 },   /* 0 */
    {   57 },   /* 1 */
    {   54 },
    {   52 },
    {   50 },
    {   48 },   /* 5 */
    {   46 },
    {   44 },
    {   42 },
    {   40 },
    {   38 },   /* 10 */
    {   37 },
    {   36 },
    {   35 },
    {   34 },
    {   33 },   /* 15 */
    {   32 },
    {   31 },
    {   30 },
    {   29 },
    {   28 },   /* 20 */
    {   27 },
    {   26 },
    {   25 },
    {   24 },
    {   23 },   /* 25 */
    {   22 },
    {   21 },
    {   20 },
    {   19 },
    {   18 },   /* 30 */
    {   17 },
    {   16 },
    {   15 },
    {   14 },
    {   13 },   /* 35 */
    {   12 },
    {   11 },
    {   10 },
    {    9 },
    {    8 },   /* 40 */
    {    7 },
    {    6 },
    {    5 },
    {    4 },
    {    3 },   /* 45 */
    {    2 },
    {    2 },
    {    1 },
    {    1 },
    {    0 },   /* 50 */
    {    0 },
    {    0 },
    {    0 },
    {    0 },
    {    0 },   /* 55 */
    {    0 },
    {    0 },
    {    0 },
    {    0 },
    { -  1 },   /* 60 */
    { -  1 },
    { -  1 },
    { -  2 },
    { -  2 },
    { -  3 },   /* 65 */
    { -  3 },
    { -  4 },
    { -  4 },
    { -  5 },
    { -  5 },   /* 70 */
    { -  6 },
    { -  6 },
    { -  7 },
    { -  7 },
    { -  8 },   /* 75 */
    { -  8 },
    { -  9 },
    { -  9 },
    { - 10 },
    { - 11 },   /* 80 */
    { - 12 },
    { - 13 },
    { - 14 },
    { - 15 },
    { - 16 },   /* 85 */
    { - 17 },
    { - 18 },
    { - 19 },
    { - 20 },
    { - 21 },   /* 90 */
    { - 22 },
    { - 23 },
    { - 24 },
    { - 25 },
    { - 26 },   /* 95 */
    { - 27 },
    { - 28 },
    { - 29 },
    { - 30 },
    { - 31 },   /* 100 */
    { - 32 },
    { - 32 },
    { - 33 },
    { - 33 },
    { - 34 },   /* 105 */
    { - 34 },
    { - 35 },
    { - 35 },
    { - 36 },
    { - 36 },   /* 110 */
    { - 37 },
    { - 37 },
    { - 38 },
    { - 38 },
    { - 39 },   /* 115 */
    { - 39 },
    { - 40 },
    { - 40 },
    { - 41 },
    { - 41 },   /* 120 */
    { - 42 },
    { - 42 },
    { - 43 },
    { - 43 },
    { - 44 },   /* 125 */
    { - 44 },
    { - 45 },
    { - 45 },
    { - 46 },
    { - 46 },   /* 130 */
    { - 47 },
    { - 47 },
    { - 48 },
    { - 48 },
    { - 49 },   /* 135 */
    { - 49 },
    { - 50 },
    { - 50 },
    { - 51 },
    { - 51 },   /* 140 */
    { - 52 },
    { - 52 },
    { - 53 },
    { - 53 },
    { - 54 },   /* 145 */
    { - 54 },
    { - 55 },
    { - 55 },
    { - 56 },
    { - 56 },   /* 150 */
    { - 57 },
    { - 57 },
    { - 58 },
    { - 58 },
    { - 59 },   /* 155 */
    { - 59 },
    { - 60 },
    { - 60 },
    { - 61 },
    { - 61 },   /* 160 */
    { - 62 },
    { - 62 },
    { - 63 },
    { - 63 },
    { - 64 },   /* 165 */
    { - 64 },
    { - 65 },
    { - 65 },
    { - 66 },
    { - 66 },   /* 170 */
    { - 67 },
    { - 67 },
    { - 68 },
    { - 68 },
    { - 69 },   /* 175 */
    { - 69 },
    { - 70 },
    { - 70 },
    { - 71 },
    { - 71 },   /* 180 */
    { - 72 },
    { - 72 },
    { - 73 },
    { - 73 },
    { - 74 },   /* 185 */
    { - 74 },
    { - 75 },
    { - 75 },
    { - 76 },
    { - 76 },   /* 190 */
    { - 77 },
    { - 77 },
    { - 78 },
    { - 78 },
    { - 79 },   /* 200 */
    { - 79 },
    { - 80 },
    { - 81 },
    { - 82 },
    { - 83 },   /* 205 */
    { - 84 },
    { - 85 },
    { - 86 },
    { - 87 },
    { - 88 },   /* 210 */
    { - 89 },
    { - 90 },
    { - 91 },
    { - 92 },
    { - 93 },   /* 215 */
    { - 94 },
    { - 95 },
    { - 96 },
    { - 97 },
    { - 98 },   /* 220 */
    { - 99 },
    { - 100 },
    { - 101 },
    { - 102 },
    { - 103 },   /* 225 */
    { - 104 },
    { - 105 },
    { - 106 },
    { - 107 },
    { - 108 },   /* 230 */
    { - 109 },
    { - 110 },
    { - 111 },
    { - 112 },
    { - 113 },   /* 235 */
    { - 114 },
    { - 115 },
    { - 116 },
    { - 117 },
    { - 118 },   /* 240 */
    { - 119 },
    { - 120 },
    { - 121 },
    { - 122 },
    { - 123 },   /* 245 */
    { - 124 },
    { - 125 },
    { - 126 },
    { - 128 },
    { - 130 }    /* 250 */
};



const	struct	con_app_type	con_app		[251]		=
{
    {  35, 20 },   /*  0 */
    {  40, 25 },   /*  1 */
    {  42, 30 },
    {  44, 35 },	  /*  3 */
    {  46, 40 },
    {  48, 45 },   /*  5 */
    {  50, 50 },
    {  52, 55 },
    {  54, 60 },
    {  56, 65 },
    {  58, 70 },   /* 10 */
    {  60, 70 },
    {  62, 70 },
    {  64, 70 },
    {  66, 70 },
    {  68, 70 },   /* 15 */
    {  70, 70 },
    {  71, 70 },
    {  72, 70 },
    {  73, 70 },
    {  74, 70 },   /* 20 */
    {  75, 70 },
    {  76, 70 },
    {  77, 70 },
    {  78, 70 },
    {  79, 70 },   /* 25 */
    {  80, 70 },
    {  81, 70 },
    {  82, 70 },
    {  83, 70 },
    {  84, 70 },   /* 30 */
    {  85, 70 },
    {  86, 70 },
    {  87, 70 },
    {  88, 70 },
    {  89, 70 },   /* 35 */
    {  90, 70 },
    {  91, 70 },
    {  92, 70 },
    {  93, 70 },
    {  94, 70 },   /* 40 */
    {  95, 70 },
    {  96, 70 },
    {  96, 70 },
    {  97, 70 },
    {  97, 70 },   /* 45 */
    {  98, 70 },
    {  98, 70 },
    {  99, 70 },
    {  99, 70 },
    {  100, 70 },   /* 50 */
    {  100, 70 },
    {  100, 70 },
    {  100, 70 },
    {  100, 70 },
    {  100, 70 },   /* 55 */
    {  100, 70 },
    {  100, 70 },
    {  100, 70 },
    {  100, 70 },
    {  101, 70 },   /* 60 */
    {  101, 70 },
    {  101, 70 },
    {  102, 70 },
    {  102, 70 },
    {  102, 70 },   /* 65 */
    {  103, 70 },
    {  103, 70 },
    {  103, 70 },
    {  104, 70 },
    {  104, 70 },   /* 70 */
    {  104, 70 },
    {  105, 70 },
    {  105, 70 },
    {  105, 70 },
    {  106, 70 },   /* 75 */
    {  106, 70 },
    {  106, 70 },
    {  107, 70 },
    {  107, 70 },
    {  107, 70 },   /* 80 */
    {  108, 70 },
    {  108, 70 },
    {  109, 70 },
    {  109, 70 },
    {  110, 70 },   /* 85 */
    {  110, 70 },
    {  111, 70 },
    {  111, 70 },
    {  112, 70 },
    {  112, 70 },   /* 90 */
    {  113, 70 },
    {  113, 70 },
    {  114, 70 },
    {  114, 70 },
    {  115, 70 },   /* 95 */
    {  115, 70 },
    {  116, 70 },
    {  116, 70 },
    {  117, 70 },
    {  117, 70 },   /* 100 */
    {  118, 70 },
    {  118, 70 },
    {  119, 70 },
    {  119, 70 },
    {  120, 70 },   /* 105 */
    {  120, 70 },
    {  121, 70 },
    {  121, 70 },
    {  122, 70 },
    {  122, 70 },   /* 110 */
    {  123, 70 },
    {  123, 70 },
    {  124, 70 },
    {  124, 70 },
    {  125, 70 },   /* 115 */
    {  125, 70 },
    {  126, 70 },
    {  126, 70 },
    {  127, 70 },
    {  127, 70 },   /* 120 */
    {  128, 70 },
    {  128, 70 },
    {  128, 70 },
    {  129, 70 },
    {  129, 70 },   /* 125 */
    {  129, 70 },
    {  130, 70 },
    {  130, 70 },
    {  130, 70 },
    {  131, 70 },   /* 130 */
    {  131, 70 },
    {  131, 70 },
    {  132, 70 },
    {  132, 70 },
    {  132, 70 },   /* 135 */
    {  133, 70 },
    {  133, 70 },
    {  133, 70 },
    {  134, 70 },
    {  134, 70 },   /* 140 */
    {  134, 70 },
    {  135, 70 },
    {  135, 70 },
    {  135, 70 },
    {  136, 70 },   /* 145 */
    {  136, 70 },
    {  136, 70 },
    {  137, 70 },
    {  137, 70 },
    {  137, 70 },   /* 150 */
    {  138, 70 },
    {  138, 70 },
    {  138, 70 },
    {  139, 70 },
    {  139, 70 },   /* 155 */
    {  139, 70 },
    {  140, 70 },
    {  140, 70 },
    {  140, 70 },
    {  141, 70 },   /* 160 */
    {  141, 70 },
    {  141, 70 },
    {  142, 70 },
    {  142, 70 },
    {  142, 70 },   /* 165 */
    {  143, 70 },
    {  143, 70 },
    {  143, 70 },
    {  144, 70 },
    {  144, 70 },   /* 170 */
    {  144, 70 },
    {  145, 70 },
    {  145, 70 },
    {  145, 70 },
    {  146, 70 },   /* 175 */
    {  146, 70 },
    {  146, 70 },
    {  147, 70 },
    {  147, 70 },
    {  147, 70 },   /* 180 */
    {  148, 70 },
    {  148, 70 },
    {  148, 70 },
    {  149, 70 },
    {  149, 70 },   /* 185 */
    {  149, 70 },
    {  150, 70 },
    {  150, 70 },
    {  150, 70 },
    {  151, 70 },   /* 190 */
    {  151, 70 },
    {  151, 70 },
    {  152, 70 },
    {  152, 70 },
    {  152, 70 },   /* 195 */
    {  153, 70 },
    {  153, 70 },
    {  153, 70 },
    {  154, 70 },
    {  154, 70 },   /* 200 */
    {  154, 70 },
    {  155, 70 },
    {  155, 70 },
    {  155, 70 },
    {  156, 70 },   /* 205 */
    {  156, 70 },
    {  156, 70 },
    {  157, 70 },
    {  157, 70 },
    {  157, 70 },   /* 210 */
    {  158, 70 },
    {  158, 70 },
    {  158, 70 },
    {  159, 70 },
    {  159, 70 },   /* 215 */
    {  160, 70 },
    {  160, 70 },
    {  160, 70 },
    {  161, 70 },
    {  161, 70 },   /* 220 */
    {  161, 70 },
    {  162, 70 },
    {  162, 70 },
    {  162, 70 },
    {  163, 70 },   /* 225 */
    {  163, 70 },   /* 226 */
    {  163, 70 },
    {  164, 70 },
    {  164, 70 },
    {  164, 70 },
    {  165, 70 },   /* 231 */
    {  165, 70 },
    {  165, 70 },
    {  166, 70 },
    {  166, 70 },
    {  166, 75 },
    {  167, 80 },
    {  167, 85 },
    {  167, 88 },
    {  168, 90 },   /* 240 */
    {  169, 95 },
    {  170, 97 },
    {  171, 99 },   /* 243 */
    {  172, 99 },
    {  173, 99 },   /* 245 */
    {  174, 99 },
    {  175, 99 },
    {  166, 99 },
    {  167, 99 },
    {  168, 99 }    /* 250 */
};



/*
 * Liquid properties.
 * Used in world.obj.
 */
const	struct	liq_type	liq_table	[LIQ_MAX]	=
{
/*    name                      colour       drunk, food, thirst */
    { "water",			"clear",	{  0, 0, 10 }	},  /*  0 */
    { "beer",			"amber",	{  3, 2,  5 }	},
    { "wine",			"rose",		{  5, 2,  5 }	},
    { "ale",			"brown",	{  2, 2,  5 }	},
    { "dark ale",		"dark",		{  1, 2,  5 }	},

    { "whisky",			"golden",	{  6, 1,  4 }	},  /*  5 */
    { "lemonade",		"pink",		{  0, 1,  8 }	},
    { "firebreather",		"boiling",	{ 10, 0,  0 }	},
    { "local specialty",	"everclear",	{  3, 3,  3 }	},
    { "slime mold juice",	"green",	{  0, 4, -8 }	},

    { "milk",			"white",	{  0, 3,  6 }	},  /* 10 */
    { "tea",			"tan",		{  0, 1,  6 }	},
    { "coffee",			"black",	{  0, 1,  6 }	},
    { "blood",			"red",		{  0, 2, -1 }	},
    { "salt water",		"clear",	{  0, 1, -2 }	},

    { "cola",			"cherry",	{  0, 1,  5 }	},   /* 15 */
    { "white wine",		"golden",	{  5, 2,  5 }	},
    { "root beer",		"brown",	{  0, 3,  6 }	},
    { "champagne",		"golden",	{  5, 2,  5 }	},
    { "vodka",			"clear",	{  7, 1,  4 }	},

    { "absinth",		"green",	{ 10, 0,  0 }	},   /* 20 */
    { "brandy",			"golden",	{  5, 1,  4 }	},
    { "schnapps",		"clear",	{  6, 1,  4 }	},
    { "orange juice",		"orange",	{  0, 2,  8 }	},
    { "sherry",			"red",		{  3, 2,  4 }	},

    { "rum",			"amber",	{  8, 1,  4 }	},   /* 25 */
    { "port",			"red",		{  3, 3,  4 }	}

};



struct	skill_type	skills_table	[MAX_SKILL]	=
{
    {
	"reserved",		{ L_APP },
	NULL,			0,
	"",			"",
    },

/*
 * Fighter and thief skills, as well as magic item skills.
 */
    {
	"backstab",		{ L_APP },
	&gsn_backstab,		24,
	"vicious backstab",	"!Backstab!",
    },

    {
	"doorbash", 	 	{ L_APP },
	&gsn_doorbash,		24,
	"powerful bash",	"!DoorBash!",
    },

    {
        "berserk",              { L_APP },
        &gsn_berserk,           12,
        "",                     "The bloody haze lifts.",
    },

    {
        "circle",		{ L_APP },
        &gsn_circle,		24,
        "sneak attack",		"!Circle!",
    },

    {
	"disarm",		{ L_APP },
	&gsn_disarm,		36,
	"",			"!Disarm!",
    },

    {
	"dodge",		{ L_APP },
	&gsn_dodge,		0,
	"",			"!Dodge!",
    },

    {
        "dual wield",         	{ L_APP },
        &gsn_dual,      	0,
        "",                     "!Dual!",
    },

    {
	"offense",		{ L_APP },
	&gsn_enhanced_damage,	0,
	"",			"!Enhanced Damage!",
    },

    {
	"hide",			{ L_APP },
	&gsn_hide,		12,
	"",			"!Hide!",
    },

    {
	"kick",			{ L_APP },
	&gsn_kick,		24,
	"mighty kick",		"!Kick!",
    },

    {
	"bash",			{ L_APP },
	&gsn_bash,		25,
	"mighty bash",		"!Bash!",
    },

    {
	"springleap",		{ L_APP },
	&gsn_springleap,	26,
	"springleap",		"!Springleap!",
    },

    {
	"charge",		{ L_APP },
	&gsn_charge,		20,
	"wild charge",		"!Charge!",
    },

    {
	"bodyslam",		{ L_APP },
	&gsn_bodyslam,		32,
	"mighty slam",		"!Bodyslam!",
    },

    {
	"headbutt",		{ L_APP },
	&gsn_headbutt,		23,
	"headbutt",		"!Headbutt!",
    },

    {
	"parry",		{ L_APP },
	&gsn_parry,		0,
	"",			"!Parry!",
    },

    {
	"peek",			{ L_APP },
	&gsn_peek,		0,
	"",			"!Peek!",
    },

    {
	"pick lock",		{ L_APP },
	&gsn_pick_lock,		12,
	"",			"!Pick!",
    },

    {
	"poison weapon",	{ L_APP },
	&gsn_poison_weapon,	12,
	"poisonous concoction",	"!Poison Weapon!",
    },

    {
	"rescue",		{ L_APP },
	&gsn_rescue,		12,
	"",			"!Rescue!",
    },

    {
	"scrolls",      	{ L_APP },
	&gsn_scrolls,	 	0,
	"blazing scroll",	"!Scrolls!",
    },

    {
	"second attack",	{ L_APP },
	&gsn_second_attack,	0,
	"",			"!Second Attack!",
    },

    {
	"snare",		{ L_APP },
	&gsn_snare,		12,
	"",			"You are no longer ensnared.",
    },

    {
	"sneak",		{ L_APP },
	&gsn_sneak,		12,
	"",			NULL,
    },

    {
	"staves",       	{ L_APP },
	&gsn_staves,	 	0,
	"shattered staff",	"!Staves!",
    },

    {
	"steal",		{ L_APP },
	&gsn_steal,		24,
	"",			"!Steal!",
    },

    {
	"third attack",		{ L_APP },
	&gsn_third_attack,	0,
	"",			"!Third Attack!",
    },

    {
        "untangle",		{ L_APP },
        &gsn_untangle,		24,
        "",                     "!Untangle!",
    },

    {
	"wands",        	{ L_APP },
	&gsn_wands,	 	0,
	"exploding wand",	"!Wands!",
    },

    /*
     * Psionicist spell/skill definitions
     * Psi class conceived, created, and coded by Thelonius (EnvyMud)
     */

    {
        "chameleon power",      { L_APP },
        &gsn_chameleon,         12,
        "",                     "!Chameleon Power!",
    },

    {
        "heighten senses",      { L_APP },
        &gsn_heighten,          0,
        "",                     "Your senses return to normal.",
    },

    {
        "shadow form",          { L_APP },
        &gsn_shadow,            12,
        "",                     "You no longer move in the shadows.",
    },

/*
 * New abilities added by Zen, made by several other ppl.
 */
    {
        "shield block",         { L_APP },
        &gsn_shield_block,      0,
        "",                     "!Shield Block!",
    },

    {
        "fast healing",         { L_APP },
        &gsn_fast_healing,      0,
        "",                     "!Fast Healing!",
    },

   {
        "fourth attack",        { L_APP },
        &gsn_fourth_attack,     0,
        "",                     "!Fourth Attack!",
    },

    {
	"brew",			{ L_APP },
	&gsn_brew,		24,
	"blunder",		"!Brew!",
    },

    {
	"scribe",		{ L_APP },
	&gsn_scribe,		24,
	"blunder",		"!Scribe!",
    },

    {
        "track",		{ L_APP },
        &gsn_track,		2,
        "",			"!Track!",
    },

    {
	"whirlwind",		{ L_APP },
	&gsn_whirlwind,		21,
	"WhirlWind",		"!Whirlwind!",
    },

    {
        "mount",		{ L_APP },
        &gsn_mount,		5,
        "",			"!Mount!",
    },

/*
 * Spells & skills here by Zen.
 */
    {
        "dirt kicking",		{ L_APP },
        &gsn_dirt,              24,
        "kicked dirt",          "You rub the dirt out of your eyes.",
    },

    {
        "swim",                 { L_APP },
	&gsn_swim,		0,
	"",			"!Swim!",
    },

    {
        "meditate",         	{ L_APP },
        &gsn_meditate,      	0,
        "",			"!Meditate!",
    },

/*
 * Weapon proficiencies.
 * These must all be together and after "pugilism".
 */
    {
	"barehanded fighting",	{ L_APP },
	&gsn_hit,		0,
	"",			"!Barehanded Fighting!",
    },

    {
	"1h slashing",		{ L_APP },
	&gsn_slash,		0,
	"",			"!1h slashing!",
    },

    {
	"1h piercing",		{ L_APP },
	&gsn_pierce,		0,
	"",			"!1h piercing!",
    },

    {
	"1h misc",		{ L_APP },
	&gsn_whip,		0,
	"",			"!1h misc!",
    },

    {
	"2h slashing",		{ L_APP },
	&gsn_slash,		0,
	"",			"!2h slashing!",
    },

    {
	"2h piercing",		{ L_APP },
	&gsn_pierce,		0,
	"",			"!2h piercing!",
    },

    {
	"2h misc",		{ L_APP },
	&gsn_whip,		0,
	"",			"!2h misc!",
    },

    {
	"blast weapons",	{ L_APP },
	&gsn_explode,		0,
	"",			"!Blast Weapons!",
    },

    {
	"1h bludgeoning",		{ L_APP },
	&gsn_pound,		0,
	"",			"!1h bludgeoning!",
    },

    {
	"2h bludgeoning",		{ L_APP },
	&gsn_pound,		0,
	"",			"!2h bludgeoning!",
    },

    {
	"tornado suction",	{ L_APP },
	&gsn_suction,		0,
	"",			"!Tornado Suction!",
    },

    {
	"archery",		{ L_APP },
	&gsn_shot,		0,
	"",			"!Archery!",
    },

	  /* Race ability spells */
    {
        "vampiric bite",        { L_APP },
        &gsn_vampiric_bite,     0,
        "vampiric bite",        "You feel well fed.",
    },

    {
        "carve",                { L_APP },
        &gsn_carve,             0,
        "",                     "!Carve!",
    },

    {
        "aerial casting",       { L_APP },
        NULL,                   0,
        "",                     "!Aerial Casting!",
    },

    {
        "aerial combat",        { L_APP },
        NULL,                   0,
        "",                     "!Aerial Casting!",
    },

    {
        "bandage",              { L_APP },
        &gsn_bandage,            4,
        "",                     "!Bandage!",
    },

    {
        "quick chant",          { L_APP },
        &gsn_quick_chant,       0,
        "",                     "!Quick Chant!",
    },

    {
        "trip",                 { L_APP },
        &gsn_trip,              24,
        "trip",                 "!Trip!",
    },

    {
        "guard",                { L_APP },
        &gsn_guard,             0,
        "",                     "!Guard!",
    },

    {
        "blindfighting",        { L_APP },
        &gsn_blindfighting,     0,
        "",                     "!Blindfighting!",
    },

    {
        "switch opponents",     { L_APP },
        &gsn_switch,            11,
        "",                     "!Switch Opponents!",
    },

    {
        "awareness",            { L_APP },
        &gsn_aware,             6,
        "",                     "!Awareness!",
    },

    {
        "unarmed damage",       { L_APP },
        &gsn_unarmed,           0,
        "",                     "!Unarmed Damage!",
    },

};

const int lesser_memchart [ MAX_LEVEL ] [ 12 ] =
// memorization chart for partial spell casters:
// rangers, paladins, antipaladins
{
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 10
  { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, // 20
  { 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 3, 2, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 3, 3, 1, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 3, 3, 1, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 4, 3, 2, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 4, 3, 2, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 4, 4, 3, 3, 0, 0, 0, 0, 0, 0 }, // 30
  { 0, 0, 5, 4, 3, 3, 1, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 4, 3, 3, 1, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 4, 4, 3, 2, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 4, 4, 3, 2, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 4, 4, 3, 3, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 5, 4, 3, 3, 0, 0, 0, 0, 0 },
  { 0, 0, 5, 5, 4, 3, 3, 1, 0, 0, 0, 0 },                         
  { 0, 0, 5, 5, 4, 4, 3, 1, 0, 0, 0, 0 },
  { 0, 0, 5, 5, 4, 4, 3, 2, 0, 0, 0, 0 },
  { 0, 0, 5, 5, 4, 4, 3, 2, 0, 0, 0, 0 }, // 40
  { 0, 0, 5, 5, 5, 4, 3, 3, 1, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 4, 3, 3, 1, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 4, 4, 3, 2, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 4, 4, 3, 2, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 4, 4, 3, 3, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 5, 4, 3, 3, 0, 0, 0 },
  { 0, 0, 5, 5, 5, 5, 4, 3, 3, 1, 0, 0 },
  { 0, 0, 5, 5, 5, 5, 4, 3, 3, 1, 0, 0 },
  { 0, 0, 5, 5, 5, 5, 4, 4, 3, 2, 0, 0 },
  { 0, 0, 5, 5, 5, 5, 4, 4, 3, 2, 1, 0 }, // 50
  { 0, 0, 6, 6, 6, 5, 5, 4, 3, 3, 1, 0 },
  { 0, 0, 6, 6, 6, 5, 5, 4, 3, 3, 2, 0 },
  { 0, 0, 6, 6, 6, 5, 5, 4, 4, 3, 2, 0 },
  { 0, 0, 6, 6, 6, 6, 5, 4, 4, 3, 3, 0 },
  { 0, 0, 6, 6, 6, 6, 5, 4, 4, 3, 3, 0 },
  { 0, 0, 6, 6, 6, 6, 5, 4, 4, 3, 3, 1 },
  { 0, 0, 6, 6, 6, 6, 5, 5, 4, 3, 3, 1 },
  { 0, 0, 6, 6, 6, 6, 5, 5, 4, 3, 3, 2 },
  { 0, 0, 6, 6, 6, 6, 6, 5, 4, 4, 3, 2 },
  { 0, 0, 6, 6, 6, 6, 6, 5, 4, 4, 3, 3 }, // 60
  { 0, 0, 6, 6, 6, 6, 6, 5, 5, 4, 3, 3 },
  { 0, 0, 6, 6, 6, 6, 6, 5, 5, 4, 4, 3 },
  { 0, 0, 6, 6, 6, 6, 6, 5, 5, 4, 4, 3 },
  { 0, 0, 6, 6, 6, 6, 6, 5, 5, 4, 4, 3 }, // 64
  { 0, 0, 6, 6, 6, 6, 6, 5, 5, 4, 4, 3 }, // 65
};

const int memchart [ MAX_LEVEL ] [ 12 ] =
// memorization chart for full spellcasting classes:
// cleric, shaman, druid, conjurer, necromancer, sorcerer
{
  { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 10
  { 6, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 7, 6, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, // 20
  { 8, 7, 6, 6, 1, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 6, 6, 2, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 6, 6, 3, 0, 0, 0, 0, 0, 0, 0 },
  { 8, 7, 7, 6, 4, 0, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 6, 5, 0, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 6, 6, 1, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 6, 6, 2, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 6, 6, 3, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 7, 6, 4, 0, 0, 0, 0, 0, 0 },
  { 9, 8, 7, 7, 6, 5, 0, 0, 0, 0, 0, 0 }, // 30
  { 9, 8, 7, 7, 6, 6, 1, 0, 0, 0, 0, 0 },
  {10, 9, 8, 7, 6, 6, 2, 0, 0, 0, 0, 0 },
  {10, 9, 8, 7, 6, 6, 3, 0, 0, 0, 0, 0 },
  {10, 9, 8, 7, 7, 6, 4, 0, 0, 0, 0, 0 },
  {10, 9, 8, 7, 7, 6, 5, 0, 0, 0, 0, 0 },
  {10, 9, 8, 7, 7, 6, 6, 1, 0, 0, 0, 0 },
  {10, 9, 8, 8, 7, 6, 6, 2, 0, 0, 0, 0 },
  {10, 9, 8, 8, 7, 6, 6, 3, 0, 0, 0, 0 },
  {11,10, 8, 8, 7, 7, 6, 4, 0, 0, 0, 0 },
  {11,10, 9, 8, 7, 7, 6, 5, 0, 0, 0, 0 }, // 40
  {11,10, 9, 8, 7, 7, 6, 6, 1, 0, 0, 0 },
  {11,10, 9, 8, 8, 7, 6, 6, 2, 0, 0, 0 },
  {11,10, 9, 8, 8, 7, 6, 6, 3, 0, 0, 0 },
  {11,10, 9, 8, 8, 7, 7, 6, 4, 0, 0, 0 },
  {11,10, 9, 9, 8, 7, 7, 6, 5, 0, 0, 0 },
  {12,11, 9, 9, 8, 7, 7, 6, 6, 1, 0, 0 },
  {12,11, 9, 9, 8, 8, 7, 6, 6, 2, 0, 0 },
  {12,11,10, 9, 8, 8, 7, 7, 6, 3, 0, 0 },
  {12,11,10, 9, 8, 8, 7, 7, 6, 4, 0, 0 },
  {12,11,10, 9, 9, 8, 7, 7, 6, 5, 0, 0 }, // 50
  {12,11,10, 9, 9, 8, 7, 7, 6, 6, 1, 0 },
  {12,11,10,10, 9, 8, 8, 7, 6, 6, 2, 0 },
  {13,12,10,10, 9, 8, 8, 7, 6, 6, 3, 0 },
  {13,12,10,10, 9, 8, 8, 7, 7, 6, 4, 0 },
  {13,12,11,10, 9, 8, 8, 7, 7, 6, 5, 0 },
  {13,12,11,10, 9, 9, 8, 8, 7, 6, 6, 1 }, // 56 -- end of mortal levels
  {13,12,11,10,10, 9, 8, 8, 7, 6, 6, 2 },
  {13,12,11,10,10, 9, 8, 8, 7, 6, 6, 3 },
  {13,12,11,11,10, 9, 8, 8, 7, 7, 6, 4 },
  {14,13,11,11,10, 9, 9, 8, 7, 7, 6, 5 }, // 60
  {14,13,11,11,10, 9, 9, 8, 7, 7, 6, 6 },
  {14,13,12,11,10, 9, 9, 8, 8, 7, 6, 6 },
  {14,13,12,11,10,10, 9, 8, 8, 7, 7, 6 },
  {14,13,12,11,10,10, 9, 8, 8, 7, 7, 6 },
  {16,16,16,16,16,16, 9, 8, 8, 7, 7, 6 }, // 65
};

struct	spell_type	spells_table	[MAX_SPELL]	=
{
/*
 * Magic spells.
 */
    {
	"reserved",		{ L_APP },
	0,			TAR_IGNORE,		FALSE,
	NULL,			0,	 0,
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	SCHOOL_NONE,
	MANA_NONE,
    },

    {
	"acid blast",		{ L_APP },
	spell_acid_blast,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			20,	12,
	"acid blast",
	"",
	"",
	"",
	"",
	"",
	"!Acid Blast!",
	SCHOOL_EVOCATION,
	MANA_WATER
    },

    {
	"armor",		{ L_APP },
	spell_armor,		TAR_CHAR_DEFENSIVE,	TRUE,
	&spl_armor,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less protected.",
	SCHOOL_CONJURATION,
	MANA_EARTH
    },

    {
	"bless",		{ L_APP },
	spell_bless,		TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_bless,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less righteous.",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

    {
	"blindness",		{ L_APP },
	spell_blindness,	TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_blindness,		5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You can see again.",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
	MANA_FIRE
    },

    {
	"breathe water",	{ L_APP },
	spell_breathe_water,	TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_breathe_water, 	 5,	12,
	"pained lungs",
	"",
	"",
	"",
	"",
	"",
	"You can no longer breathe underwater.",
	SCHOOL_SURVIVAL,
	MANA_WATER
    },

    {
	"burning hands",	{ L_APP },
	spell_burning_hands,	TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_burning_hands,     15,	12,
	"burning hands",
	"",
	"",
	"",
	"",
	"",
	"!Burning Hands!",
	SCHOOL_ALTERATION,
	MANA_FIRE
    },

    {
	"call lightning",	{ L_APP },
	spell_call_lightning,	TAR_IGNORE,		TRUE,
	NULL,			15,	12,
	"lightning bolt",
	"",
	"",
	"",
	"",
	"",
	"!Call Lightning!",
	SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
	"cause critical",	{ L_APP },
	spell_cause_critical,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			20,	12,
	"invocation",
	"",
	"",
	"",
	"",
	"",
	"!Cause Critical!",
	SCHOOL_NECROMANCY,
	MANA_AIR
    },

    {
	"cause light",		{ L_APP },
	spell_cause_light,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"invocation",
	"",
	"",
	"",
	"",
	"",
	"!Cause Light!",
	SCHOOL_NECROMANCY,
	MANA_AIR
    },

    {
	"cause serious",	{ L_APP },
	spell_cause_serious,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			17,	12,
	"invocation",
	"",
	"",
	"",
	"",
	"",
	"!Cause Serious!",
	SCHOOL_NECROMANCY,
	MANA_AIR
    },

    {
	"change sex",		{ L_APP },
	spell_change_sex,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			15,	0,
	"",
	"",
	"",
	"",
	"",
	"",
	"Your body feels familiar again.",
	SCHOOL_ENCHANTMENT | SCHOOL_ALTERATION,
	MANA_ANY
    },

    {
	"charm person",		{ L_APP },
	spell_charm_person,	TAR_CHAR_OFFENSIVE,	FALSE,
	&spl_charm_person,	5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel more self-confident.",
	SCHOOL_ENCHANTMENT | SCHOOL_CHARM,
	MANA_ANY
    },

    {
	"chill touch",		{ L_APP },
	spell_chill_touch,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"chilling touch",
	"",
	"",
	"",
	"",
	"",
	"You feel less cold.",
	SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"colour spray",		{ L_APP },
	spell_colour_spray,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"colour spray",
	"",
	"",
	"",
	"",
	"",
	"!Colour Spray!",
	SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
        "silence",		{ L_APP },
        spell_cone_of_silence,	TAR_IGNORE,		TRUE,
        NULL,			35,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Cone of Silence!",
        SCHOOL_INVOCATION,
        MANA_EARTH
    },

    {
	"continual light",	{ L_APP },
	spell_continual_light,	TAR_IGNORE,		FALSE,
	NULL,			7,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Continual Light!",
	SCHOOL_ALTERATION,
	MANA_FIRE
    },

    {
	"control weather",	{ L_APP },
	spell_control_weather,	TAR_IGNORE,		FALSE,
	NULL,			25,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Control Weather!",
	SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
	"create food",		{ L_APP },
	spell_create_food,	TAR_IGNORE,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Create Food!",
	SCHOOL_CONJURATION,
	MANA_EARTH
    },

    {
	"create skin",		{ L_APP },
	spell_create_water,	TAR_IGNORE,		FALSE,
	NULL,			20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Create Skin!",
	SCHOOL_CONJURATION,
	MANA_WATER
    },

    {
	"create water",		{ L_APP },
	spell_create_water,	TAR_OBJ_INV,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Create Water!",
	SCHOOL_ALTERATION,
	MANA_WATER
    },

    {
	"cure blindness",	{ L_APP },
	spell_cure_blindness,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Blindness!",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"cure critical",	{ L_APP },
	spell_cure_critical,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Critical!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"cure disease",		{ L_APP },
	spell_cure_disease,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Disease!",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"cure light",		{ L_APP },
	spell_cure_light,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			10,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Light!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"cure poison",		{ L_APP },
	spell_cure_poison,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Poison!",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"cure serious",		{ L_APP },
	spell_cure_serious,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			15,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Cure Serious!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"curse",		{ L_APP },
	spell_curse,		TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_curse,		20,	12,
	"curse",
	"",
	"",
	"",
	"",
	"",
        "The curse wears off.",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

    {
	"destroy cursed",	{ L_APP },
	spell_destroy_cursed,	TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!destroy cursed!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"detect evil",		{ L_APP },
	spell_detect_evil,	TAR_CHAR_SELF,		FALSE,
	&spl_detect_evil,	5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"The red in your vision disappears.",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"detect hidden",	{ L_APP },
	spell_detect_hidden,	TAR_CHAR_SELF,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less aware of your surroundings.",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"detect invis",		{ L_APP },
	spell_detect_invis,	TAR_CHAR_SELF,		FALSE,
	&spl_detect_invis,	5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You no longer see invisible objects.",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"detect magic",		{ L_APP },
	spell_detect_magic,	TAR_CHAR_SELF,		FALSE, 
	&spl_detect_magic,	5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"The detect magic wears off.",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"detect poison",	{ L_APP },
	spell_detect_poison,	TAR_OBJ_INV,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Detect Poison!",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"dispel evil",		{ L_APP },
	spell_dispel_evil,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"holy fire",
	"",
	"",
	"",
	"",
	"",
	"!Dispel Evil!",
	SCHOOL_ABJURATION,
	MANA_WATER
    },

    {
	"dispel magic",		{ L_APP },
	spell_dispel_magic,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			15,	16,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Dispel Magic!",
	SCHOOL_ABJURATION,
	MANA_EARTH
    },

    {
	"earthquake",		{ L_APP },
	spell_earthquake,	TAR_IGNORE,		TRUE,
	NULL,			15,	12,
	"earthquake",
	"",
	"",
	"",
	"",
	"",
	"!Earthquake!",
	SCHOOL_ALTERATION,
	MANA_EARTH
    },

    {
	"enchant weapon",	{ L_APP },
	spell_enchant_weapon,	TAR_OBJ_INV,		FALSE,
	NULL,			100,	24,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Enchant Weapon!",
	SCHOOL_ENCHANTMENT,
	MANA_FIRE
    },

    {
	"energy drain",		{ L_APP },
	spell_energy_drain,	TAR_CHAR_OFFENSIVE,	FALSE,
	NULL,			35,	12,
	"energy drain",
	"",
	"",
	"",
	"",
	"",
	"!Energy Drain!",
	SCHOOL_NECROMANCY,
	MANA_FIRE
    },

    {
	"exorcise",		{ L_APP },
	spell_exorcise, 	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			35,	12,
	"",
	"",
	"",
	"",
	"",
	"",
        "!Exorcise!",
	SCHOOL_ALTERATION | SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"faerie fire",		{ L_APP },
	spell_faerie_fire,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			5,	12,
	"faerie fire",
	"",
	"",
	"",
	"",
	"",
	"The pink aura around you fades away.",
	SCHOOL_ALTERATION,
	MANA_FIRE
    },

    {
	"faerie fog",		{ L_APP },
	spell_faerie_fog,	TAR_IGNORE,		TRUE,
	NULL,			12,	12,
	"faerie fog",
	"",
	"",
	"",
	"",
	"",
	"!Faerie Fog!",
	SCHOOL_CONJURATION,
	MANA_AIR
    },

    {
	"fireball",		{ L_APP },
	spell_fireball,		TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"fireball",
	"",
	"",
	"",
	"",
	"",
	"!Fireball!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    },

    {
	"flamestrike",		{ L_APP },
	spell_flamestrike,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			20,	12,
	"flamestrike",
	"",
	"",
	"",
	"",
	"",
	"!Flamestrike!",
	SCHOOL_CONJURATION,
	MANA_FIRE
    },

    {
	"fly",			{ L_APP },
	spell_fly,		TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_fly,			10,	18,
	"",
	"",
	"",
	"",
	"",
	"",
	"You slowly float to the ground.",
	SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
	"gate",			{ L_APP },
	spell_gate,		TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			50,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Gate!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_EARTH
    },

    {
	"giant strength",	{ L_APP },
	spell_giant_strength,	TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_giant_strength,	20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel weaker.",
	SCHOOL_ALTERATION,
	MANA_EARTH
    },

    {
	"harm",			{ L_APP },
	spell_harm,		TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			35,	12,
	"divine power",
	"",
	"",
	"",
	"",
	"",
	"!Harm!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"heal",			{ L_APP },
	spell_heal,		TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			50,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Heal!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"identify",		{ L_APP },
	spell_identify,		TAR_OBJ_INV,		FALSE,
	NULL,			12,	24,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Identify!",
	SCHOOL_DIVINATION,
	MANA_ANY
    },

    {
	"infravision",		{ L_APP },
	spell_infravision,	TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_infravision,	5,	18,
	"",
	"",
	"",
	"",
	"",
	"",
	"You no longer see in the dark.",
	SCHOOL_ILLUSION,
	MANA_FIRE
    },

    {
	"invis",		{ L_APP },
	spell_invis,		TAR_CHAR_DEFENSIVE,	FALSE,
	&spl_invis,		5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You are no longer invisible.",
	SCHOOL_ILLUSION,
	MANA_AIR
    },

    {
	"know alignment",	{ L_APP },
	spell_know_alignment,	TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			9,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Know Alignment!",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"lightning bolt",	{ L_APP },
	spell_lightning_bolt,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"lightning bolt",
	"",
	"",
	"",
	"",
	"",
	"!Lightning Bolt!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    },

    {
	"locate object",	{ L_APP },
	spell_locate_object,	TAR_IGNORE,		FALSE,
	NULL,			20,	18,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Locate Object!",
	SCHOOL_DIVINATION,
	MANA_ANY
    },

    {
	"magic missile",	{ L_APP },
	spell_magic_missile,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"magic missile",
	"",
	"",
	"",
	"",
	"",
	"!Magic Missile!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    },

    {
	"mass heal",		{ L_APP },
	spell_mass_heal,	TAR_IGNORE,		TRUE,
	NULL,           	50,	24,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Mass Heal!",
	SCHOOL_NECROMANCY,
	MANA_EARTH
    },

    {
	"mass invis",		{ L_APP },
	spell_mass_invis,	TAR_IGNORE,		FALSE,
	&spl_mass_invis,	20,	24,
	"",
	"",
	"",
	"",
	"",
	"",
	"You are no longer invisible.",
	SCHOOL_ILLUSION,
	MANA_AIR
    },

    {
        "mute",			{ L_APP },
        spell_mute,		TAR_CHAR_OFFENSIVE,	TRUE,
        &spl_mute,		20,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You are no longer muted.",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
        MANA_WATER
    },

    {
	"pass door",		{ L_APP },
	spell_pass_door,	TAR_CHAR_SELF,		FALSE,
	NULL,			20,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel solid again.",
	SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
	"plague",		{ L_APP },
	spell_plague,		TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_plague,		20,	12,
	"sickness",
	"",
	"",
	"",
	"",
	"",
	"Your sores vanish.",
	SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"poison",		{ L_APP },
	spell_poison,		TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_poison,		10,	12,
	"burning blood",
	"",
	"",
	"",
	"",
	"",
	"You feel less sick.",
	SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"polymorph other",	{ L_APP },
	spell_polymorph_other,	TAR_CHAR_DEFENSIVE,	TRUE,
	NULL,			20,	0,
	"",
	"",
	"",
	"",
	"",
	"",
	"Your body feels familiar again.",
	SCHOOL_ALTERATION,
	MANA_ANY
    },

    {
	"protection",		{ L_APP },
	spell_protection_evil,	TAR_CHAR_SELF,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less protected.",
	SCHOOL_ABJURATION,
	MANA_FIRE
    },

    {
	"protection evil",	{ L_APP },
	spell_protection_evil,	TAR_CHAR_SELF,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less protected.",
	SCHOOL_ABJURATION,
	MANA_FIRE
    },

    {
	"protection good",	{ L_APP },
	spell_protection_good,	TAR_CHAR_SELF,		FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less protected.",
	SCHOOL_ABJURATION,
	MANA_FIRE
    },

    {                                  
        "recharge item",        { L_APP },
        spell_recharge_item,    TAR_OBJ_INV,            FALSE,
        NULL,                   25,     12,
        "blunder",
	"",
	"",
	"",
	"",
	"",
        "!Recharge Item!",
        SCHOOL_INVOCATION | SCHOOL_ENCHANTMENT,
        MANA_ANY
    }, 

    {
	"refresh",		{ L_APP },
	spell_refresh,		TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			12,	18,
	"refresh",
	"",
	"",
	"",
	"",
	"",
	"!Refresh!",
	SCHOOL_ALTERATION,
	MANA_EARTH
    },

    {
        "remove alignment",	{ L_APP },
        spell_remove_alignment,	TAR_OBJ_INV,		FALSE,
        NULL,			10,	12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Remove Alignment!",
	SCHOOL_ABJURATION,
        MANA_WATER
    },

    {
	"remove curse",		{ L_APP },
	spell_remove_curse,	TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Remove Curse!",
	SCHOOL_ABJURATION,
	MANA_WATER
    },

    {
        "remove silence",	{ L_APP },
        spell_remove_silence,	TAR_CHAR_DEFENSIVE,	TRUE,
        NULL,			15,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Remove Silence!",
	SCHOOL_ABJURATION | SCHOOL_NECROMANCY,
        MANA_WATER
    },

    {
	"sanctuary",		{ L_APP },
	spell_sanctuary,	TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			75,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"The white aura around your body fades.",
	SCHOOL_ABJURATION,
	MANA_WATER
    },

    {
	"shield",		{ L_APP },
	spell_shield,		TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			12,	18,
	"",
	"",
	"",
	"",
	"",
	"",
	"Your force shield shimmers then fades away.",
	SCHOOL_CONJURATION,
	MANA_ANY
    },

    {
	"shocking grasp",	{ L_APP },
	spell_shocking_grasp,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			15,	12,
	"shocking grasp",
	"",
	"",
	"",
	"",
	"",
	"!Shocking Grasp!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    },

    {
	"sleep",		{ L_APP },
	spell_sleep,		TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_sleep,		15,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"You feel less tired.",
	SCHOOL_ENCHANTMENT | SCHOOL_CHARM,
	MANA_EARTH
    },

    {
	"stone skin",		{ L_APP },
	spell_stone_skin,	TAR_CHAR_SELF,		TRUE,
	NULL,			12,	18,
	"",
	"",
	"",
	"",
	"",
	"",
	"Your skin feels soft again.",
	SCHOOL_ALTERATION,
	MANA_EARTH
    },

    {
	"summon",		{ L_APP },
	spell_summon,		TAR_IGNORE,		FALSE,
	NULL,			50,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Summon!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

    {
	"teleport",		{ L_APP },
	spell_teleport,		TAR_CHAR_SELF,		TRUE,
	NULL,	 		35,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Teleport!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

    {
	"turn undead",		{ L_APP },
	spell_turn_undead,	TAR_CHAR_OFFENSIVE,	TRUE,
	&spl_turn_undead,	10,	12,
	"divine exorcism",
	"",
	"",
	"",
	"",
	"",
	"!Turn undead!",
	SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"ventriloquate",	{ L_APP },
	spell_ventriloquate,	TAR_IGNORE,		TRUE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Ventriloquate!",
	SCHOOL_PHANTASM,
	MANA_AIR
    },

    {
	"weaken",		{ L_APP },
	spell_weaken,		TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			20,	12,
	"weakening spell",
	"",
	"",
	"",
	"",
	"",
	"You feel stronger.",
	SCHOOL_NECROMANCY,
	MANA_WATER
    },

    {
	"word of recall",	{ L_APP },
	spell_word_of_recall,	TAR_CHAR_SELF,		TRUE,
	NULL,			5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Word of Recall!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

/*
 * Dragon breath.
 */
    {
	"acid breath",		{ L_APP },
	spell_acid_breath,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			50,	12,
	"breath of acid",
	"",
	"",
	"",
	"",
	"",
	"!Acid Breath!",
	SCHOOL_EVOCATION,
	MANA_WATER
    },

    {
	"fire breath",		{ L_APP },
	spell_fire_breath,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			50,	12,
	"breath of flame",
	"",
	"",
	"",
	"",
	"",
	"!Fire Breath!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    },

    {
	"frost breath",		{ L_APP },
	spell_frost_breath,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			50,	12,
	"breath of frost",
	"",
	"",
	"",
	"",
	"",
	"!Frost Breath!",
	SCHOOL_EVOCATION,
	MANA_WATER
    },

    {
	"gas breath",		{ L_APP },
	spell_gas_breath,	TAR_IGNORE,		TRUE,
	NULL,			50,	12,
	"breath of gas",
	"",
	"",
	"",
	"",
	"",
	"!Gas Breath!",
	SCHOOL_EVOCATION,
	MANA_AIR
    },

    {
	"lightning breath",	{ L_APP },
	spell_lightning_breath,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			50,	12,
	"breath of lightning",
	"",
	"",
	"",
	"",
	"",
	"!Lightning Breath!",
	SCHOOL_EVOCATION,
	MANA_ANY
    },

/*
 *  Spells for mega1.are from Glop/Erkenbrand.
 */
    {
        "general purpose",      { L_APP },
	spell_general_purpose,  TAR_CHAR_OFFENSIVE,     TRUE,
	NULL,                   0,      12,
	"general purpose ammo",
	"",
	"",
	"",
	"",
	"",
	"!General Purpose Ammo!",
	SCHOOL_NONE,
	MANA_NONE
    },

    {
        "high explosive",       { L_APP },
	spell_high_explosive,   TAR_CHAR_OFFENSIVE,     TRUE,
	NULL,                   0,      12,
	"high explosive ammo", 
	"",
	"",
	"",
	"",
	"",
	"!High Explosive Ammo!",
	SCHOOL_NONE,
	MANA_NONE
    },

    /*
     * Psionicist spell/skill definitions
     * Psi class conceived, created, and coded by Thelonius (EnvyMud)
     */

    {
        "adrenaline control",   { L_APP },
        spell_adrenaline_control,       TAR_CHAR_SELF,  FALSE,
        NULL,                           6,      12,
        "",
	"",
	"",
	"",
	"",
	"",
        "The adrenaline rush wears off.",
	SCHOOL_ALTERATION,
        MANA_WATER
    },

    {
        "agitation",            { L_APP },
        spell_agitation,        TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   10,     12,
        "molecular agitation",
	"",
	"",
	"",
	"",
	"",
        "!Agitation!",
        SCHOOL_EVOCATION,
        MANA_AIR
    },

    {
        "aura sight",           { L_APP },
        spell_aura_sight,       TAR_CHAR_DEFENSIVE,     FALSE,
        NULL,                   9,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Aura Sight!",
        SCHOOL_DIVINATION,
        MANA_FIRE
    },

    {
        "awe",                  { L_APP },
        spell_awe,              TAR_CHAR_DEFENSIVE,     FALSE,
        NULL,                   35,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Awe!",
        SCHOOL_PHANTASM,
        MANA_WATER
    },

    {
        "ballistic attack",     { L_APP },
        spell_ballistic_attack, TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   5,     12,
        "ballistic attack",
	"",
	"",
	"",
	"",
	"",
        "!Ballistic Attack!",
        SCHOOL_EVOCATION,
        MANA_AIR
    },

    {
        "biofeedback",          { L_APP },
        spell_biofeedback,      TAR_CHAR_SELF,          TRUE,
        NULL,                   75,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "Your biofeedback is no longer effective.",
        SCHOOL_ALTERATION,
        MANA_WATER
    },

    {
        "cell adjustment",      { L_APP },
        spell_cell_adjustment,  TAR_CHAR_SELF,          TRUE,
        NULL,                   8,     12,
        "", 
	"",
	"",
	"",
	"",
	"",
        "!Cell Adjustment!",
        SCHOOL_ALTERATION,
        MANA_EARTH
    },

    {
        "combat mind",          { L_APP },
        spell_combat_mind,      TAR_CHAR_DEFENSIVE,     FALSE,
        NULL,                   15,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "Your battle sense has faded.",
	SCHOOL_EVOCATION | SCHOOL_SUMMONING,
        MANA_EARTH
    },

    {
        "complete healing",     { L_APP },
        spell_complete_healing, TAR_CHAR_SELF,          TRUE,
        NULL,                   100,    12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Complete Healing!",
	SCHOOL_NECROMANCY,
        MANA_EARTH
    },

    {
        "control flames",       { L_APP },
        spell_control_flames,   TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   15,     12,
        "tongue of flame",
	"",
	"",
	"",
	"",
	"",
        "!Control Flames!",
        SCHOOL_EVOCATION,
        MANA_FIRE
    },

    {
        "create sound",         { L_APP },
        spell_create_sound,     TAR_CHAR_DEFENSIVE,     TRUE,
        NULL,                   5,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Create Sound!",
        SCHOOL_PHANTASM,
        MANA_AIR
    },

    {
        "death field",          { L_APP },
        spell_death_field,      TAR_IGNORE,             TRUE,
        NULL,                   200,    18,
        "field of death",
	"",
	"",
	"",
	"",
	"",
        "!Death Field!",
        SCHOOL_EVOCATION | SCHOOL_NECROMANCY,
        MANA_FIRE
    },

    {
        "detonate",             { L_APP },
        spell_detonate,         TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   35,     24,
        "detonation",
	"",
	"",
	"",
	"",
	"",
        "!Detonate!",
        SCHOOL_EVOCATION,
        MANA_FIRE
    },

    {
        "disintegrate",         { L_APP },
        spell_disintegrate,     TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   150,    18,
        "disintegration",
	"",
	"",
	"",
	"",
	"",
        "!Disintegrate!",
        SCHOOL_EVOCATION | SCHOOL_NECROMANCY,
        MANA_FIRE
    },

    {
        "displacement",         { L_APP },
        spell_displacement,     TAR_CHAR_SELF,          FALSE,
        NULL,                   10,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You are no longer displaced.",
        SCHOOL_ALTERATION,
        MANA_AIR
    },

    {
        "domination",           { L_APP },
        spell_domination,       TAR_CHAR_OFFENSIVE,     FALSE,
        &spl_domination,        5,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You regain control of your body.",
	SCHOOL_ENCHANTMENT | SCHOOL_CHARM,
        MANA_ANY
    },

    {
        "ectoplasmic form",     { L_APP },
        spell_ectoplasmic_form, TAR_CHAR_SELF,          FALSE,
        NULL,                   20,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You feel solid again.",
	SCHOOL_ALTERATION,
        MANA_AIR
    },

    {
        "ego whip",             { L_APP },
        spell_ego_whip,         TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   20,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You feel more confident.",
        SCHOOL_PHANTASM,
        MANA_WATER
    },

    {
        "energy containment",   { L_APP },
        spell_energy_containment,       TAR_CHAR_SELF,  FALSE,
        NULL,                           10,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You no longer absorb energy.",
        SCHOOL_ALTERATION,
        MANA_EARTH
    },

    {
        "enhance armor",        { L_APP },
        spell_enhance_armor,    TAR_OBJ_INV,    FALSE,
        NULL,                   100,    24,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Enhance Armor!",
	SCHOOL_ENCHANTMENT,
        MANA_FIRE
    },

    {
        "enhanced strength",    { L_APP },
        spell_enhanced_strength,        TAR_CHAR_SELF,  FALSE,
        NULL,                           20,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You no longer feel so HUGE.",
	SCHOOL_ALTERATION,
        MANA_EARTH
    },

    {
        "flesh armor",          { L_APP },
        spell_flesh_armor,      TAR_CHAR_SELF,          FALSE,
        NULL,                   15,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "Your skin returns to normal.",
	SCHOOL_ALTERATION,
        MANA_EARTH
    },

    {
        "inertial barrier",     { L_APP },
        spell_inertial_barrier, TAR_IGNORE,             TRUE,
        NULL,                   40,     24,
        "",
	"",
	"",
	"",
	"",
	"",
        "Your inertial barrier dissipates.",
        SCHOOL_CONJURATION,
        MANA_AIR
    },

    {
        "inflict pain",         { L_APP },
        spell_inflict_pain,     TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   10,     12,
        "mindpower",
	"",
	"",
	"",
	"",
	"",
        "!Inflict Pain!",
	SCHOOL_EVOCATION,
        MANA_FIRE
    },

    {
        "intellect fortress",   { L_APP },
        spell_intellect_fortress,       TAR_IGNORE,     FALSE,
        NULL,                           25,     24,
        "", 
	"",
	"",
	"",
	"",
	"",
        "Your intellectual fortress crumbles.",
        SCHOOL_EVOCATION,
        MANA_ANY
    },

    {
        "lend health",          { L_APP },
        spell_lend_health,      TAR_CHAR_DEFENSIVE,     TRUE,
        NULL,                   10,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Lend Health!",
        SCHOOL_NECROMANCY,
        MANA_EARTH
    },

    {
        "levitation",           { L_APP },
        spell_levitation,       TAR_CHAR_DEFENSIVE,     FALSE,
        &spl_levitation,        10,     18,
        "",
	"",
	"",
	"",
	"",
	"",
        "You slowly float to the ground.",
        SCHOOL_ALTERATION,
        MANA_AIR
    },

    {
        "mental barrier",       { L_APP },
        spell_mental_barrier,   TAR_CHAR_SELF,          FALSE,
        NULL,                   8,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "Your mental barrier breaks down.",
	SCHOOL_CONJURATION,
        MANA_EARTH
    },

    {
        "mind thrust",          { L_APP },
        spell_mind_thrust,      TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   8,     12,
        "mind thrust",
	"",
	"",
	"",
	"",
	"",
        "!Mind Thrust!",
        SCHOOL_PHANTASM,
        MANA_WATER
    },

    {
        "project force",        { L_APP },
        spell_project_force,    TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   18,     12,
        "projected force",
	"",
	"",
	"",
	"",
	"",
        "!Project Force!",
        SCHOOL_EVOCATION,
        MANA_EARTH
    },

    {
        "psionic blast",        { L_APP },
        spell_psionic_blast,    TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   25,     12,
        "psionic blast",
	"",
	"",
	"",
	"",
	"",
        "!Psionic Blast!",
        SCHOOL_EVOCATION,
        MANA_FIRE
    },

    {
        "psychic crush",        { L_APP },
        spell_psychic_crush,    TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   15,     18,
        "psychic crush",
	"",
	"",
	"",
	"",
	"",
        "!Psychic Crush!",
        SCHOOL_EVOCATION,
        MANA_EARTH
    },

    {
        "psychic drain",        { L_APP },
        spell_psychic_drain,    TAR_CHAR_OFFENSIVE,     TRUE,
        NULL,                   20,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You no longer feel drained.",
	SCHOOL_NECROMANCY,
        MANA_FIRE
    },

    {
        "psychic healing",      { L_APP },
        spell_psychic_healing,  TAR_CHAR_SELF,          TRUE,
        NULL,                   20,      12,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Psychic Healing!",
	SCHOOL_NECROMANCY,
        MANA_EARTH
    },

    {
        "share strength",       { L_APP },
        spell_share_strength,   TAR_CHAR_DEFENSIVE,     FALSE,
        NULL,                   8,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You no longer share strength with another.",
	SCHOOL_CONJURATION,
        MANA_EARTH
    },

    {
        "thought shield",       { L_APP },
        spell_thought_shield,   TAR_CHAR_SELF,          FALSE,
        NULL,                   5,     12,
        "",
	"",
	"",
	"",
	"",
	"",
        "You no longer feel so protected.",
	SCHOOL_CONJURATION,
        MANA_ANY
    },

    {
        "ultrablast",           { L_APP },
        spell_ultrablast,       TAR_IGNORE,             TRUE,
        NULL,                   75,     24,
        "ultrablast",
	"",
	"",
	"",
	"",
	"",
        "!Ultrablast!",
        SCHOOL_EVOCATION,
        MANA_FIRE
    },

/*
 * Spells & skills here by Zen.
 */
    {
        "meteor swarm",		{ L_APP },
        spell_meteor_swarm,	TAR_IGNORE,     TRUE,
        NULL,			20,       12,
        "meteor swarm",
	"",
	"",
	"",
	"",
	"",
	"!Meteor Swarm!",
        SCHOOL_EVOCATION,
        MANA_AIR
    },

    {   
	"chain lightning",	{ L_APP },
	spell_chain_lightning,	TAR_CHAR_OFFENSIVE,	TRUE,
	NULL,			25,	12,
	"lightning",
	"",
	"",
	"",
	"",
	"",
	"!Chain Lightning!",
	SCHOOL_EVOCATION,
	MANA_FIRE
    }, 

    {
	"wizard eye",		{ L_APP },
	spell_wizard_eye, 	TAR_IGNORE,		FALSE,
	NULL,			40,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Wizard Eye!",
	SCHOOL_DIVINATION,
	MANA_AIR
    },
    
    {
	"vortex lift",		{ L_APP },
	spell_vortex_lift,	TAR_IGNORE,		FALSE,
	NULL,			60,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Vortex Lift!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },
    
    {
	"mass vortex lift",	{ L_APP },
	spell_mass_vortex_lift,	TAR_IGNORE,		FALSE,
	&spl_mass_vortex_lift,	150,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Mass Vortex Lift!",
	SCHOOL_CONJURATION | SCHOOL_SUMMONING,
	MANA_AIR
    },

    {
	"detect good",		{ L_APP },
	spell_detect_good,	TAR_CHAR_SELF,		FALSE,
	&spl_detect_good,	5,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"The gold in your vision disappears.",
	SCHOOL_DIVINATION,
	MANA_FIRE
    },

    {
	"dispel good",		{ L_APP },
	spell_dispel_good,	TAR_CHAR_OFFENSIVE,	FALSE,
	NULL,			15,	12,
	"unholy fire",
	"",
	"",
	"",
	"",
	"",
	"!Dispel Good!",
	SCHOOL_ABJURATION,
	MANA_FIRE
    },

    {
	"power word lag",		{ L_APP },
	spell_power_word_lag,	TAR_CHAR_DEFENSIVE,	FALSE,
	NULL,			15,	6,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Power Word Lag!",
	SCHOOL_ABJURATION,
	MANA_EARTH
    },

    {
        "portal",               { L_APP },
        spell_portal,           TAR_IGNORE,             FALSE,
        NULL,                   100,     24,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Portal!",
        SCHOOL_CONJURATION | SCHOOL_ENCHANTMENT,
        MANA_AIR
    },

    {
        "nexus",                { L_APP },
        spell_nexus,            TAR_IGNORE,             FALSE,
        NULL,                   150,   36,
        "",
	"",
	"",
	"",
	"",
	"",
        "!Nexus!",
        SCHOOL_CONJURATION | SCHOOL_ENCHANTMENT,
        MANA_AIR
    },

    {
	"create buffet",	{ L_APP },
	spell_create_buffet,	TAR_IGNORE,		FALSE,
	NULL,			33,	12,
	"",
	"",
	"",
	"",
	"",
	"",
	"!Create Buffet!",
	SCHOOL_CONJURATION,
	MANA_EARTH
    },

    {
	"flaming shield",	{ L_APP },
	spell_flame_shield,  	TAR_CHAR_SELF,  	FALSE,
	&spl_flame_shield,	100,	60,
	"flaming shield",
	"",
	"",
	"",
	"",
	"",
	"The flaming shield around you dies out.",
	SCHOOL_EVOCATION | SCHOOL_ALTERATION,
	MANA_FIRE
    },

    {
	"frost shield",		{ L_APP },
	spell_frost_shield,  	TAR_CHAR_SELF,  	FALSE,
	&spl_frost_shield,	100,	60,
	"frost shield",
	"",
	"",
	"",
	"",
	"",
	"The frost shield around you melts and evaporates into nothingness.",
	SCHOOL_EVOCATION | SCHOOL_ALTERATION,
	MANA_WATER
    },

    {
	"shock shield",		{ L_APP },
	spell_shock_shield,  	TAR_CHAR_SELF,  	FALSE,
	&spl_shock_shield,	100,	60,
	"shock shield",
	"",
	"",
	"",
	"",
	"",
	"The torrents of cascading energy suddenly fade away.",
	SCHOOL_EVOCATION | SCHOOL_ALTERATION,
	MANA_AIR
    },

    {
	"ethereal shield",	{ L_APP },
	spell_ethereal_shield, 	TAR_CHAR_SELF,  	FALSE,
	NULL,			50,	60,
	"",
	"",
	"",
	"",
	"",
	"",
	"You are returned to the mundane energy continuum.",
	SCHOOL_ALTERATION,
	MANA_FIRE
    },
};