[BACK]Return to rogue.c CVS log [TXT][DIR] Up to [contributed] / early-roguelike / arogue7

Annotation of early-roguelike/arogue7/rogue.c, Revision 1.1

1.1     ! rubenllo    1: /*
        !             2:  * rogue.c  -  Global game variables
        !             3:  *
        !             4:  * Advanced Rogue
        !             5:  * Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Based on "Rogue: Exploring the Dungeons of Doom"
        !             9:  * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
        !            10:  * All rights reserved.
        !            11:  *
        !            12:  * See the file LICENSE.TXT for full copyright and licensing information.
        !            13:  */
        !            14:
        !            15: #include <ctype.h>
        !            16: #include "curses.h"
        !            17: #include "rogue.h"
        !            18: #ifdef PC7300
        !            19: #include <sys/window.h>
        !            20: #endif
        !            21:
        !            22: #ifdef BSD
        !            23: char
        !            24: tolower(c)
        !            25: {
        !            26:     if (isupper(c)) return(_tolower(c));
        !            27:     else return(c);
        !            28: }
        !            29: char
        !            30: toupper(c)
        !            31: {
        !            32:     if (islower(c)) return(_toupper(c));
        !            33:     else return(c);
        !            34: }
        !            35: #endif
        !            36:
        !            37: /*
        !            38:  * Now all the global variables
        !            39:  */
        !            40: struct trap traps[MAXTRAPS];
        !            41: struct room rooms[MAXROOMS];           /* One for each room -- A level */
        !            42: struct room *oldrp;                    /* Roomin(&player.t_oldpos) */
        !            43: struct thing player;                   /* The rogue */
        !            44: struct object *cur_armor;              /* What a well dresssed rogue wears */
        !            45: struct object *cur_ring[NUM_FINGERS];  /* Which rings are being worn */
        !            46: struct object  *cur_misc[NUM_MM];      /* which MM's are in use */
        !            47: int cur_relic[MAXRELIC];               /* Currently used relics */
        !            48: struct linked_list *lvl_obj = NULL;
        !            49: struct linked_list *mlist = NULL;
        !            50: struct linked_list *tlist = NULL;      /* list of monsters fallen down traps */
        !            51: struct linked_list *monst_dead = NULL; /* monster killed by monster    */
        !            52: struct object *cur_weapon = NULL;
        !            53: int char_type = -1;                    /* what type of character is player */
        !            54: int foodlev = 1;                       /* how fast he eats food */
        !            55: int ntraps;                            /* Number of traps on this level */
        !            56: int trader = 0;                                /* no. of purchases */
        !            57: int curprice = -1;                     /* current price of item */
        !            58: int seed;                              /* Random number seed */
        !            59: int dnum;                              /* Dungeon number */
        !            60: int max_level;                         /* Deepest player has gone ever */
        !            61: int cur_max;                           /* Deepest player has gone currently */
        !            62: int mpos = 0;
        !            63: int level = 0;
        !            64: int purse = 0;
        !            65: int inpack = 0;
        !            66: int total = 0;
        !            67: int no_food = 0;                       /* how long has he gone with no food */
        !            68: int foods_this_level = 0;              /* foods made per level */
        !            69: int count = 0;
        !            70: int food_left = STOMACHSIZE-MORETIME-1;
        !            71: int group = 1;
        !            72: int hungry_state = F_OKAY;
        !            73: int infest_dam=0;
        !            74: int lost_str=0;
        !            75: int lastscore = -1;
        !            76: int hold_count = 0;
        !            77: int trap_tries = 0;
        !            78: int chant_time = 0;
        !            79: int pray_time = 0;
        !            80: int spell_power = 0;
        !            81: int turns = 0;                         /* Number of turns player has taken */
        !            82: int quest_item = 0;                    /* Item player is looking for */
        !            83: int cols = 0;                          /* number of columns in terminal */
        !            84: int lines = 0;                         /* number of lines on the terminal */
        !            85: char nfloors = -1;                     /* Number of floors in this dungeon */
        !            86: char curpurch[LINELEN];                        /* name of item ready to buy */
        !            87: char PLAYER = VPLAYER;                 /* what the player looks like */
        !            88: char take;                             /* Thing the rogue is taking */
        !            89: char prbuf[LINELEN*2];                 /* Buffer for sprintfs */
        !            90: char outbuf[BUFSIZ];                   /* Output buffer for stdout */
        !            91: char runch;                            /* Direction player is running */
        !            92: char *s_names[MAXSCROLLS];             /* Names of the scrolls */
        !            93: char *p_colors[MAXPOTIONS];            /* Colors of the potions */
        !            94: char *r_stones[MAXRINGS];              /* Stone settings of the rings */
        !            95: char *ws_made[MAXSTICKS];              /* What sticks are made of */
        !            96: char whoami[LINELEN];                  /* Name of player */
        !            97: char huh[LINELEN];                     /* The last message printed */
        !            98: char *s_guess[MAXSCROLLS];             /* Players guess at what scroll is */
        !            99: char *p_guess[MAXPOTIONS];             /* Players guess at what potion is */
        !           100: char *r_guess[MAXRINGS];               /* Players guess at what ring is */
        !           101: char *ws_guess[MAXSTICKS];             /* Players guess at what wand is */
        !           102: char *m_guess[MAXMM];                  /* Players guess at what MM is */
        !           103: char *ws_type[MAXSTICKS];              /* Is it a wand or a staff */
        !           104: char file_name[LINELEN];               /* Save file name */
        !           105: char score_file[LINELEN];              /* Score file name */
        !           106: char home[LINELEN];                    /* User's home directory */
        !           107: WINDOW *cw;                            /* Window that the player sees */
        !           108: WINDOW *hw;                            /* Used for the help command */
        !           109: WINDOW *mw;                            /* Used to store monsters */
        !           110: WINDOW *msgw;                          /* Used to display messages */
        !           111: bool pool_teleport = FALSE;            /* just teleported from a pool */
        !           112: bool inwhgt = FALSE;                   /* true if from wghtchk() */
        !           113: bool after;                            /* True if we want after daemons */
        !           114: bool waswizard;                                /* Was a wizard sometime */
        !           115: bool s_know[MAXSCROLLS];               /* Does he know what a scroll does */
        !           116: bool p_know[MAXPOTIONS];               /* Does he know what a potion does */
        !           117: bool r_know[MAXRINGS];                 /* Does he know what a ring does */
        !           118: bool ws_know[MAXSTICKS];               /* Does he know what a stick does */
        !           119: bool m_know[MAXMM];                    /* Does he know what a MM does */
        !           120: bool playing = TRUE;
        !           121: bool running = FALSE;
        !           122: bool wizard = FALSE;
        !           123: bool notify = TRUE;
        !           124: bool fight_flush = FALSE;
        !           125: bool terse = FALSE;
        !           126: bool auto_pickup = TRUE;
        !           127: bool menu_overlay = TRUE;
        !           128: bool door_stop = FALSE;
        !           129: bool jump = FALSE;
        !           130: bool slow_invent = FALSE;
        !           131: bool firstmove = FALSE;
        !           132: bool askme = TRUE;
        !           133: bool in_shell = FALSE;
        !           134: bool daytime = TRUE;
        !           135: bool use_savedir = FALSE;
        !           136: FILE *scoreboard = NULL;               /* Score file */
        !           137: FILE *logfile = NULL;
        !           138: LEVTYPE levtype;                       /* type of level i'm on */
        !           139:
        !           140: char *nothing  =       "Nothing seems to happen.";
        !           141: char *spacemsg =       "--Press space to continue--";
        !           142: char *morestr  =       "-- More --";
        !           143: char *retstr   =       "[Press return to continue]";
        !           144: #ifdef PC7300
        !           145: struct uwdata wdata, oldwin;   /* Static window information */
        !           146: char oldtext[WTXTNUM][WTXTLEN]; /* Saved window text */
        !           147: #endif
        !           148:
        !           149: /*
        !           150:  * This lays out all the class specific details
        !           151:  *
        !           152:  * Here are the beginning experience levels for all players.
        !           153:  * All further experience levels are computed by muliplying by 2
        !           154:  * up through MAXDOUBLE. Then exp pts are calculated by adding
        !           155:  * in the cap figure. You must change MAXDOUBLE if you change the
        !           156:  * cap figure.
        !           157:  */
        !           158: struct character_types char_class[NUM_CHARTYPES] = {
        !           159: /* name                exppts  cap     hitpts  Base    Maxlvl, Factor, Offset, Range */
        !           160: { "fighter",   80,     1310720, 12,    10,     30,     2,      1,      2 },
        !           161: { "ranger",    140,    2293760,  8,    10,     20,     2,      1,      2 },
        !           162: { "paladin",   120,    1966080, 10,    10,     23,     2,      1,      2 },
        !           163: { "magician",  130,    2129920,  6,    9,      18,     2,      1,      5 },
        !           164: { "cleric",    110,    1802240,  8,    10,     19,     2,      1,      3 },
        !           165: { "thief",     75,     1228800,  6,    10,     25,     2,      1,      4 },
        !           166: { "assassin",  85,     1392640,  6,    10,     25,     2,      1,      4 },
        !           167: { "druid",     100,    1638400,  8,    10,     19,     2,      1,      3 },
        !           168: { "monk",      95,     1556480,  6,    10,     25,     2,      1,      3 },
        !           169: { "monster",   0,      0,        8,    7,      30,     1,      0,      2 },
        !           170: };
        !           171:
        !           172:
        !           173: /*
        !           174:  * This array lists the names of the character's abilities.  It must be ordered
        !           175:  * according to the ability definitions in rogue.h.
        !           176:  */
        !           177:
        !           178: char *abilities[NUMABILITIES] = {
        !           179:   "Intelligence", "Strength", "Wisdom", "Dexterity", "Constitution", "Charisma"
        !           180: };
        !           181:
        !           182: /*
        !           183:  * NOTE: the ordering of the points in this array is critical. They MUST
        !           184:  *      be listed in the following sequence:
        !           185:  *
        !           186:  *             7   4   6
        !           187:  *             1   0   2
        !           188:  *             5   3   8
        !           189:  */
        !           190:
        !           191: coord grid[9] = {{0,0},
        !           192:                 { 0,-1}, { 0, 1}, {-1, 0}, { 1, 0},
        !           193:                 {-1,-1}, { 1, 1}, { 1,-1}, {-1, 1}
        !           194:                };
        !           195:
        !           196: struct death_type deaths[DEATHNUM] = {
        !           197:     { D_ARROW,         "an arrow"},
        !           198:     { D_DART,          "a dart"},
        !           199:     { D_BOLT,          "a bolt"},
        !           200:     { D_POISON,                "poison"},
        !           201:     { D_POTION,                "a cursed potion"},
        !           202:     { D_PETRIFY,       "petrification"},
        !           203:     { D_SUFFOCATION,   "suffocation"},
        !           204:     { D_INFESTATION,   "a parasite"},
        !           205:     { D_DROWN,         "drowning"},
        !           206:     { D_ROT,           "body rot"},
        !           207:     { D_CONSTITUTION,  "poor health"},
        !           208:     { D_STRENGTH,      "being too weak"},
        !           209:     { D_SIGNAL,                "a bug"},
        !           210:     { D_CHOKE,         "dust of choking"},
        !           211:     { D_STRANGLE,      "strangulation"},
        !           212:     { D_FALL,          "a fall"},
        !           213:     { D_RELIC,         "an artifact's wrath"},
        !           214:     { D_STARVATION,    "starvation"},
        !           215:     { D_FOOD_CHOKE,    "choking on food"},
        !           216:     { D_SCROLL,                "reading a scroll"},
        !           217: };
        !           218:
        !           219:
        !           220: /*
        !           221:  * weapons and their attributes
        !           222:  */
        !           223: struct init_weps weaps[MAXWEAPONS] = {
        !           224:     { "mace",          "2d4",  "1d3", NONE,    ISMETAL, 3, 100, 8 },
        !           225:     { "long sword",    "1d12", "1d2", NONE,    ISMETAL, 4, 60, 18 },
        !           226:     { "short bow",     "1d1",  "1d1", NONE,    0, 6, 40, 15 },
        !           227:     { "arrow",         "1d1",  "1d6", BOW,     ISMANY|ISMISL, 1, 5, 1 },
        !           228:     { "dagger",                "1d6",  "1d4", NONE,    ISMETAL|ISMISL|ISMANY,1,7,2},
        !           229:     { "rock",          "1d2",  "1d4", SLING,   ISMANY|ISMISL, 1, 5, 1 },
        !           230:     { "two-handed sword","3d6",  "1d2", NONE,  ISMETAL, 5, 250, 40 },
        !           231:     { "sling",         "0d0",  "0d0", NONE,    0, 1, 5, 1 },
        !           232:     { "dart",          "1d1",  "1d3", NONE,    ISMANY|ISMISL, 1, 5, 1 },
        !           233:     { "crossbow",      "1d1",  "1d1", NONE,    0, 6, 100, 15 },
        !           234:     { "crossbow bolt", "1d2", "1d12", CROSSBOW,ISMANY|ISMISL, 1, 7, 1 },
        !           235:     { "spear",         "1d8",  "2d6", NONE,    ISMANY|ISMETAL|ISMISL,2,20,8},
        !           236:     { "trident",       "3d4",  "1d4", NONE,    ISMETAL, 4, 50, 20 },
        !           237:     { "spetum",                "2d6",  "1d3", NONE,    ISMETAL, 4, 50, 20 },
        !           238:     { "bardiche",      "3d4",  "1d2", NONE,    ISMETAL, 4, 125, 20 },
        !           239:     { "pike",          "1d12", "1d8", NONE,    ISMETAL, 4, 80, 18 },
        !           240:     { "bastard sword", "2d8",  "1d2", NONE,    ISMETAL, 5, 100, 30 },
        !           241:     { "halberd",       "2d6",  "1d3", NONE,    ISMETAL, 4, 175, 10 },
        !           242:     { "battle axe",    "1d8",  "1d3", NONE,    ISMETAL, 3, 80, 10 },
        !           243: };
        !           244:
        !           245: struct init_armor armors[MAXARMORS] = {
        !           246:        { "leather armor",              11,  8,  70, 100 },
        !           247:        { "ring mail",                  22,  7,  50, 250 },
        !           248:        { "studded leather armor",      33,  7,  50, 200 },
        !           249:        { "scale mail",                 45,  6,  70, 250 },
        !           250:        { "padded armor",               57,  6, 150, 150 },
        !           251:        { "chain mail",                 69,  5, 100, 300 },
        !           252:        { "splint mail",                80,  4, 150, 350 },
        !           253:        { "banded mail",                90,  4, 150, 350 },
        !           254:        { "plate mail",                 96,  3, 400, 400 },
        !           255:        { "plate armor",                100, 2, 650, 450 },
        !           256: };
        !           257:
        !           258: struct magic_item things[NUMTHINGS] = {
        !           259:     { "potion",                        260,   10 },    /* potion               */
        !           260:     { "scroll",                        260,   30 },    /* scroll               */
        !           261:     { "food",                  180,   20 },    /* food                 */
        !           262:     { "weapon",                         80,    0 },    /* weapon               */
        !           263:     { "armor",                  80,    0 },    /* armor                */
        !           264:     { "ring",                   50,    5 },    /* ring                 */
        !           265:     { "stick",                  60,    0 },    /* stick                */
        !           266:     { "miscellaneous magic",    30,   50 },    /* miscellaneous magic  */
        !           267:     { "artifact",                0,   10 },    /* artifact             */
        !           268: };
        !           269:
        !           270: struct magic_item s_magic[MAXSCROLLS] = {
        !           271:     { "monster confusion",      50, 125, 0, 0 },
        !           272:     { "magic mapping",          50, 150, 0, 0 },
        !           273:     { "light",                  70, 100, 21, 15 },
        !           274:     { "hold monster",           30, 200, 33, 20 },
        !           275:     { "sleep",                  20, 150, 20, 0 },
        !           276:     { "enchantment",           170, 200, 9, 9 },
        !           277:     { "identify",              200, 100, 0, 25 },
        !           278:     { "scare monster",          40, 250, 27, 21 },
        !           279:     { "gold detection",                 30, 110, 0, 0 },
        !           280:     { "teleportation",          60, 165, 10, 20 },
        !           281:     { "create monster",                 30,  75, 0, 0 },
        !           282:     { "remove curse",           70, 120, 9, 15 },
        !           283:     { "petrification",          10, 185, 0, 0 },
        !           284:     { "genocide",               10, 300, 0, 0 },
        !           285:     { "cure disease",           80, 160, 0, 0 },
        !           286:     { "acquirement",            10, 700, 0, 0 },
        !           287:     { "protection",             30, 190, 20, 0 },
        !           288:     { "trap finding",           10, 180, 0, 0 },
        !           289:     { "runes",                  10,  50, 0, 0 },
        !           290:     { "charm monster",          20, 275, 0, 15 },
        !           291: };
        !           292:
        !           293: struct magic_item p_magic[MAXPOTIONS] = {
        !           294:     { "clear thought",          50, 180, 27, 10 },
        !           295:     { "gain ability",          160, 210, 15, 15 },
        !           296:     { "see invisible",          50, 150, 25, 15 },
        !           297:     { "healing",               160, 130, 27, 27 },
        !           298:     { "monster detection",      60, 120, 0, 0 },
        !           299:     { "magic detection",        60, 105, 0, 0 },
        !           300:     { "raise level",            10, 450, 11, 10 },
        !           301:     { "haste self",             90, 180, 30, 5 },
        !           302:     { "restore abilities",     140, 140, 0, 10 },
        !           303:     { "phasing",                50, 210, 21, 20 },
        !           304:     { "invisibility",           50, 230, 0, 15 },
        !           305:     { "flying",                         40, 130, 0, 20 },
        !           306:     { "food detection",                 10, 150, 0, 0 },
        !           307:     { "skill",                  10, 200, 20, 10 },
        !           308:     { "fire resistance",        10, 250, 0, 10 },
        !           309:     { "cold resistance",        10, 250, 0, 10 },
        !           310:     { "lightning protection",   10, 250, 0, 10 },
        !           311:     { "poison",                         30, 205, 0, 0 },
        !           312: };
        !           313:
        !           314: struct magic_item r_magic[MAXRINGS] = {
        !           315:     { "protection",             50, 200, 33, 25 },
        !           316:     { "add strength",           60, 200, 33, 25 },
        !           317:     { "sustain ability",        50, 500, 0, 0 },
        !           318:     { "searching",              50, 400, 0, 0 },
        !           319:     { "extra sight",            40, 350, 0, 0 },
        !           320:     { "alertness",              40, 380, 0, 0 },
        !           321:     { "aggravate monster",      30, 100, 100, 0 },
        !           322:     { "dexterity",              60, 220, 33, 25 },
        !           323:     { "increase damage",        60, 220, 33, 25 },
        !           324:     { "regeneration",           40, 600, 0, 0 },
        !           325:     { "slow digestion",                 40, 240, 15, 15 },
        !           326:     { "teleportation",          20, 100, 100, 0 },
        !           327:     { "stealth",                30, 300, 0, 0 },
        !           328:     { "add intelligence",       60, 240, 33, 25 },
        !           329:     { "increase wisdom",        60, 220, 33, 25 },
        !           330:     { "sustain health",                 80, 500, 0,  0 },
        !           331:     { "carrying",               20, 100, 100, 0 },
        !           332:     { "illumination",           30, 520, 0, 0 },
        !           333:     { "delusion",               20, 100, 75, 0 },
        !           334:     { "fear",                   20, 100, 100, 0},
        !           335:     { "heroism",                30, 390, 0, 0 },
        !           336:     { "fire resistance",        40, 400, 0, 0 },
        !           337:     { "warmth",                         40, 400, 0, 0 },
        !           338:     { "vampiric regeneration",  10,1000, 0, 0},
        !           339:     { "free action",            10, 370, 0, 0},
        !           340:     { "teleport control",       10, 700, 0, 0},
        !           341: };
        !           342:
        !           343: struct magic_item ws_magic[MAXSTICKS] = {
        !           344:     { "light",                  90, 120, 20, 20 },
        !           345:     { "striking",               60, 115, 0,  0 },
        !           346:     { "lightning",              35, 200, 0,  0 },
        !           347:     { "fire",                   35, 200, 0,  0 },
        !           348:     { "cold",                   35, 200, 0,  0 },
        !           349:     { "polymorph",              80, 150, 0,  0 },
        !           350:     { "magic missile",          80, 170, 0,  0 },
        !           351:     { "slow",                   80, 220, 25, 20 },
        !           352:     { "drain life",             80, 210, 20, 0 },
        !           353:     { "charging",               70, 400, 0,  0 },
        !           354:     { "teleport",               90, 140, 25, 20 },
        !           355:     { "cancellation",           40, 130, 0,  0 },
        !           356:     { "confusion",              35, 100, 15,  0},
        !           357:     { "disintegration",                 10, 300, 33, 0},
        !           358:     { "petrification",          30, 240, 0,  0},
        !           359:     { "paralyzation",           30, 180, 15,  0},
        !           360:     { "degeneration",           30, 250, 30, 0},
        !           361:     { "curing",                         10, 250, 25, 0},
        !           362:     { "wonder",                         50, 110,  0, 0},
        !           363:     { "fear",                   30, 180,  0, 0},
        !           364: };
        !           365:
        !           366: /*
        !           367:  * WARNING: unique miscellaneous magic items must be put at the end
        !           368:  *         of this list. They MUST be the last items. The function
        !           369:  *         create_obj() in wizard.c depends on it.
        !           370:  */
        !           371: struct magic_item m_magic[MAXMM] = {
        !           372:     { "alchemy jug",             40,   240,  0, 0},
        !           373:     { "beaker of potions",       60,   300,  0, 0},
        !           374:     { "book of spells",                  60,   300,  0, 0},
        !           375:     { "boots of elvenkind",      50,   500,  0, 0},
        !           376:     { "bracers of defense",     140,   100, 15, 0},
        !           377:     { "chime of opening",        50,   250,  0, 0},
        !           378:     { "chime of hunger",         50,   100,100, 0},
        !           379:     { "cloak of displacement",   60,   500,  0, 0},
        !           380:     { "cloak of protection",     70,   200, 15, 0},
        !           381:     { "drums of panic",                  40,   350,  0, 0},
        !           382:     { "dust of disappearance",   40,   300,  0, 0},
        !           383:     { "dust of choking",         30,   100,100, 0},
        !           384:     { "gauntlets of dexterity",          30,   600, 25, 0},
        !           385:     { "gauntlets of ogre power",  30,   600, 25, 0},
        !           386:     { "jewel of attacks",        40,   150,100, 0},
        !           387:     { "keoghtoms ointment",      50,   200,  0, 0},
        !           388:     { "robe of powerlessness",   30,   100,100, 0},
        !           389:     { "gauntlets of fumbling",   30,   100,100, 0},
        !           390:     { "necklace of adaptation",          20,   500,  0, 0},
        !           391:     { "necklace of strangulation",30,   110,100, 0},
        !           392:     { "boots of dancing",        30,   120,100, 0},
        !           393:     { "book of skills",                  20,   650,  0, 0},
        !           394: };
        !           395:
        !           396:
        !           397: struct magic_item rel_magic[MAXRELIC] = {
        !           398:     { "Daggers of Musty Doit",    0, 50000,  0, 0},
        !           399:     { "Cloak of Emori",                   0, 50000,  0, 0},
        !           400:     { "Ankh of Heil",             0, 50000,  0, 0},
        !           401:     { "Staff of Ming",            0, 50000,  0, 0},
        !           402:     { "Wand of Orcus",            0, 50000,  0, 0},
        !           403:     { "Rod of Asmodeus",          0, 50000,  0, 0},
        !           404:     { "Amulet of Yendor",         0, 50000,  0, 0},
        !           405:     { "Mandolin of Brian",        0, 50000,  0, 0},
        !           406:     { "Horn of Geryon",                   0, 50000,  0, 0},
        !           407:     { "Morning Star of Hruggek",   0, 50000,  0, 0},
        !           408:     { "Flail of Yeenoghu",        0, 50000,  0, 0},
        !           409:     { "Eye of Vecna",             0, 50000,  0, 0},
        !           410:     { "Axe of Aklad",             0, 50000,  0, 0},
        !           411:     { "Quill of Nagrom",          0, 50000,  0, 0},
        !           412:     { "Amulet of Stonebones",     0, 50000,  0, 0},
        !           413:     { "Ring of Surtur",                   0, 50000,  0, 0},
        !           414: };
        !           415: /*
        !           416:  * food and fruits that you get
        !           417:  */
        !           418: struct magic_item foods[MAXFOODS] = {
        !           419:     { "food ration",   800, 50, 750,  0},
        !           420:     { "apple",          10, 20, 300,  0},
        !           421:     { "banana",                 10, 20, 300,  0},
        !           422:     { "blueberry",      10, 20, 300,  0},
        !           423:     { "candleberry",    10, 20, 300,  0},
        !           424:     { "caprifig",       10, 20, 300,  0},
        !           425:     { "dewberry",       10, 20, 300,  0},
        !           426:     { "elderberry",     10, 20, 300,  0},
        !           427:     { "gooseberry",     10, 20, 300,  0},
        !           428:     { "guanabana",      10, 20, 300,  0},
        !           429:     { "hagberry",       10, 20, 300,  0},
        !           430:     { "jaboticaba",     10, 20, 300,  0},
        !           431:     { "peach",          10, 20, 300,  0},
        !           432:     { "pitanga",        10, 20, 300,  0},
        !           433:     { "prickly pear",   10, 20, 300,  0},
        !           434:     { "rambutan",       10, 20, 300,  0},
        !           435:     { "sapodilla",      10, 20, 300,  0},
        !           436:     { "soursop",        10, 20, 300,  0},
        !           437:     { "strawberry",     10, 20, 300,  0},
        !           438:     { "sweetsop",       10, 20, 300,  0},
        !           439:     { "whortleberry",   10, 20, 300,  0},
        !           440: };
        !           441:
        !           442: /*
        !           443:  * these are the spells that a magic user can cast
        !           444:  */
        !           445: struct spells magic_spells[MAXSPELLS] = {
        !           446:        { P_TFIND,              3,      TYP_POTION,     0         },
        !           447:        { S_IDENT,              5,      TYP_SCROLL,     0         },
        !           448:        { S_LIGHT,              7,      TYP_SCROLL,     ISBLESSED },
        !           449:        { S_REMOVE,             7,      TYP_SCROLL,     0         },
        !           450:        { S_CONFUSE,            10,     TYP_SCROLL,     0         },
        !           451:        { WS_MISSILE,           15,     TYP_STICK,      0         },
        !           452:        { S_TELEP,              20,     TYP_SCROLL,     0         },
        !           453:        { S_SLEEP,              20,     TYP_SCROLL,     0         },
        !           454:        { P_FLY,                20,     TYP_POTION,     0         },
        !           455:        { P_SEEINVIS,           20,     TYP_POTION,     0         },
        !           456:        { WS_COLD,              25,     TYP_STICK,      0         },
        !           457:        { WS_ELECT,             25,     TYP_STICK,      0         },
        !           458:        { WS_FIRE,              25,     TYP_STICK,      0         },
        !           459:        { P_HASTE,              30,     TYP_POTION,     0         },
        !           460:        { WS_CANCEL,            30,     TYP_STICK,      0         },
        !           461:        { P_PHASE,              40,     TYP_POTION,     0         },
        !           462:        { S_HOLD,               50,     TYP_SCROLL,     0         },
        !           463:        { WS_CHARGE,            55,     TYP_STICK,      ISBLESSED },
        !           464:        { S_PROTECT,            60,     TYP_SCROLL,     0         },
        !           465:        { S_ALLENCH,            70,     TYP_SCROLL,     0         },
        !           466: };
        !           467:
        !           468: /*
        !           469:  * these are the spells that a cleric can cast
        !           470:  */
        !           471: struct spells cleric_spells[MAXPRAYERS] = {
        !           472:        { P_MFIND,              3,      TYP_POTION,     0         },
        !           473:        { P_TFIND,              7,      TYP_POTION,     0         },
        !           474:        { S_LIGHT,              10,     TYP_SCROLL,     ISBLESSED },
        !           475:        { S_REMOVE,             15,     TYP_SCROLL,     0         },
        !           476:        { P_HEALING,            20,     TYP_POTION,     0         },
        !           477:        { P_FFIND,              24,     TYP_POTION,     0         },
        !           478:        { S_FINDTRAPS,          26,     TYP_SCROLL,     0         },
        !           479:        { S_CURING,             27,     TYP_SCROLL,     0         },
        !           480:        { WS_PARALYZE,          30,     TYP_STICK,      ISBLESSED },
        !           481:        { S_MAP,                31,     TYP_SCROLL,     0         },
        !           482:        { P_CLEAR,              32,     TYP_POTION,     0         },
        !           483:        { WS_FEAR,              33,     TYP_STICK,      ISBLESSED },
        !           484:        { P_SEEINVIS,           35,     TYP_POTION,     0         },
        !           485:        { P_RESTORE,            40,     TYP_POTION,     0         },
        !           486:        { P_PHASE,              43,     TYP_POTION,     0         },
        !           487:        { S_TELEP,              45,     TYP_SCROLL,     0         },
        !           488:        { WS_CURING,            50,     TYP_STICK,      ISBLESSED },
        !           489:        { WS_DRAIN,             50,     TYP_STICK,      0         },
        !           490: };
        !           491:
        !           492: /*
        !           493:  * these are the spells that a druid can chant
        !           494:  */
        !           495: struct spells druid_spells[MAXCHANTS] = {
        !           496:        { P_TFIND,              3,      TYP_POTION,     0         },
        !           497:        { P_MFIND,              3,      TYP_POTION,     0         },
        !           498:        { S_LIGHT,              7,      TYP_SCROLL,     ISBLESSED },
        !           499:        { S_CONFUSE,            10,     TYP_SCROLL,     0         },
        !           500:        { S_MAP,                10,     TYP_SCROLL,     0         },
        !           501:        { P_FFIND,              15,     TYP_POTION,     0         },
        !           502:        { P_HEALING,            20,     TYP_POTION,     0         },
        !           503:        { S_CURING,             25,     TYP_SCROLL,     0         },
        !           504:        { P_FLY,                27,     TYP_POTION,     ISBLESSED },
        !           505:        { P_FIRE,               30,     TYP_POTION,     ISBLESSED },
        !           506:        { P_COLD,               30,     TYP_POTION,     ISBLESSED },
        !           507:        { P_LIGHTNING,          30,     TYP_POTION,     ISBLESSED },
        !           508:        { S_HOLD,               35,     TYP_SCROLL,     0         },
        !           509:        { WS_CURING,            40,     TYP_STICK,      ISBLESSED },
        !           510:        { P_PHASE,              45,     TYP_POTION,     0         },
        !           511:        { S_CHARM,              50,     TYP_SCROLL,     ISBLESSED },
        !           512: };
        !           513:
        !           514:
        !           515: /*
        !           516:  * these are the scrolls that a quill can write
        !           517:  */
        !           518: struct quill quill_scrolls[MAXQUILL] = {
        !           519:        { S_GFIND,              4,      },
        !           520:        { S_IDENT,              5,      },
        !           521:        { S_LIGHT,              6,      },
        !           522:        { S_REMOVE,             7,      },
        !           523:        { S_MAP,                10,     },
        !           524:        { S_SLEEP,              20,     },
        !           525:        { S_TELEP,              30,     },
        !           526:        { S_CONFUSE,            40,     },
        !           527:        { S_CURING,             50,     },
        !           528:        { S_HOLD,               70,     },
        !           529:        { S_PROTECT,            90,     },
        !           530:        { S_SCARE,              110,    },
        !           531:        { S_ALLENCH,            130,    },
        !           532: };
        !           533:
        !           534: char *cnames[NUM_CHARTYPES-1][NUM_CNAMES] = {
        !           535: {      "Veteran",                      "Warrior",              /* Fighter */
        !           536:        "Swordsman",                    "Hero",
        !           537:        "Swashbuckler",                 "Myrmidon",
        !           538:        "Champion",                     "Superhero",
        !           539:        "Lord",                         "Lord",
        !           540:        "Lord",                         "Lord",
        !           541:        "Lord",                         "Lord",
        !           542:        "Lord",                         "Lord",
        !           543:        "Lord"
        !           544: },
        !           545: {      "Runner",                       "Strider",              /* Ranger */
        !           546:        "Scout",                        "Courser",
        !           547:        "Tracker",                      "Guide",
        !           548:        "Pathfinder",                   "Ranger",
        !           549:        "Ranger Knight",                "Ranger Lord",
        !           550:        "Ranger Lord",                  "Ranger Lord",
        !           551:        "Ranger Lord",                  "Ranger Lord",
        !           552:        "Ranger Lord",                  "Ranger Lord",
        !           553:        "Ranger Lord"
        !           554: },
        !           555: {      "Gallant",                      "Keeper",               /* Paladin */
        !           556:        "Protector",                    "Defender",
        !           557:        "Warder",                       "Guardian",
        !           558:        "Chevalier",                    "Justiciar",
        !           559:        "Paladin",                      "Paladin",
        !           560:        "Paladin",                      "Paladin",
        !           561:        "Paladin",                      "Paladin",
        !           562:        "Paladin",                      "Paladin",
        !           563:        "Paladin"
        !           564: },
        !           565: {      "Prestidigitator",              "Evoker",               /* Magic User */
        !           566:        "Conjurer",                     "Theurgist",
        !           567:        "Thaumaturgist",                "Magician",
        !           568:        "Enchanter",                    "Warlock",
        !           569:        "Sorcerer",                     "Necromancer",
        !           570:        "Wizard I",                     "Wizard II",
        !           571:        "Wizard III",                   "Wizard IV",
        !           572:        "Wizard V",                     "Wizard VI",
        !           573:        "High Wizard"
        !           574: },
        !           575: {      "Acolyte",                      "Adept",                /* Cleric */
        !           576:        "Priest",                       "Curate",
        !           577:        "Prefect",                      "Canon",
        !           578:        "Lama",                         "Patriarch",
        !           579:        "High Priest",                  "High Priest",
        !           580:        "High Priest",                  "High Priest",
        !           581:        "High Priest",                  "High Priest",
        !           582:        "High Priest",                  "High Priest",
        !           583:        "High Priest"
        !           584: },
        !           585: {      "Rogue",                        "Footpad",              /* Thief */
        !           586:        "Cutpurse",                     "Robber",
        !           587:        "Burglar",                      "Filcher",
        !           588:        "Sharper",                      "Magsman",
        !           589:        "Thief",                        "Master Thief",
        !           590:        "Master Thief",                 "Master Thief",
        !           591:        "Master Thief",                 "Master Thief",
        !           592:        "Master Thief",                 "Master Thief",
        !           593:        "Master Thief"
        !           594: },
        !           595: {      "Bravo",                        "Rutterkin",            /* Assassin */
        !           596:        "Waghalter",                    "Murderer",
        !           597:        "Thug",                         "Killer",
        !           598:        "Cutthroat",                    "Executioner",
        !           599:        "Assassin",                     "Expert Assassin",
        !           600:        "Senior Assassin",              "Chief Assassin",
        !           601:        "Prime Assassin",               "Guildmaster Assassin",
        !           602:        "Grandfather Assassin",         "Grandfather Assassin",
        !           603:        "Grandfather Assassin"
        !           604: },
        !           605: {      "Aspirant",                     "Ovate",                /* Druid */
        !           606:        "Initiate 1st Circle",          "Initiate 2nd Circle",
        !           607:        "Initiate 3rd Circle",          "Initiate 4th Circle",
        !           608:        "Initiate 5th Circle",          "Initiate 6th Circle",
        !           609:        "Initiate 7th Circle",          "Initiate 8th Circle",
        !           610:        "Initiate 9th Circle",          "Druid",
        !           611:        "Archdruid",                    "The Great Druid",
        !           612:        "The Great Druid",              "The Great Druid",
        !           613:        "The Great Druid",
        !           614: },
        !           615: {      "Novice",                       "Initiate",             /* Monk */
        !           616:        "Brother",                      "Disciple",
        !           617:        "Immaculate",                   "Master",
        !           618:        "Superior Master",              "Master of Dragons",
        !           619:        "Master of North Wind",         "Master of West Wind",
        !           620:        "Master of South Wind",         "Master of East Wind",
        !           621:        "Master of Winter",             "Master of Autumn",
        !           622:        "Master of Summer",             "Master of Spring",
        !           623:        "Grand Master"
        !           624: }
        !           625: } ;
        !           626:
        !           627: struct h_list helpstr[] = {
        !           628:     { '?',     "       prints help" },
        !           629:     { '/',     "       identify object" },
        !           630:     { '=',     "       identify screen character" },
        !           631:     { 'h',     "       left" },
        !           632:     { 'j',     "       down" },
        !           633:     { 'k',     "       up" },
        !           634:     { 'l',     "       right" },
        !           635:     { 'y',     "       up & left" },
        !           636:     { 'u',     "       up & right" },
        !           637:     { 'b',     "       down & left" },
        !           638:     { 'n',     "       down & right" },
        !           639:     { 'H',     "       run left" },
        !           640:     { 'J',     "       run down" },
        !           641:     { 'K',     "       run up" },
        !           642:     { 'L',     "       run right" },
        !           643:     { 'Y',     "       run up & left" },
        !           644:     { 'U',     "       run up & right" },
        !           645:     { 'B',     "       run down & left" },
        !           646:     { 'N',     "       run down & right" },
        !           647:     { 't',     "<dir>  throw something" },
        !           648:     { 'f',     "<dir>  forward until find something" },
        !           649:     { 'z',     "<dir>  zap a wand or staff" },
        !           650:     { '>',     "       go down a staircase" },
        !           651:     { '<',     "       go up a staircase" },
        !           652:     { 's',     "       search for trap/secret door" },
        !           653:     { '.',     "       rest for a while" },
        !           654:     { 'i',     "       inventory" },
        !           655:     { 'I',     "       inventory single item" },
        !           656:     { 'q',     "       quaff potion" },
        !           657:     { 'r',     "       read paper" },
        !           658:     { 'e',     "       eat food" },
        !           659:     { 'w',     "       wield a weapon" },
        !           660:     { 'W',     "       wear something" },
        !           661:     { 'T',     "       take off something" },
        !           662:     { 'd',     "       drop object" },
        !           663:     { 'P',     "       pick up object(s)" },
        !           664:     { CTRL('N'),       "       name object or monster" },
        !           665:     { 'm',     "       mark object (specific)" },
        !           666:     { 'o',     "       examine/set options" },
        !           667:     { 'c',     "       chant" },
        !           668:     { 'C',     "       cast a spell" },
        !           669:     { 'p',     "       pray" },
        !           670:     { 'a',     "       affect the undead" },
        !           671:     { '^',     "       set a trap" },
        !           672:     { 'G',     "       sense gold" },
        !           673:     { 'D',     "       dip something (into a pool)" },
        !           674:     { '*',     "       count up gold pieces" },
        !           675:     { CTRL('T'),       "<dir>  take (steal) from (direction)" },
        !           676:     { CTRL('U'),       "       use miscellaneous magic item" },
        !           677:     { CTRL('L'),       "       redraw screen" },
        !           678:     { CTRL('R'),       "       repeat last message" },
        !           679:     { ESCAPE,  "       cancel command" },
        !           680:     { 'v',     "       print program version number" },
        !           681:     { '!',     "       shell escape" },
        !           682:     { 'S',     "       save game" },
        !           683:     { 'Q',     "       quit" },
        !           684:     { 0, 0 }
        !           685: } ;
        !           686:
        !           687: struct h_list wiz_help[] = {
        !           688:     { CTRL('A'),       "       system activity" },
        !           689:     { CTRL('C'),       "       move to another dungeon level" },
        !           690:     { CTRL('D'),       "       down 1 dungeon level" },
        !           691:     { CTRL('E'),       "       food remaining" },
        !           692:     { CTRL('F'),       "       display entire level" },
        !           693:     { CTRL('H'),       "       jump 9 experience levels" },
        !           694:     { CTRL('I'),       "       inventory of level" },
        !           695:     { CTRL('J'),       "       teleport" },
        !           696:     { CTRL('M'),       "       recharge staff" },
        !           697:     { CTRL('P'),       "       toggle wizard status" },
        !           698:     { CTRL('U'),       "       up 1 dungeon level" },
        !           699:     { CTRL('X'),       "       detect monsters" },
        !           700:     { CTRL('Z'),       "       identify" },
        !           701:     { 'M',     "       make object" },
        !           702:     { 0, 0 }
        !           703: };
        !           704:
        !           705:
        !           706: #define HPT(x) x
        !           707: struct monster monsters[NUMMONST+1] = {
        !           708: /* {"Name",
        !           709:                CARRY,  NORMAL, WANDER, APPEAR, INTEL,
        !           710:                {ATTRIBUTES},
        !           711:                "SUMMONED_CREATURE", NUMBER_SUMMONED,
        !           712:                ADDED_EXPERIENCE/HIT_POINT,
        !           713:                {str    dex,    move,   exp,    level,  "armor", hit_points,
        !           714:                "damage"}}, */
        !           715: {"unknown",
        !           716:                0,      FALSE,  FALSE,  '\0',   "",
        !           717:                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        !           718:                0,
        !           719:                0, 0,
        !           720:                {0,     0,      0,      0,      0,      0,      HPT(""),
        !           721:                ""}},
        !           722: {"giant rat",
        !           723:                0,      TRUE,   TRUE,   'R',    "2-4",
        !           724:                {ISMEAN, CANDISEASE},
        !           725:                0, 0,
        !           726:                1,
        !           727:                {10,    10,     6,      7,      1,      7,      HPT("1d4"),
        !           728:                "1d3"}},
        !           729: {"kobold",
        !           730:                10,     TRUE,   TRUE,   'K',    "8",
        !           731:                {ISMEAN, CANSHOOT, CARRYWEAPON},
        !           732:                0, 0,
        !           733:                1,
        !           734:                {9,     10,     6,      5,      1,      7,      HPT("1d4"),
        !           735:                "1d4"}},
        !           736: {"gnome",
        !           737:                10,     TRUE,   FALSE,  'G',    "11-12",
        !           738:                {CANSHOOT, CARRYPOTION, CARRYWEAPON},
        !           739:                0, 0,
        !           740:                1,
        !           741:                {10,    10,     6,      8,      1,      5,      HPT("1d6"),
        !           742:                "1d6"}},
        !           743: {"bat",
        !           744:                0,      TRUE,   TRUE,   'b',    "2-4",
        !           745:                {ISMEAN, CANDISEASE, ISFLY, AREMANY},
        !           746:                0, 0,
        !           747:                0,
        !           748:                {10,    10,     6,      5,      1,      10,     HPT("1d4"),
        !           749:                "1d1"}},
        !           750: {"halfling",
        !           751:                10,     TRUE,   FALSE,  'H',    "11-12",
        !           752:                {CANSHOOT, CARRYPOTION, CARRYWEAPON},
        !           753:                0, 0,
        !           754:                1,
        !           755:                {8,     10,     6,      9,      1,      4,      HPT("1d6"),
        !           756:                "1d6"}},
        !           757: {"dwarf",
        !           758:                15,     TRUE,   FALSE,  'D',    "11-12",
        !           759:                {CANSHOOT, CARRYPOTION, CARRYWEAPON},
        !           760:                0, 0,
        !           761:                1,
        !           762:                {10,    10,     6,      10,     1,      4,      HPT("1d8"),
        !           763:                "1d8"}},
        !           764: {"orc",
        !           765:                15,     TRUE,   TRUE,   'O',    "8",
        !           766:                {ISMEAN, CANSHOOT, CARRYGOLD, CARRYWEAPON},
        !           767:                0, 0,
        !           768:                1,
        !           769:                {12,    10,     6,      10,     1,      6,      HPT("1d8"),
        !           770:                "1d8"}},
        !           771: {"xvart",
        !           772:                100,    TRUE,   TRUE,   'x',    "14-15",
        !           773:                {ISMEAN, CARRYDAGGER, AREMANY},
        !           774:                0, 0,
        !           775:                1,
        !           776:                {8,     10,     6,      7,      1,      7,      HPT("1d4"),
        !           777:                "1d4"}},
        !           778: {"manes",
        !           779:                0,      TRUE,   TRUE,   'M',    "2-4",
        !           780:                {ISMEAN, MAGICHIT, ISUNDEAD, TURNABLE},
        !           781:                0, 0,
        !           782:                1,
        !           783:                {10,    10,     6,      18,     1,      7,      HPT("1d8"),
        !           784:                "1d2/1d2/1d4"}},
        !           785: {"elf",
        !           786:                50,     TRUE,   FALSE,  'E',    "13-20",
        !           787:                {CANSHOOT, CARRYPOTION, CARRYSCROLL, CARRYWEAPON},
        !           788:                0, 0,
        !           789:                2,
        !           790:                {12,    10,     6,      20,     1,      5,      HPT("1d8+1"),
        !           791:                "1d10"}},
        !           792: {"hobgoblin",
        !           793:                10,     TRUE,   TRUE,   'h',    "8-10",
        !           794:                {ISMEAN, CANSHOOT, CARRYWEAPON},
        !           795:                0, 0,
        !           796:                2,
        !           797:                {14,    10,     6,      20,     1,      5,      HPT("1d8+1"),
        !           798:                "1d8"}},
        !           799: {"fire beetle",
        !           800:                0,      TRUE,   TRUE,   'B',    "0",
        !           801:                {ISMEAN, HASFIRE},
        !           802:                0, 0,
        !           803:                2,
        !           804:                {10,    10,     6,      20,     1,      4,      HPT("1d8+2"),
        !           805:                "2d4"}},
        !           806: {"giant ant",
        !           807:                0,      TRUE,   TRUE,   'A',    "1",
        !           808:                {ISMEAN, CANPOISON},
        !           809:                0, 0,
        !           810:                3,
        !           811:                {10,    10,     6,      40,     2,      3,      HPT("2d8"),
        !           812:                "1d6/1d6"}},
        !           813: {"zombie",
        !           814:                0,      TRUE,   TRUE,   'Z',    "0",
        !           815:                {ISMEAN, ISUNDEAD, TURNABLE},
        !           816:                0, 0,
        !           817:                2,
        !           818:                {10,    10,     6,      20,     2,      8,      HPT("2d8"),
        !           819:                "1d8"}},
        !           820: {"ear seeker",
        !           821:                0,      TRUE,   TRUE,   'e',    "0",
        !           822:                {ISMEAN, CANINFEST, AREMANY, CANSURPRISE},
        !           823:                0, 0,
        !           824:                0,
        !           825:                {10,    10,     6,      5,      1,      9,      HPT("1d1"),
        !           826:                "1d1"}},
        !           827: {"shrieker",
        !           828:                0,      TRUE,   FALSE,  'S',    "0",
        !           829:                {CANSHRIEK, NOMOVE, NOSTAB},
        !           830:                0, 0,
        !           831:                1,
        !           832:                {10,    10,     6,      10,     3,      7,      HPT("3d8"),
        !           833:                "0d0"}},
        !           834: {"stirge",
        !           835:                0,      TRUE,   TRUE,   's',    "1",
        !           836:                {ISMEAN, CANDRAW, ISFLY},
        !           837:                0, 0,
        !           838:                2,
        !           839:                {10,    10,     6,      36,     4,      8,      HPT("1d8+1"),
        !           840:                "1d3"}},
        !           841: {"gas spore",
        !           842:                0,      TRUE,   FALSE,  'a',    "0",
        !           843:                {ISMEAN, CANEXPLODE, CANINFEST, ISFLY},
        !           844:                0, 0,
        !           845:                5,
        !           846:                {10,    10,     18,     90,     1,      9,      HPT("1d1"),
        !           847:                "1d1"}},
        !           848: {"troglodyte",
        !           849:                5,      TRUE,   TRUE,   'T',    "5-7",
        !           850:                {ISMEAN, CANSMELL, CANSHOOT, CARRYGOLD, CARRYWEAPON},
        !           851:                0, 0,
        !           852:                2,
        !           853:                {10,    10,     6,      36,     2,      5,      HPT("2d8"),
        !           854:                "1d3/1d3/2d5"}},
        !           855: {"lemure",
        !           856:                0,      TRUE,   FALSE,  'L',    "2-4",
        !           857:                {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, TURNABLE},
        !           858:                0, 0,
        !           859:                3,
        !           860:                {10,    10,     9,      65,     3,      7,      HPT("3d8"),
        !           861:                "1d3"}},
        !           862: {"bugbear",
        !           863:                5,      TRUE,   TRUE,   'b',    "5-8",
        !           864:                {ISMEAN, CANSHOOT, CANSURPRISE, CARRYGOLD, CARRYPOTION,
        !           865:                 CARRYWEAPON},
        !           866:                0, 0,
        !           867:                4,
        !           868:                {16,    10,     6,      135,    3,      5,      HPT("3d8+1"),
        !           869:                "2d4"}},
        !           870: {"wererat",
        !           871:                20,     TRUE,   TRUE,   'r',    "11-12",
        !           872:                {ISMEAN, MAGICHIT, CARRYFOOD, CANSUMMON},
        !           873:                "giant rat", 2,
        !           874:                4,
        !           875:                {10,    10,     6,      150,    3,      6,      HPT("3d8+1"),
        !           876:                "1d8"}},
        !           877: {"ghoul",
        !           878:                0,      TRUE,   TRUE,   'g',    "5-7",
        !           879:                {ISMEAN, CANPARALYZE, ISUNDEAD, TURNABLE},
        !           880:                0, 0,
        !           881:                2,
        !           882:                {10,    10,     6,      65,     2,      6,      HPT("2d8"),
        !           883:                "1d3/1d3/1d6"}},
        !           884: {"leprechaun",
        !           885:                100,    TRUE,   FALSE,  'l',    "15-16",
        !           886:                {CARRYGOLD, STEALGOLD},
        !           887:                0, 0,
        !           888:                1,
        !           889:                {10,    10,     3,      80,     6,      3,      HPT("1d4+1"),
        !           890:                "0d0"}},
        !           891: {"gray ooze",
        !           892:                50,     TRUE,   FALSE,  'o',    "1",
        !           893:                {ISMEAN, CANRUST, ISSCAVENGE, NOCOLD, NOFIRE, NOSTAB,CARRYFOOD},
        !           894:                0, 0,
        !           895:                5,
        !           896:                {10,    10,     10,     200,    3,      8,      HPT("3d8+3"),
        !           897:                "2d8"}},
        !           898: {"giant tick",
        !           899:                0,      TRUE,   TRUE,   't',    "0",
        !           900:                {ISMEAN, CANDRAW, CANDISEASE},
        !           901:                0, 0,
        !           902:                2,
        !           903:                {10,    10,     9,      105,    3,      3,      HPT("3d8"),
        !           904:                "1d4"}},
        !           905: {"ogre",
        !           906:                50,     TRUE,   TRUE,   'O',    "5-7",
        !           907:                {ISMEAN, CARRYGOLD, CARRYWEAPON},
        !           908:                0, 0,
        !           909:                5,
        !           910:                {18,    10,     7,      90,     4,      5,      HPT("4d8+1"),
        !           911:                "1d10"}},
        !           912: {"very young dragon",
        !           913:                10,     TRUE,   FALSE,  'd',    "15-16",
        !           914:                {ISMEAN, CANBRANDOM, ISGREED, CARRYGOLD},
        !           915:                0, 0,
        !           916:                9,
        !           917:                {10,    10,     6,      100,    9,      -1,     HPT("9d1"),
        !           918:                "1d4/1d4/2d4"}},
        !           919: {"centaur",
        !           920:                15,     TRUE,   FALSE,  'C',    "5-10",
        !           921:                {CANSHOOT, CARRYPOTION, CARRYGOLD, CARRYWEAPON},
        !           922:                0, 0,
        !           923:                4,
        !           924:                {10,    10,     2,      85,     4,      4,      HPT("4d8"),
        !           925:                "1d6/1d6"}},
        !           926: {"nymph",
        !           927:                100,    TRUE,   FALSE,  'N',    "15-16",
        !           928:                {STEALMAGIC, CARRYSCROLL, CARRYPOTION, CARRYSTICK},
        !           929:                0, 0,
        !           930:                3,
        !           931:                {10,    10,     6,      350,    4,      9,      HPT("3d8"),
        !           932:                "0d0"}},
        !           933: {"violet fungi",
        !           934:                0,      TRUE,   FALSE,  'F',    "0",
        !           935:                {ISMEAN, CANHOLD, NOMOVE, CANROT, NOSTAB},
        !           936:                0, 0,
        !           937:                4,
        !           938:                {10,    10,     6,      135,    3,      7,      HPT("3d8"),
        !           939:                "5d1"}},
        !           940: {"gelatinous cube",
        !           941:                90,     TRUE,   TRUE,   'c',    "0",
        !           942:                {ISMEAN, ISSCAVENGE, CANPARALYZE, NOSTAB, CARRYFOOD},
        !           943:                0, 0,
        !           944:                4,
        !           945:                {10,    10,     8,      150,    4,      8,      HPT("4d8"),
        !           946:                "2d4"}},
        !           947: {"fire toad",
        !           948:                0,      TRUE,   TRUE,   'f',    "5-7",
        !           949:                {ISMEAN, CANBFIRE, NOFIRE},
        !           950:                0, 0,
        !           951:                4,
        !           952:                {10,    10,     6,      150,    4,      10,     HPT("4d8+1"),
        !           953:                "2d4"}},
        !           954: {"blink dog",
        !           955:                0,      TRUE,   TRUE,   'B',    "8-10",
        !           956:                {ISMEAN, CANBLINK},
        !           957:                0, 0,
        !           958:                5,
        !           959:                {10,    10,     6,      170,    4,      5,      HPT("4d8"),
        !           960:                "1d6"}},
        !           961: {"rust monster",
        !           962:                0,      TRUE,   TRUE,   'R',    "1",
        !           963:                {ISMEAN, CANRUST},
        !           964:                0, 0,
        !           965:                4,
        !           966:                {10,    10,     6,      185,    5,      2,      HPT("3d8"),
        !           967:                "0d0/0d0"}},
        !           968: {"ghast",
        !           969:                0,      TRUE,   TRUE,   'G',    "11-12",
        !           970:                {CANPARALYZE, CANSTINK, ISMEAN, ISUNDEAD, TURNABLE},
        !           971:                0, 0,
        !           972:                4,
        !           973:                {10,    10,     6,      190,    4,      4,      HPT("4d8"),
        !           974:                "1d4/1d4/1d8"}},
        !           975: {"blindheim",
        !           976:                0,      TRUE,   FALSE,  'b',    "1",
        !           977:                {CANBLIND, ISMEAN},
        !           978:                0, 0,
        !           979:                4,
        !           980:                {8,     10,     6,      200,    2,      1,      HPT("4d8+2"),
        !           981:                "1d8"}},
        !           982: {"shadow",
        !           983:                0,      TRUE,   TRUE,   'S',    "5-7",
        !           984:                {ISSHADOW, ISMEAN, CANCHILL, ISUNDEAD, TURNABLE},
        !           985:                0, 0,
        !           986:                4,
        !           987:                {10,    10,     6,      255,    3,      7,      HPT("3d8+3"),
        !           988:                "1d4+1"}},
        !           989: {"gargoyle",
        !           990:                5,      TRUE,   TRUE,   'g',    "5-7",
        !           991:                {ISMEAN, MAGICHIT},
        !           992:                0, 0,
        !           993:                5,
        !           994:                {10,    10,     6,      165,    4,      5,      HPT("4d8+4"),
        !           995:                "1d3/1d3/1d6/1d4"}},
        !           996: {"quasit",
        !           997:                30,     TRUE,   TRUE,   'Q',    "5-7",
        !           998:                {ISMEAN, ISREGEN, MAGICHIT, CANSURPRISE, CANITCH, CARRYSTICK,
        !           999:                 CARRYSCROLL, CARRYGOLD, CARRYPOTION, NOCOLD, NOFIRE, NOBOLT},
        !          1000:                0, 0,
        !          1001:                3,
        !          1002:                {10,    10,     6,      325,    7,      2,      HPT("3d8"),
        !          1003:                "1d2/1d2/1d4"}},
        !          1004: {"imp",
        !          1005:                25,     TRUE,   TRUE,   'I',    "8-10",
        !          1006:                {ISMEAN, ISREGEN, MAGICHIT, CANPOISON, CANSURPRISE,
        !          1007:                 CANTELEPORT, CARRYRING, CARRYSTICK, NOCOLD, NOBOLT, NOFIRE},
        !          1008:                0, 0,
        !          1009:                3,
        !          1010:                {10,    10,     6,      275,    2,      2,      HPT("2d8+2"),
        !          1011:                "1d4"}},
        !          1012: {"su-monster", 10,     TRUE,   TRUE,   's',    "8-10",
        !          1013:                {ISMEAN, CARRYSCROLL, CARRYGOLD, CARRYFOOD},
        !          1014:                0, 0,
        !          1015:                6,
        !          1016:                {10,    10,     5,      225,    5,      6,      HPT("5d8+5"),
        !          1017:                "4d4/2d4"}},
        !          1018: {"owlbear",
        !          1019:                5,      TRUE,   TRUE,   'O',    "5-7",
        !          1020:                {ISMEAN, CANHUG, CARRYRING, CARRYFOOD},
        !          1021:                0, 0,
        !          1022:                8,
        !          1023:                {10,    10,     8,      225,    5,      5,      HPT("5d8+2"),
        !          1024:                "1d6/1d6/2d6"}},
        !          1025: {"doppleganger",
        !          1026:                0,      TRUE,   TRUE,   'D',    "11-12",
        !          1027:                {ISMEAN, CANSURPRISE},
        !          1028:                0, 0,
        !          1029:                4,
        !          1030:                {10,    10,     6,      330,    10,     5,      HPT("4d8"),
        !          1031:                "1d12"}},
        !          1032: {"yeti",
        !          1033:                30,     TRUE,   TRUE,   'Y',    "8-10",
        !          1034:                {ISMEAN, CANPARALYZE, CANHUG, NOCOLD, CANSURPRISE,
        !          1035:                 CARRYGOLD, CARRYPOTION},
        !          1036:                0, 0,
        !          1037:                8,
        !          1038:                {13,    10,     6,      500,    6,      6,      HPT("4d8+4"),
        !          1039:                "1d6/1d6"}},
        !          1040: {"leucrotta",
        !          1041:                0,      TRUE,   FALSE,  'L',    "8-10",
        !          1042:                {ISMEAN},
        !          1043:                0, 0,
        !          1044:                8,
        !          1045:                {10,    10,     2,      475,    6,      4,      HPT("6d8+1"),
        !          1046:                "3d6/1d6/1d6"}},
        !          1047: {"cockatrice",
        !          1048:                0,      TRUE,   TRUE,   'C',    "1",
        !          1049:                {ISMEAN, TOUCHSTONE},
        !          1050:                0, 0,
        !          1051:                5,
        !          1052:                {10,    10,     5,      315,    5,      6,      HPT("5d8"),
        !          1053:                "1d3"}},
        !          1054: {"wight",
        !          1055:                0,      TRUE,   TRUE,   'W',    "8-10",
        !          1056:                {ISMEAN, CANDRAIN, MAGICHIT, ISUNDEAD, TURNABLE},
        !          1057:                0, 0,
        !          1058:                5,
        !          1059:                {10,    10,     6,      540,    4,      5,      HPT("4d8+3"),
        !          1060:                "1d4"}},
        !          1061: {"troll",
        !          1062:                50,     TRUE,   FALSE,  'T',    "5-7",
        !          1063:                {ISMEAN, ISREGEN, CARRYFOOD, CARRYGOLD},
        !          1064:                0, 0,
        !          1065:                8,
        !          1066:                {18,    10,     8,      600,    6,      4,      HPT("6d8+6"),
        !          1067:                "1d4+4/1d4+4/2d6"}},
        !          1068: {"jackalwere",
        !          1069:                50,     TRUE,   TRUE,   'J',    "11-12",
        !          1070:                {ISMEAN, CANSHOOT, CANSNORE, MAGICHIT, CARRYFOOD, CARRYGOLD,
        !          1071:                 CARRYSCROLL},
        !          1072:                0, 0,
        !          1073:                4,
        !          1074:                {10,    10,     6,      800,    4,      4,      HPT("4d8"),
        !          1075:                "2d4"}},
        !          1076: {"wraith",
        !          1077:                0,      TRUE,   TRUE,   'w',    "11-12",
        !          1078:                {ISMEAN, CANDRAIN, MAGICHIT, ISUNDEAD, TURNABLE},
        !          1079:                0, 0,
        !          1080:                6,
        !          1081:                {10,    10,     6,      575,    5,      4,      HPT("5d8+3"),
        !          1082:                "1d6"}},
        !          1083: {"mimic",
        !          1084:                20,     TRUE,   FALSE,  'M',    "2-10",
        !          1085:                {ISMEAN, ISDISGUISE, NODETECT, CANHOLD, CARRYFOOD, CARRYRING,
        !          1086:                 CARRYGOLD, NOMOVE},
        !          1087:                0, 0,
        !          1088:                12,
        !          1089:                {10,    10,     6,      1300,   9,      7,      HPT("10d8"),
        !          1090:                "3d4"}},
        !          1091: {"erinyes",
        !          1092:                25,     TRUE,   TRUE,   'E',    "8-10",
        !          1093:                {ISMEAN, CANFRIGHTEN, CANSUMMON, TURNABLE, CANPAIN, CANSEE,
        !          1094:                 NOFIRE, CANTELEPORT, CARRYRING, CARRYSTICK},
        !          1095:                "ghoul", 3,
        !          1096:                8,
        !          1097:                {10,    10,     6,      875,    7,      2,      HPT("6d8+6"),
        !          1098:                "2d4"}},
        !          1099: {"lava child",
        !          1100:                0,      TRUE,   TRUE,   'l',    "8-10",
        !          1101:                {ISMEAN, NOMETAL},
        !          1102:                0, 0,
        !          1103:                8,
        !          1104:                {10,    10,     6,      950,    5,      4,      HPT("5d8+1"),
        !          1105:                "1d6/1d6/2d12"}},
        !          1106: {"basilisk",
        !          1107:                0,      TRUE,   FALSE,  'B',    "1",
        !          1108:                {ISMEAN, LOOKSTONE},
        !          1109:                0, 0,
        !          1110:                8,
        !          1111:                {10,    10,     6,      1000,   6,      4,      HPT("6d8+1"),
        !          1112:                "1d10"}},
        !          1113: {"mummy",
        !          1114:                20,     TRUE,   FALSE,  'm',    "5-7",
        !          1115:                {ISMEAN,CANINFEST, MAGICHIT, CANFRIGHTEN, HALFDAMAGE, ISUNDEAD,
        !          1116:                 TURNABLE, CARRYRING},
        !          1117:                0, 0,
        !          1118:                8,
        !          1119:                {10,    10,     6,      1150,   6,      3,      HPT("6d8+3"),
        !          1120:                "1d12"}},
        !          1121: {"otyugh",
        !          1122:                0,      TRUE,   TRUE,   'o',    "5-10",
        !          1123:                {ISMEAN, CANDISEASE},
        !          1124:                0, 0,
        !          1125:                8,
        !          1126:                {10,    10,     6,      700,    7,      3,      HPT("7d8"),
        !          1127:                "1d8/1d8/1d4+1"}},
        !          1128: {"adult dragon",
        !          1129:                30,     TRUE,   FALSE,  'd',    "15-16",
        !          1130:                {ISMEAN, CANBRANDOM, ISGREED, CANFRIGHTEN, CARRYGOLD,
        !          1131:                 CARRYPOTION},
        !          1132:                0, 0,
        !          1133:                9,
        !          1134:                {10,    10,     6,      1000,   9,      -1,     HPT("45d1"),
        !          1135:                "1d6/1d6/2d6"}},
        !          1136: {"invisible stalker",
        !          1137:                0,      TRUE,   TRUE,   'i',    "13-14",
        !          1138:                {ISMEAN, ISINVIS},
        !          1139:                0, 0,
        !          1140:                10,
        !          1141:                {10,    10,     4,      1090,   8,      3,      HPT("8d8"),
        !          1142:                "4d4"}},
        !          1143: {"xorn",
        !          1144:                0,      TRUE,   TRUE,   'X',    "8-10",
        !          1145:                {ISMEAN, CANINWALL, NOCOLD, NOFIRE, CANSURPRISE, NOBOLT},
        !          1146:                0, 0,
        !          1147:                10,
        !          1148:                {10,    10,     6,      1275,   7,      -2,     HPT("7d8+7"),
        !          1149:                "1d3/1d3/1d3/4d6"}},
        !          1150: {"chimera",
        !          1151:                0,      TRUE,   FALSE,  'c',    "2-4",
        !          1152:                {ISMEAN, CANBFIRE, NOFIRE},
        !          1153:                0, 0,
        !          1154:                12,
        !          1155:                {10,    10,     6,      1000,   9,      6,      HPT("9d8"),
        !          1156:                "1d3/1d3/1d4/1d4/2d4/3d4"}},
        !          1157: {"horned devil",
        !          1158:                5,      TRUE,   TRUE,   'H',    "13-14",
        !          1159:                {ISMEAN, CANFRIGHTEN, CANINFEST, CANPOISON, MAGICHIT, CANSUMMON,
        !          1160:                 NOFIRE, CANTELEPORT, CARRYGOLD, CARRYRING, CARRYSTICK},
        !          1161:                "wight", 2,
        !          1162:                6,
        !          1163:                {10,    10,     6,      1320,   7,      -3,     HPT("5d8+5"),
        !          1164:                "1d4/1d4/1d4+1/1d3"}},
        !          1165: {"specter",
        !          1166:                0,      TRUE,   TRUE,   'S',    "13-14",
        !          1167:                {ISMEAN, DOUBLEDRAIN, ISUNDEAD, TURNABLE},
        !          1168:                0, 0,
        !          1169:                10,
        !          1170:                {10,    10,     6,      1650,   7,      2,      HPT("7d8+3"),
        !          1171:                "1d8"}},
        !          1172: {"will-o-wisp", 100,   TRUE,   FALSE,  'W',    "15-16",
        !          1173:                {ISMEAN, CANSURPRISE, ISFLY, CARRYGOLD, CARRYMISC, NOBOLT},
        !          1174:                0, 0,
        !          1175:                12,
        !          1176:                {10,    10,     5,      2000,   9,      -8,     HPT("9d8"),
        !          1177:                "2d8"}},
        !          1178: {"lamia",
        !          1179:                0,      TRUE,   TRUE,   'L',    "13-14",
        !          1180:                {ISMEAN, TAKEWISDOM},
        !          1181:                0, 0,
        !          1182:                9,
        !          1183:                {10,    10,     2,      1500,   9,      3,      HPT("9d8"),
        !          1184:                "1d4/1d4"}},
        !          1185: {"neo-otyugh",
        !          1186:                0,      TRUE,   TRUE,   'N',    "10-12",
        !          1187:                {ISMEAN, CANDISEASE},
        !          1188:                0, 0,
        !          1189:                10,
        !          1190:                {12,    10,     6,      1500,   10,     0,      HPT("12d8"),
        !          1191:                "2d6/2d6/1d3"}},
        !          1192: {"barbed devil",
        !          1193:                0,      TRUE,   TRUE,   'B',    "11-12",
        !          1194:                {TOUCHFEAR, CANSUMMON, ISMEAN, CANHOLD, TURNABLE, NOFIRE,
        !          1195:                 CANTELEPORT},
        !          1196:                "ghast", 4,
        !          1197:                10,
        !          1198:                {10,    10,     6,      1425,   8,      0,      HPT("8d8"),
        !          1199:                "2d4/2d4/3d4"}},
        !          1200: {"vrock",
        !          1201:                10,     TRUE,   TRUE,   'V',    "5-7",
        !          1202:                {ISMEAN, CANSUMMON, CANSEE, TURNABLE, CANTELEPORT, CARRYGOLD,
        !          1203:                 CARRYRING, CARRYSTICK},
        !          1204:                "erinyes", 2,
        !          1205:                10,
        !          1206:                {10,    10,     6,      1500,   8,      0,      HPT("8d8"),
        !          1207:                "1d4/1d4/1d8/1d8/1d6"}},
        !          1208: {"shambling mound",
        !          1209:                25, TRUE,       TRUE,   's',    "5-7",
        !          1210:                {ISMEAN, CANSUFFOCATE, NOCOLD, NOFIRE, CANHOLD, CARRYGOLD,
        !          1211:                 CARRYFOOD, CARRYRING},
        !          1212:                0, 0,
        !          1213:                10,
        !          1214:                {10,    10,     7,      1800,   9,      0,      HPT("9d8"),
        !          1215:                "2d8/2d8"}},
        !          1216: {"umber hulk",
        !          1217:                40,     TRUE,   TRUE,   'U',    "8-10",
        !          1218:                {ISMEAN, CANHUH, CANINWALL, CANTUNNEL, CARRYSCROLL,
        !          1219:                 CARRYPOTION, CARRYFOOD},
        !          1220:                0, 0,
        !          1221:                12,
        !          1222:                {10,    10,     6,      1700,   8,      2,      HPT("8d8+8"),
        !          1223:                "3d4/3d4/2d5"}},
        !          1224: {"ettin",
        !          1225:                0,      TRUE,   TRUE,   'e',    "5-7",
        !          1226:                {ISMEAN, CANSHOOT, AREMANY},
        !          1227:                0, 0,
        !          1228:                14,
        !          1229:                {10,    10,     6,      1950,   10,     3,      HPT("10d8"),
        !          1230:                "2d8/3d6"}},
        !          1231: {"black pudding",
        !          1232:                30,     TRUE,   FALSE,  'P',    "0",
        !          1233:                {ISMEAN, CANRUST, NOCOLD, BOLTDIVIDE, BLOWDIVIDE, ISSCAVENGE,
        !          1234:                 NOSTAB, CARRYSCROLL, CARRYPOTION, CARRYRING},
        !          1235:                0, 0,
        !          1236:                14,
        !          1237:                {10,    10,     6,      2000,   10,     6,      HPT("10d8"),
        !          1238:                "3d8"}},
        !          1239: {"hezrou",
        !          1240:                15,     TRUE,   TRUE,   'h',    "5-7",
        !          1241:                {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, TURNABLE, CANTELEPORT,
        !          1242:                 CARRYPOTION, CARRYRING, CARRYSTICK},
        !          1243:                "wight", 3,
        !          1244:                12,
        !          1245:                {10,    10,     6,      2000,   9,      -2,     HPT("9d8"),
        !          1246:                "1d3/1d3/4d4"}},
        !          1247: {"glabrezu",
        !          1248:                25,     TRUE,   FALSE,  'G',    "8-10",
        !          1249:                {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, TURNABLE, CANTELEPORT,
        !          1250:                 CARRYSCROLL, CARRYPOTION, CARRYGOLD},
        !          1251:                "wraith", 3,
        !          1252:                14,
        !          1253:                {10,    10,     6,      2400,   10,     -4,     HPT("10d8"),
        !          1254:                "2d6/2d6/1d3/1d3/1d4+1"}},
        !          1255: {"bone devil",
        !          1256:                0,      TRUE,   TRUE,   'b',    "11-12",
        !          1257:                {ISMEAN, CANFRIGHTEN, CANSEE, CANSUMMON, CANSURPRISE, CANCHILL,
        !          1258:                 TURNABLE, NOFIRE, NOCOLD, CANTELEPORT},
        !          1259:                "ghast", 3,
        !          1260:                12,
        !          1261:                {10,    10,     6,      2800,   9,      -1,     HPT("9d8"),
        !          1262:                "2d4"}},
        !          1263: {"white pudding",
        !          1264:                30,     TRUE,   FALSE,  'w',    "0",
        !          1265:                {ISMEAN, CANDISSOLVE, NOCOLD, BOLTDIVIDE, BLOWDIVIDE,
        !          1266:                 ISSCAVENGE, NOSTAB, CARRYRING, CARRYSCROLL,
        !          1267:                 CARRYPOTION},
        !          1268:                0, 0,
        !          1269:                14,
        !          1270:                {10,    10,     6,      2200,   9,      8,      HPT("10d8"),
        !          1271:                "7d4"}},
        !          1272: {"vampire",
        !          1273:                20,     TRUE,   TRUE,   'v',    "15-16",
        !          1274:                {ISMEAN, ISREGEN, CANSUCK, ISUNDEAD, TURNABLE, CARRYMISC},
        !          1275:                0, 0,
        !          1276:                12,
        !          1277:                {20,    10,     6,      3800,   8,      1,      HPT("8d8+3"),
        !          1278:                "1d6+4"}},
        !          1279: {"ghost",
        !          1280:                20,     TRUE,   FALSE,  'g',    "13-14",
        !          1281:                {ISMEAN, CANFRIGHTEN, CANAGE, ISUNDEAD, TURNABLE, CARRYMISC,
        !          1282:                 CMAGICHIT, CANINWALL},
        !          1283:                0, 0,
        !          1284:                10,
        !          1285:                {13,    10,     5,      5000,   12,     0,      HPT("10d8"),
        !          1286:                "1d12"}},
        !          1287: {"intellect devourer",
        !          1288:                0,      TRUE,   FALSE,  'D',    "11-12",
        !          1289:                {ISMEAN, TAKEINTEL, CMAGICHIT, HALFDAMAGE, CANSURPRISE, NOFIRE,
        !          1290:                 NOCOLD},
        !          1291:                0, 0,
        !          1292:                9,
        !          1293:                {10,    10,     4,      5000,   7,      4,      HPT("6d8+6"),
        !          1294:                "1d4/1d4/1d4/1d4"}},
        !          1295: {"ice devil",
        !          1296:                30,     TRUE,   FALSE,  'I',    "13-14",
        !          1297:                {ISMEAN, CANSEE, ISREGEN, CANFRIGHTEN, CANSUMMON, CANBICE,
        !          1298:                 NOCOLD, NOFIRE, TOUCHSLOW, CANTELEPORT, CARRYSCROLL, CARRYRING,
        !          1299:                 CARRYSTICK},
        !          1300:                "bone devil", 2,
        !          1301:                16,
        !          1302:                {20,    10,     6,      4400,   11,     -4,     HPT("11d8"),
        !          1303:                "1d4/1d4/2d4/3d4"}},
        !          1304: {"purple worm",
        !          1305:                70,     TRUE,   TRUE,   'p',    "0",
        !          1306:                {ISMEAN, CANPOISON, CANINWALL, CANTUNNEL, CARRYFOOD, CARRYGOLD},
        !          1307:                0, 0,
        !          1308:                20,
        !          1309:                {10,    10,     6,      4900,   15,     6,      HPT("15d8"),
        !          1310:                "2d12/2d4"}},
        !          1311: {"ancient brass dragon",
        !          1312:                70,     TRUE,   FALSE,  'r',    "13-14",
        !          1313:                {CANBSGAS, CANBFGAS, ISGREED, CANSEE, NOSLEEP, NOFEAR,
        !          1314:                 CARRYGOLD, CARRYRING},
        !          1315:                0, 0,
        !          1316:                50,
        !          1317:                {10,    10,     6,      10000,  8,      2,      HPT("0d8+64"),
        !          1318:                "1d4/1d4/4d4"}},
        !          1319: {"pit fiend",
        !          1320:                100,    TRUE,   TRUE,   'f',    "15-16",
        !          1321:                {ISMEAN, CANSEE, BMAGICHIT, CANFRIGHTEN, CANHOLD, CANSUMMON,
        !          1322:                 CANBFIRE, NOFIRE, CANTELEPORT, CARRYSTICK, HASFIRE, ISFLY},
        !          1323:                "barbed devil", 3,
        !          1324:                18,
        !          1325:                {22,    10,     6,      10000,  13,     -3,     HPT("13d8"),
        !          1326:                "1d4+4/1d6+6"}},
        !          1327: {"ancient white dragon",
        !          1328:                70,     TRUE,   TRUE,   'W',    "8-9",
        !          1329:                {ISMEAN, CANBICE, ISGREED, CANSEE, NOCOLD, CARRYGOLD,
        !          1330:                 CARRYRING},
        !          1331:                0, 0,
        !          1332:                50,
        !          1333:                {10,    10,     6,      15000,  7,      3,      HPT("0d8+56"),
        !          1334:                "1d4/1d4/2d8"}},
        !          1335: {"ancient black dragon",
        !          1336:                70,     TRUE,   TRUE,   'a',    "8-10",
        !          1337:                {ISMEAN, CANBACID, NOACID, ISGREED, CANSEE, CARRYGOLD,
        !          1338:                 CARRYSTICK},
        !          1339:                0, 0,
        !          1340:                50,
        !          1341:                {10,    10,     6,      20000,  8,      3,      HPT("0d8+64"),
        !          1342:                "1d4/1d4/3d6"}},
        !          1343: {"lich",
        !          1344:                60,     TRUE,   TRUE,   'l',    "19-20",
        !          1345:                {ISMEAN, CANDRAIN, CANSEE, CANPARALYZE, CANFRIGHTEN, MAGICHIT,
        !          1346:                 ISUNDEAD, TURNABLE, NOBOLT, CANMISSILE, CANSUMMON, CARRYGOLD,
        !          1347:                 CARRYSCROLL, CARRYPOTION, CARRYRING, CARRYSTICK},
        !          1348:                "specter", 2,
        !          1349:                16,
        !          1350:                {10,    10,     6,      20000,  17,     0,      HPT("11d8"),
        !          1351:                "1d10"}},
        !          1352: {"titan",
        !          1353:                80,     TRUE,   FALSE,  't',    "17-20",
        !          1354:                {ISMEAN, ISSHADOW, CANSEE, CANMISSILE, CARRYRING, CARRYSTICK,
        !          1355:                 CANTELEPORT},
        !          1356:                0, 0,
        !          1357:                30,
        !          1358:                {13,    10,     5,      20000,  19,     -3,     HPT("22d8"),
        !          1359:                "8d6"}},
        !          1360: {"ancient copper dragon",
        !          1361:                70,     TRUE,   FALSE,  'c',    "13-14",
        !          1362:                {CANBACID, NOACID, CANBSLGAS, ISGREED, CANSEE, NOSLOW,
        !          1363:                 CARRYGOLD, CARRYSTICK},
        !          1364:                0, 0,
        !          1365:                50,
        !          1366:                {10,    10,     6,      20000,  9,      1,      HPT("0d8+72"),
        !          1367:                "1d4/1d4/5d4"}},
        !          1368: {"ancient green dragon",
        !          1369:                50,     TRUE,   TRUE,   'E',    "10-12",
        !          1370:                {ISMEAN, CANBGAS, ISGREED, CANSEE, NOGAS, CARRYGOLD,
        !          1371:                 CARRYRING, CARRYSTICK},
        !          1372:                0, 0,
        !          1373:                50,
        !          1374:                {10,    10,     6,      20000,  9,      2,      HPT("0d8+72"),
        !          1375:                "1d6/1d6/2d10"}},
        !          1376: {"ancient bronze dragon",
        !          1377:                50,     TRUE,   FALSE,  'L',    "15-16",
        !          1378:                {CANBCGAS, CANBBOLT, CANBFGAS, ISGREED, CANSEE, NOFEAR, NOBOLT,
        !          1379:                 ISCLEAR, CARRYGOLD, CARRYRING, CARRYSTICK},
        !          1380:                0, 0,
        !          1381:                50,
        !          1382:                {10,    10,     6,      20000,  10,     0,      HPT("0d8+80"),
        !          1383:                "1d6/1d6/4d6"}},
        !          1384: {"ancient blue dragon",
        !          1385:                50,     TRUE,   TRUE,   'u',    "12-14",
        !          1386:                {ISMEAN, CANBBOLT, ISGREED, CANSEE, NOBOLT, CARRYGOLD,
        !          1387:                 CARRYSCROLL, CARRYRING, CARRYSTICK},
        !          1388:                0, 0,
        !          1389:                50,
        !          1390:                {10,    10,     6,      20000,  10,     2,      HPT("0d8+80"),
        !          1391:                "1d6/1d6/3d8"}},
        !          1392: {"ancient silver dragon",
        !          1393:                40,     TRUE,   FALSE,  'S',    "15-16",
        !          1394:                {CANBICE, CANBPGAS, ISGREED, CANSEE, CANMISSILE, NOCOLD,
        !          1395:                 NOPARALYZE, CARRYGOLD, CARRYSCROLL, CARRYRING, CARRYSTICK},
        !          1396:                0, 0,
        !          1397:                50,
        !          1398:                {10,    10,     6,      20000,  11,     -1,     HPT("0d8+88"),
        !          1399:                "1d6/1d6/5d6"}},
        !          1400: {"frost giant",
        !          1401:                50,     TRUE,   TRUE,   'F',    "5-10",
        !          1402:                {ISMEAN, NOCOLD, CARRYGOLD, AREMANY},
        !          1403:                0, 0,
        !          1404:                40,
        !          1405:                {25,    10,     5,      20000,  15,     4,      HPT("10d8+4"),
        !          1406:                "4d6"}},
        !          1407: {"ancient red dragon",
        !          1408:                40,     TRUE,   TRUE,   'R',    "15-16",
        !          1409:                {ISMEAN, CANBFIRE, ISGREED, CANSEE, NOFIRE, CARRYGOLD,
        !          1410:                 CARRYPOTION, CARRYRING, CARRYSTICK},
        !          1411:                0, 0,
        !          1412:                50,
        !          1413:                {10,    10,     6,      20000,  11,     -1,     HPT("0d8+88"),
        !          1414:                "1d8/1d8/3d10"}},
        !          1415: {"ancient gold dragon",
        !          1416:                50,     TRUE,   FALSE,  'G',    "17-18",
        !          1417:                {CANBFIRE, CANBGAS, ISGREED, CANSEE, CANMISSILE, NOFIRE, NOGAS,
        !          1418:                 CARRYGOLD, CARRYPOTION, CARRYRING, CARRYSTICK, CANTELEPORT},
        !          1419:                0, 0,
        !          1420:                50,
        !          1421:                {10,    10,     6,      20000,  12,     -2,     HPT("0d8+96"),
        !          1422:                "1d8/1d8/6d6"}},
        !          1423: {"fire giant",
        !          1424:                30,     TRUE,   TRUE,   'f',    "6-10",
        !          1425:                {ISMEAN, CARRYGOLD, NOFIRE, AREMANY},
        !          1426:                0, 0,
        !          1427:                45,
        !          1428:                {27,    10,     5,      26000,  15,     4,      HPT("11d8+5"),
        !          1429:                "5d6"}},
        !          1430: {"storm giant",
        !          1431:                30,     TRUE,   TRUE,   's',    "8-10",
        !          1432:                {ISMEAN, NOBOLT, CANBBOLT, CARRYRING},
        !          1433:                0, 0,
        !          1434:                50,
        !          1435:                {30,    10,     5,      30000,  15,     2,      HPT("15d8+8"),
        !          1436:                "7d6"}},
        !          1437: {"dwarven thief (Musty Doit)",
        !          1438:                50,     TRUE,   TRUE,   'm',    "16",
        !          1439:                {ISMEAN, ISUNIQUE, ISINVIS, NOFIRE, NOGAS, NOSTAB, STEALGOLD,
        !          1440:                 STEALMAGIC, CANPAIN, ISFLY, CARRYGOLD, CANSURPRISE, CANSEE,
        !          1441:                 CARRYMDAGGER, CARRYMISC, CARRYPOTION, CANBSTAB, ISSCAVENGE,
        !          1442:                 NODETECT},
        !          1443:                0, 0,
        !          1444:                0,
        !          1445:                {9,     18,     8,      300000, 22,     -5,     HPT("0d8+95"),
        !          1446:                "6d4+70/6d4+70"}},
        !          1447: {"demon prince (Jubilex)",
        !          1448:                100,    TRUE,   FALSE,  'J',    "18",
        !          1449:                {ISMEAN, ISUNIQUE, CANFRIGHTEN, ISREGEN, BMAGICHIT, ISSHADOW,
        !          1450:                 CANHOLD, CANDISEASE, CANSUMMON, CANSEE, CANROT, CANINFEST,
        !          1451:                 CANRUST, NOSTAB, CANTELEPORT, CARRYMISC, CANSMELL, CANSTINK,
        !          1452:                 NOFIRE},
        !          1453:                "black pudding", 4,
        !          1454:                0,
        !          1455:                {18,    18,     5,      100000, 20,     -7,     HPT("0d8+88"),
        !          1456:                "4d10"}},
        !          1457: {"arch devil (Geryon)",
        !          1458:                100,    TRUE,   FALSE,  'g',    "16",
        !          1459:                {ISMEAN, ISUNIQUE, BMAGICHIT, CANSEE, ISSHADOW, CANFRIGHTEN,
        !          1460:                 CANHUH, CANPOISON, CANSUMMON, NOFIRE, CANTELEPORT, NOFIRE,
        !          1461:                 CARRYMISC, CARRYHORN},
        !          1462:                "ice devil", 5,
        !          1463:                0,
        !          1464:                {18,    18,     5,      110000, 30,     -3,     HPT("0d8+133"),
        !          1465:                "3d6/3d6/2d4"}},
        !          1466: {"arch devil (Dispater)",
        !          1467:                100,    TRUE,   FALSE,  'd',    "18",
        !          1468:                {ISMEAN, ISUNIQUE, CANSEE, CANFRIGHTEN, CANHUH, BMAGICHIT,
        !          1469:                 CANSUMMON, CARRYSTICK, NOFIRE, CANTELEPORT, CARRYMISC},
        !          1470:                "ghost", 9,
        !          1471:                0,
        !          1472:                {18,    18,     5,      120000, 36,     -2,     HPT("0d8+144"),
        !          1473:                "4d6"}},
        !          1474: {"demon prince (Yeenoghu)",
        !          1475:                100,    TRUE,   FALSE,  'Y',    "16",
        !          1476:                {ISMEAN, ISREGEN, ISUNIQUE, MAGICHIT, CANSEE, ISSHADOW, CANHOLD,
        !          1477:                 CARRYFLAIL, CANFRIGHTEN, CANPARALYZE, CANSUMMON, CANHUH,
        !          1478:                 CANMISSILE, CANTELEPORT, CARRYMISC, NOFIRE},
        !          1479:                "lich", 5,
        !          1480:                0,
        !          1481:                {18,    18,     5,      130000, 23,     -5,     HPT("0d8+100"),
        !          1482:                "3d6/3d6"}},
        !          1483: {"witch (Emori)",
        !          1484:                50,     TRUE,   TRUE,   'w',    "18",
        !          1485:                {ISMEAN, CANMISSILE, ISINVIS, CANBBOLT, CANBFIRE, CANBICE,
        !          1486:                 CANSEE, CANSUMMON, ISUNIQUE, CANSNORE, ISFLY, TAKEINTEL,
        !          1487:                 CANDANCE, CANDISEASE, NOBOLT, NOCOLD, NOFIRE, CARRYCLOAK,
        !          1488:                 ISCLEAR, CARRYSCROLL, CARRYSTICK, CANTELEPORT, CANSLOW},
        !          1489:                "shambling mound", 7,
        !          1490:                0,
        !          1491:                {21,    12,     6,      140000, 25,      0,     HPT("0d8+102"),
        !          1492:                "1d4/1d4"}},
        !          1493: {"cleric of Thoth (Heil)",
        !          1494:                100,    TRUE,   TRUE,   'h',    "16",
        !          1495:                {ISMEAN, CANSEE, NOFEAR, ISREGEN, CANHOLD, CANBFIRE, ISUNIQUE,
        !          1496:                 DOUBLEDRAIN, CANSUMMON, NOFIRE, TOUCHFEAR, CANDISEASE, CANSUCK,
        !          1497:                 CANSEE, TAKEWISDOM, CARRYANKH, CARRYRING, ISINVIS, ISFLY},
        !          1498:                 "vampire", 9,
        !          1499:                 0,
        !          1500:                 {25,   15,     6,      150000, 25,     -8,     HPT("0d8+116"),
        !          1501:                 "0d6+11"}},
        !          1502: {"magician (Tsoming Zen)",
        !          1503:                80,     TRUE,   FALSE,  'z',    "18",
        !          1504:                {ISMEAN, ISUNIQUE, ISINVIS, ISREGEN, CANBFIRE, CANBICE,
        !          1505:                 CANBBOLT, CANMISSILE, NOFIRE, CANHOLD, CANFRIGHTEN, CANDISEASE,
        !          1506:                 CANPAIN, CANSUMMON, CANSEE, ISFLY, CANTELEPORT,
        !          1507:                 CARRYSTAFF, CARRYSTICK, NOSLOW, NOBOLT, NOCOLD},
        !          1508:                 "ancient black dragon", 5,
        !          1509:                 0,
        !          1510:                 {18,   16,     6,      160000, 21,       -4,   HPT("0d8+125"),
        !          1511:                 "2d4+1/2d4+1/2d4+1/2d4+1"}},
        !          1512: {"poet (Brian)",
        !          1513:                80,     TRUE,   TRUE,   'p',    "16",
        !          1514:                {ISMEAN, ISUNIQUE, STEALGOLD, ISSHADOW, CANSUMMON, ISREGEN,
        !          1515:                 CANDISEASE, NOCOLD, NOBOLT, NOFIRE, NOFEAR, CANTUNNEL, CANSEE,
        !          1516:                 CANINWALL, ISCLEAR, CARRYMANDOLIN, CARRYPOTION, CARRYRING},
        !          1517:                "umber hulk", 6,
        !          1518:                0,
        !          1519:                {19,    18,     5,      170000, 20,     -2,     HPT("0d8+156"),
        !          1520:                "8d8+48/4d4+36"}},
        !          1521: {"lesser god (Hruggek)",
        !          1522:                100,    TRUE,   FALSE,  'H',    "17",
        !          1523:                {ISMEAN, CANSEE, ISUNIQUE, CANSUMMON, ISREGEN, CANFRIGHTEN,
        !          1524:                 CANTELEPORT, CARRYMISC, CARRYMSTAR, CANSMELL, CANBLINK},
        !          1525:                "purple worm", 6,
        !          1526:                0,
        !          1527:                {19,    18,     5,      180000, 25,     0,      HPT("0d8+221"),
        !          1528:                "2d8/2d8"}},
        !          1529: {"lesser god (Kurtulmak)",
        !          1530:                100,    TRUE,   TRUE,   'K',    "19",
        !          1531:                {ISMEAN, CANFRIGHTEN, CANPOISON, CANSEE, ISUNIQUE, CANSUMMON,
        !          1532:                 CANTELEPORT, CARRYMISC, CANBLINK},
        !          1533:                "lich", 3,
        !          1534:                0,
        !          1535:                {19,    18,     5,      190000, 27,     0,      HPT("0d8+219"),
        !          1536:                "2d12/1d6"}},
        !          1537: {"demigod (Vaprak \"The Destroyer\")",
        !          1538:                100,    TRUE,   TRUE,   'v',    "18",
        !          1539:                {ISMEAN, ISUNIQUE, ISREGEN, MAGICHIT, CANSEE, CANSUMMON,
        !          1540:                 CANTELEPORT, CARRYMISC, CANSMELL},
        !          1541:                "troll", 9,
        !          1542:                0,
        !          1543:                {18,    18,     5,      200000, 26,     0,      HPT("0d8+198"),
        !          1544:                "2d10/2d10/1d12"}},
        !          1545: {"hero (Aklad)",
        !          1546:                100,    TRUE,   FALSE,  'k',    "16",
        !          1547:                {ISMEAN, ISUNIQUE, CANSUMMON, ISREGEN, NOCOLD, NOBOLT, NOFIRE,
        !          1548:                 NOPARALYZE, NOFEAR, CANSEE, ISCLEAR, CARRYAXE, CARRYRING,
        !          1549:                 CARRYMISC, CANBLINK},
        !          1550:                "ancient green dragon", 4,
        !          1551:                0,
        !          1552:                {25,    16,     4,      210000, 25,     -10,    HPT("0d8+196"),
        !          1553:                "2d8+23/2d8+23/1d6+19/1d6+19"}},
        !          1554: {"magician/thief (Nagrom)",
        !          1555:                100,    TRUE,   TRUE,   'N',    "19",
        !          1556:                {ISMEAN, ISUNIQUE, STEALMAGIC, ISINVIS, CANSUMMON, ISREGEN,
        !          1557:                 CANMISSILE, CANSEE, CARRYQUILL, CARRYSCROLL, CARRYRING, ISFLY,
        !          1558:                 CANBSTAB, CANBFIRE, CANBBOLT, CANBICE, NOCOLD, NOBOLT, NOFIRE,
        !          1559:                 CANSURPRISE, NODETECT, CANTELEPORT, CANSLOW,
        !          1560:                 CARRYSTICK},
        !          1561:                "ancient blue dragon", 5,
        !          1562:                0,
        !          1563:                {18,    18,     8,      220000, 26,     -2,     HPT("0d8+150"),
        !          1564:                "1d10+3/1d4+3"}},
        !          1565: {"platinum dragon (Bahamut)",
        !          1566:                100,    TRUE,   FALSE,  'P',    "20",
        !          1567:                {ISUNIQUE, CANBICE, CANBGAS, CANBBOLT, CANBRANDOM, CANSEE,
        !          1568:                 NOCOLD, NOBOLT, NOGAS, NOFIRE, NOFEAR, NOSLEEP, NOSLOW,
        !          1569:                 NOPARALYZE, CANMISSILE, CANSONIC, CANFRIGHTEN, CANSUMMON,
        !          1570:                 CARRYMISC, CANTELEPORT, ISFLY},
        !          1571:                "ancient gold dragon", 4,
        !          1572:                0,
        !          1573:                {18,    18,     5,      230000, 38,     -3,     HPT("0d8+168"),
        !          1574:                "2d6/2d6/6d8"}},
        !          1575: {"arch devil (Baalzebul)",
        !          1576:                100,    TRUE,   FALSE,  'B',    "18",
        !          1577:                {ISMEAN, ISSHADOW, ISUNIQUE, BMAGICHIT, CANHOLD, CANPOISON,
        !          1578:                 CANFRIGHTEN, CANHUH, CANSUMMON, CANSEE, NOFIRE, CANTELEPORT,
        !          1579:                 CARRYMISC, CARRYSTICK, CANDRAIN},
        !          1580:                "ice devil", 9,
        !          1581:                0,
        !          1582:                {18,    18,     5,      240000, 37,     -5,     HPT("0d8+166"),
        !          1583:                "2d6"}},
        !          1584: {"chromatic dragon (Tiamat)",
        !          1585:                100,    TRUE,   FALSE,  'C',    "18",
        !          1586:                {ISMEAN, ISUNIQUE, CANBFIRE, CANBACID, CANBBOLT, CANBICE,
        !          1587:                 CANBGAS, CANBRANDOM, CANSEE, NOFIRE, NOBOLT, NOCOLD, NOACID,
        !          1588:                 NOGAS, CANSUMMON, CANMISSILE, CANFRIGHTEN, CARRYMISC,
        !          1589:                 CARRYRING, CANTELEPORT, ISFLY},
        !          1590:                "ancient red dragon", 6,
        !          1591:                0,
        !          1592:                {18,    18,     5,      250000, 29,     0,      HPT("0d8+128"),
        !          1593:                "2d8/3d6/2d10/3d8/3d10/1d6"}},
        !          1594: {"demon prince (Orcus)",
        !          1595:                100,    TRUE,   FALSE,  'O',    "20",
        !          1596:                {ISMEAN, ISUNIQUE, BMAGICHIT, CANPOISON, CANFRIGHTEN, CANSEE,
        !          1597:                 CANBBOLT, CANSUMMON, NOBOLT, CANTELEPORT, CARRYWAND, NOFIRE,
        !          1598:                 CARRYMISC, ISFLY, CARRYSTICK},
        !          1599:                "vampire", 9,
        !          1600:                0,
        !          1601:                {18,    18,     5,      260000, 27,     -6,     HPT("0d8+120"),
        !          1602:                "1d10+3/2d4"}},
        !          1603: {"arch devil (Asmodeus)",
        !          1604:                100,    TRUE,   FALSE,  'A',    "20",
        !          1605:                {ISMEAN, ISUNIQUE, CANSEE, ISSHADOW, CANHOLD, BMAGICHIT,
        !          1606:                 CANFRIGHTEN, CANHUH, TOUCHSLOW, CANSUMMON, NOFIRE,
        !          1607:                 CANTELEPORT, CARRYROD, CARRYMISC, CARRYSTICK, CANDRAIN},
        !          1608:                "pit fiend", 5,
        !          1609:                0,
        !          1610:                {18,    18,     5,      270000, 45,     -7,     HPT("0d8+199"),
        !          1611:                "1d10+4"}},
        !          1612: {"demon prince (Demogorgon)",
        !          1613:                100,    TRUE,   FALSE,  'D',    "20",
        !          1614:                {ISMEAN, CANHUH, BMAGICHIT, DOUBLEDRAIN, CANINFEST, CANSEE,
        !          1615:                 CANFRIGHTEN, ISUNIQUE, CANSUMMON, CANROT, CANTELEPORT, NOFIRE,
        !          1616:                 CANDISEASE, CARRYMISC, CANSUCK, CARRYSTICK},
        !          1617:                "pit fiend", 9,
        !          1618:                0,
        !          1619:                {18,    18,     5,      280000, 45,     -8,     HPT("0d8+200"),
        !          1620:                "1d6/1d6"}},
        !          1621: {"greater god (Maglubiyet)",
        !          1622:                100,    TRUE,   FALSE,  'M',    "19",
        !          1623:                {ISMEAN, ISUNIQUE, CMAGICHIT, CANSEE, ISREGEN, CANSUMMON,
        !          1624:                 CANTELEPORT, CARRYMISC, CANFRIGHTEN, CARRYSTICK},
        !          1625:                "lich", 6,
        !          1626:                0,
        !          1627:                {19,    18,     5,      290000, 45,     -1,     HPT("0d8+350"),
        !          1628:                "2d10/2d10"}},
        !          1629: {"greater god (Gruumsh)",
        !          1630:                100,    TRUE,   FALSE,  'G',    "19",
        !          1631:                {ISMEAN, ISUNIQUE, CMAGICHIT, CANSEE, ISREGEN, CANSUMMON,
        !          1632:                 CANTELEPORT, CARRYMISC, CANFRIGHTEN, CARRYSTICK},
        !          1633:                "lich", 9,
        !          1634:                0,
        !          1635:                {19,    18,     5,      300000, 45,     -1,     HPT("0d8+350"),
        !          1636:                "3d10/3d10"}},
        !          1637: {"lesser god (Thrym)",
        !          1638:                100,    TRUE,   FALSE,  'T',    "16",
        !          1639:                {ISMEAN, NOCOLD, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE,
        !          1640:                 CANSUMMON, CARRYMISC, CANTELEPORT, CANFRIGHTEN, CARRYSTICK},
        !          1641:                "frost giant", 9,
        !          1642:                0,
        !          1643:                {25,    18,     5,      310000, 45,     -2,     HPT("0d8+360"),
        !          1644:                "4d10/4d10"}},
        !          1645: {"lesser god (Surtur)",
        !          1646:                100,    TRUE,   FALSE,  't',    "19",
        !          1647:                {ISMEAN, NOFIRE, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE,
        !          1648:                 CANFRIGHTEN, CANSUMMON, CANMISSILE, CANTELEPORT, CARRYMISC,
        !          1649:                 CARRYSTICK, CARRYFOOD, CARRYSURTURRING},
        !          1650:                "fire giant", 9,
        !          1651:                0,
        !          1652:                {25,    18,     5,      320000, 45,     -2,     HPT("0d8+380"),
        !          1653:                "5d10/5d10"}},
        !          1654: {"lesser god (Skoraeus Stonebones)",
        !          1655:                100,    TRUE,   FALSE,  'b',    "19",
        !          1656:                {ISMEAN, ISUNIQUE, ISREGEN, CMAGICHIT, CANSEE, CANSUMMON, ISFLY,
        !          1657:                 CANMISSILE, CANINWALL, CANTELEPORT, CARRYMISC, CARRYSTICK,
        !          1658:                 CANFRIGHTEN, CARRYBAMULET},
        !          1659:                "storm giant", 9,
        !          1660:                0,
        !          1661:                {25,    25,     6,      330000, 45,     -1,     HPT("0d8+380"),
        !          1662:                "6d10/6d10"}},
        !          1663: {"ruler of greater titans (Yendor)",
        !          1664:                100,    TRUE,   TRUE,   'y',     "25",
        !          1665:                {ISMEAN, CANINWALL, ISUNIQUE, ISREGEN, CMAGICHIT,ISFLY,
        !          1666:                 CANSUMMON, CANMISSILE, CANFRIGHTEN, CANBFIRE, NOFIRE,
        !          1667:                 CANHOLD, CARRYYAMULET, CANSEE, CANDANCE, ISSHADOW,
        !          1668:                 CANTELEPORT, CARRYMISC, CARRYRING, CARRYSTICK},
        !          1669:                "titan", 15,
        !          1670:                0,
        !          1671:                {25,    25,     6,      340000, 45,     -6,     HPT("0d8+400"),
        !          1672:                "7d10/7d10"}},
        !          1673: {"the creator of liches (Vecna)",
        !          1674:                100,    TRUE,   TRUE,   'V',     "25",
        !          1675:                {ISMEAN, CANINWALL, ISUNIQUE, ISREGEN, CMAGICHIT, CANSNORE,
        !          1676:                 CANSUMMON, CANMISSILE, CANFRIGHTEN, CANBFIRE, NOFIRE, ISFLY,
        !          1677:                 CANHOLD, CARRYEYE, CANSEE, CANDANCE, ISINVIS, HALFDAMAGE,
        !          1678:                 CANTELEPORT, CARRYMISC, CARRYRING, CARRYSTICK, LOOKSTONE,
        !          1679:                 CANSLOW, CANBLIND},
        !          1680:                "lich", 15,
        !          1681:                0,
        !          1682:                {25,    25,     6,      350000, 47,     -8,     HPT("0d8+450"),
        !          1683:                "6d10/6d10"}},
        !          1684: {"quartermaster",
        !          1685:                0,      FALSE,  TRUE,   'q',    "18",
        !          1686:                {CANSELL, ISCLEAR, CANTELEPORT, ISFLY, CANSEE, STEALMAGIC,
        !          1687:                 NOFEAR, CANBSTAB},
        !          1688:                0, 0,
        !          1689:                50,
        !          1690:                {25,    18,     12,     20,     1,      -4,     HPT("1d8+1"),
        !          1691:                "1d10"}},
        !          1692: };

CVSweb