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

Annotation of early-roguelike/arogue5/rogue.c, Revision 1.1.1.1

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

CVSweb