Annotation of 43BSDReno/games/larn/data.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1988 Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms are permitted
                      6:  * provided that the above copyright notice and this paragraph are
                      7:  * duplicated in all such forms and that any documentation,
                      8:  * advertising materials, and other materials related to such
                      9:  * distribution and use acknowledge that the software was developed
                     10:  * by the University of California, Berkeley.  The name of the
                     11:  * University may not be used to endorse or promote products derived
                     12:  * from this software without specific prior written permission.
                     13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     16:  */
                     17: 
                     18: #ifndef lint
                     19: static char sccsid[] = "@(#)data.c     5.2 (Berkeley) 7/22/88";
                     20: #endif /* not lint */
                     21: 
                     22: /*     data.c          Larn is copyrighted 1986 by Noah Morgan. */
                     23: #define NODEFS
                     24: #include "header.h"
                     25: 
                     26: /*
                     27:        class[c[LEVEL]-1] gives the correct name of the players experience level
                     28:  */
                     29: static char aa1[] =    " mighty evil master";
                     30: static char aa2[] =    "apprentice demi-god";
                     31: static char aa3[] =    "  minor demi-god   ";
                     32: static char aa4[] =    "  major demi-god   ";
                     33: static char aa5[] =    "    minor deity    ";
                     34: static char aa6[] =    "    major deity    "; 
                     35: static char aa7[] =    "  novice guardian  ";
                     36: static char aa8[] =    "apprentice guardian";
                     37: static char aa9[] =    "    The Creator    ";
                     38: char *class[]=
                     39: {      "  novice explorer  ", "apprentice explorer", " practiced explorer",/*  -3*/
                     40:        "   expert explorer ", "  novice adventurer", "     adventurer    ",/*  -6*/
                     41:        "apprentice conjurer", "     conjurer      ", "  master conjurer  ",/*  -9*/
                     42:        "  apprentice mage  ", "        mage       ", "  experienced mage ",/* -12*/
                     43:        "     master mage   ", " apprentice warlord", "   novice warlord  ",/* -15*/
                     44:        "   expert warlord  ", "   master warlord  ", " apprentice gorgon ",/* -18*/
                     45:        "       gorgon      ", "  practiced gorgon ", "   master gorgon   ",/* -21*/
                     46:        "    demi-gorgon    ", "    evil master    ", " great evil master ",/* -24*/
                     47:          aa1       ,   aa1       ,   aa1       ,/* -27*/
                     48:          aa1       ,   aa1       ,   aa1       ,/* -30*/
                     49:          aa1       ,   aa1       ,   aa1       ,/* -33*/
                     50:          aa1       ,   aa1       ,   aa1       ,/* -36*/
                     51:          aa1       ,   aa1       ,   aa1       ,/* -39*/
                     52:          aa2       ,   aa2       ,   aa2       ,/* -42*/
                     53:          aa2       ,   aa2       ,   aa2       ,/* -45*/
                     54:          aa2       ,   aa2       ,   aa2       ,/* -48*/
                     55:          aa3       ,   aa3       ,   aa3       ,/* -51*/
                     56:          aa3       ,   aa3       ,   aa3       ,/* -54*/
                     57:          aa3       ,   aa3       ,   aa3       ,/* -57*/
                     58:          aa4       ,   aa4       ,   aa4       ,/* -60*/
                     59:          aa4       ,   aa4       ,   aa4       ,/* -63*/
                     60:          aa4       ,   aa4       ,   aa4       ,/* -66*/
                     61:          aa5       ,   aa5       ,   aa5       ,/* -69*/
                     62:          aa5       ,   aa5       ,   aa5       ,/* -72*/
                     63:          aa5       ,   aa5       ,   aa5       ,/* -75*/
                     64:          aa6       ,   aa6       ,   aa6       ,/* -78*/
                     65:          aa6       ,   aa6       ,   aa6       ,/* -81*/
                     66:          aa6       ,   aa6       ,   aa6       ,/* -84*/
                     67:          aa7       ,   aa7       ,   aa7       ,/* -87*/
                     68:          aa8       ,   aa8       ,   aa8       ,/* -90*/
                     69:          aa8       ,   aa8       ,   aa8       ,/* -93*/
                     70:        "  earth guardian   ", "   air guardian    ", "   fire guardian   ",/* -96*/
                     71:        "  water guardian   ", "  time guardian    ", " ethereal guardian ",/* -99*/
                     72:          aa9       ,   aa9       ,   aa9       ,/* -102*/
                     73: };
                     74: 
                     75: /*
                     76:        table of experience needed to be a certain level of player
                     77:        skill[c[LEVEL]] is the experience required to attain the next level
                     78:  */
                     79: #define MEG 1000000
                     80: long skill[] = {
                     81: 0, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120,                  /*  1-11 */
                     82: 10240, 20480, 40960, 100000, 200000, 400000, 700000, 1*MEG,          /* 12-19 */
                     83: 2*MEG,3*MEG,4*MEG,5*MEG,6*MEG,8*MEG,10*MEG,                          /* 20-26 */
                     84: 12*MEG,14*MEG,16*MEG,18*MEG,20*MEG,22*MEG,24*MEG,26*MEG,28*MEG,      /* 27-35 */
                     85: 30*MEG,32*MEG,34*MEG,36*MEG,38*MEG,40*MEG,42*MEG,44*MEG,46*MEG,      /* 36-44 */
                     86: 48*MEG,50*MEG,52*MEG,54*MEG,56*MEG,58*MEG,60*MEG,62*MEG,64*MEG,      /* 45-53 */
                     87: 66*MEG,68*MEG,70*MEG,72*MEG,74*MEG,76*MEG,78*MEG,80*MEG,82*MEG,      /* 54-62 */
                     88: 84*MEG,86*MEG,88*MEG,90*MEG,92*MEG,94*MEG,96*MEG,98*MEG,100*MEG,     /* 63-71 */
                     89: 105*MEG,110*MEG,115*MEG,120*MEG, 125*MEG, 130*MEG, 135*MEG, 140*MEG, /* 72-79 */
                     90: 145*MEG,150*MEG,155*MEG,160*MEG, 165*MEG, 170*MEG, 175*MEG, 180*MEG, /* 80-87 */
                     91: 185*MEG,190*MEG,195*MEG,200*MEG, 210*MEG, 220*MEG, 230*MEG, 240*MEG, /* 88-95 */
                     92: 250*MEG,260*MEG,270*MEG,280*MEG, 290*MEG, 300*MEG                    /* 96-101*/
                     93: };
                     94: #undef MEG
                     95: 
                     96: char *lpbuf,*lpnt,*inbuffer,*lpend;    /* input/output pointers to the buffers */
                     97: struct cel *cell;      /*      pointer to the dungeon storage  */
                     98: short hitp[MAXX][MAXY];                /*      monster hp on level             */
                     99: short iarg[MAXX][MAXY];        /*      arg for the item array  */
                    100: char item[MAXX][MAXY]; /*      objects in maze if any  */
                    101: char know[MAXX][MAXY]; /*      1 or 0 if here before   */
                    102: char mitem[MAXX][MAXY];        /*      monster item array              */
                    103: char moved[MAXX][MAXY];        /*      monster movement flags  */
                    104: char stealth[MAXX][MAXY];      /*  0=sleeping 1=awake monst*/
                    105: char iven[26];                 /*      inventory for player                    */
                    106: short ivenarg[26];             /*      inventory for player                    */
                    107: char lastmonst[40];            /*      this has the name of the current monster        */
                    108: char beenhere[MAXLEVEL+MAXVLEVEL]={0}; /*  1 if have been on this level */
                    109: char VERSION=VER;      /*      this is the present version # of the program    */
                    110: char SUBVERSION=SUBVER;
                    111: char nosignal=0;       /* set to 1 to disable the signals from doing anything */
                    112: char predostuff=0;     /*  2 means that the trap handling routines must do a
                    113:                                                showplayer() after a trap.  0 means don't showplayer()
                    114:                                                0 - we are in create player screen
                    115:                                                1 - we are in welcome screen
                    116:                                                2 - we are in the normal game   */
                    117: char loginname[20];            /* players login name */
                    118: char logname[LOGNAMESIZE];     /* players name storage for scoring                             */
                    119: char sex=1;                            /*  default is a man  0=woman                                           */
                    120: char boldon=1;                 /*  1=bold objects  0=inverse objects                           */
                    121: char ckpflag=0;                        /*      1 if want checkpointing of game, 0 otherwise    */
                    122: char cheat=0;                  /*      1 if the player has fudged save file                    */
                    123: char level=0;                  /*  cavelevel player is on = c[CAVELEVEL]                       */
                    124: char wizard=0;                 /*      the wizard mode flag                                                    */
                    125: short lastnum=0;               /* the number of the monster last hitting player        */
                    126: short hitflag=0;               /*      flag for if player has been hit when running    */
                    127: short hit2flag=0;              /*      flag for if player has been hit when running    */
                    128: short hit3flag=0;              /*      flag for if player has been hit flush input     */
                    129: short playerx,playery; /*      the room on the present level of the player             */
                    130: short lastpx,lastpy;   /*      0 --- MAXX-1  or  0 --- MAXY-1                                  */
                    131: short oldx,oldy;
                    132: short lasthx=0,lasthy=0;       /* location of monster last hit by player               */
                    133: short nobeep=0;                        /* true if program is not to beep                                       */
                    134: unsigned long randx=33601;     /*      the random number seed                                          */
                    135: long initialtime=0;                    /* time playing began                                                   */
                    136: long gtime=0;                          /*      the clock for the game                                          */
                    137: long outstanding_taxes=0;      /* present tax bill from score file                     */
                    138: long c[100],cbak[100];         /*      the character description arrays                        */
                    139: int enable_scroll=0;           /* constant for enabled/disabled scrolling regn */
                    140: char aborted[] = " aborted";
                    141: struct sphere *spheres=0; /*pointer to linked list for spheres of annihilation*/
                    142: char *levelname[]=
                    143: { " H"," 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10","V1","V2","V3" };
                    144: 
                    145: char objnamelist[]=" ATOP%^F&^+M=%^$$f*OD#~][[)))(((||||||||{?!BC}o:@.<<<<EVV))([[]]](^ [H*** ^^ S tsTLc............................................";
                    146: char monstnamelist[]=" BGHJKOScjtAELNQRZabhiCTYdegmvzFWflorXV pqsyUkMwDDPxnDDuD        ...............................................................";
                    147: char *objectname[]=
                    148: { 0,"a holy altar","a handsome jewel encrusted throne","the orb","a pit",
                    149:   "a staircase leading upwards","an elevator going up","a bubbling fountain",
                    150:   "a great marble statue","a teleport trap","the college of Larn",
                    151:   "a mirror","the DND store","a staircase going down","an elevator going down",
                    152:   "the bank of Larn","the 5th branch of the Bank of Larn",
                    153:   "a dead fountain","gold","an open door","a closed door",
                    154:   "a wall","The Eye of Larn","plate mail","chain mail","leather armor",
                    155:   "a sword of slashing","Bessman's flailing hammer","a sunsword",
                    156:   "a two handed sword","a spear","a dagger",
                    157:   "ring of extra regeneration","a ring of regeneration","a ring of protection",
                    158:   "an energy ring","a ring of dexterity","a ring of strength",
                    159:   "a ring of cleverness","a ring of increase damage","a belt of striking",
                    160:   "a magic scroll","a magic potion","a book","a chest",
                    161:   "an amulet of invisibility","an orb of dragon slaying",
                    162:   "a scarab of negate spirit","a cube of undead control",
                    163:   "device of theft prevention","a brilliant diamond","a ruby",
                    164:   "an enchanting emerald","a sparkling sapphire","the dungeon entrance",
                    165:   "a volcanic shaft leaning downward","the base of a volcanic shaft",
                    166:   "a battle axe","a longsword","a flail","ring mail","studded leather armor",
                    167:   "splint mail","plate armor","stainless plate armor","a lance of death",
                    168:   "an arrow trap","an arrow trap","a shield","your home",
                    169:   "gold","gold","gold","a dart trap",
                    170:   "a dart trap","a trapdoor","a trapdoor","the local trading post",
                    171:   "a teleport trap", "a massive throne",
                    172:   "a sphere of annihilation","a handsome jewel encrusted throne",
                    173:   "the Larn Revenue Service","a fortune cookie","","","","","","",
                    174:   "","","","","","","","","","","","","","","","","","","",""
                    175:  };
                    176: 
                    177: 
                    178: /*
                    179:  *     for the monster data
                    180:  *
                    181:  *     array to do rnd() to create monsters <= a given level
                    182:  */
                    183: char monstlevel[] = { 5, 11, 17, 22, 27, 33, 39, 42, 46, 50, 53, 56, 59 };
                    184: 
                    185: struct monst monster[] = {
                    186: /*     NAME                    LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    187: ----------------------------------------------------------------- */
                    188: { "",                          0,      0,      0,      0,      0,       0,  3,   0,    0,      0       },
                    189: { "bat",                       1,      0,      1,      0,      0,       0,  3,   0,    1,      1       },
                    190: { "gnome",                     1,      10,     1,      0,      0,       0,  8,  30,    2,      2       },
                    191: { "hobgoblin",         1,      14,     2,      0,      0,       0,  5,  25,    3,      2       },
                    192: { "jackal",                    1,      17,     1,      0,      0,       0,  4,   0,    1,      1       },
                    193: { "kobold",                    1,      20,     1,      0,      0,       0,  7,  10,    1,      1       },
                    194: 
                    195: { "orc",                       2,      12,     1,      0,      0,       0,  9,  40,    4,      2       },
                    196: { "snake",                     2,      15,     1,      0,      0,       0,  3,   0,    3,      1       },
                    197: { "giant centipede",2, 14,     0,      4,      0,       0,  3,   0,    1,      2       },
                    198: { "jaculi",                    2,      20,     1,      0,      0,       0,  3,   0,    2,      1       },
                    199: { "troglodyte",                2,      10,     2,      0,      0,       0,  5,  80,    4,      3       },
                    200: { "giant ant",         2,      8,      1,      4,      0,       0,  4,   0,    5,      5       },
                    201: 
                    202: /*     NAME                    LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    203: ----------------------------------------------------------------- */
                    204: 
                    205: { "floating eye",      3,      8,      1,      0,      0,       0,  3,   0,     5,      2      },
                    206: { "leprechaun",                3,      3,      0,      8,      0,       0,  3,1500,    13,     45      },
                    207: { "nymph",                     3,      3,      0,      14,     0,       0,  9,   0,    18,     45      },
                    208: { "quasit",                    3,      5,      3,      0,      0,       0,  3,   0,    10,     15      },
                    209: { "rust monster",      3,      4,      0,      1,      0,       0,  3,   0,    18,     25      },
                    210: { "zombie",                    3,      12,     2,      0,      0,       0,  3,   0,     6,      7      },
                    211: 
                    212: { "assassin bug",      4,      9,      3,      0,      0,       0,  3,   0,    20,     15      },
                    213: { "bugbear",           4,      5,      4,      15,     0,       0,  5,  40,    20,     35      },
                    214: { "hell hound",                4,      5,      2,      2,      0,       0,  6,   0,    16,     35      },
                    215: { "ice lizard",                4,      11,     2,      10,     0,       0,  6,  50,    16,     25      },
                    216: { "centaur",           4,      6,      4,      0,      0,       0, 10,  40,    24,     45      },
                    217: 
                    218: /*     NAME                    LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    219: ----------------------------------------------------------------- */
                    220: 
                    221: { "troll",                     5,      4,      5,      0,      0,       0,  9,  80,    50,     300     },
                    222: { "yeti",                      5,      6,      4,      0,      0,       0,  5,  50,    35,     100     },
                    223: { "white dragon",      5,      2,      4,      5,      0,       0, 16, 500,    55,     1000},
                    224: { "elf",                       5,      8,      1,      0,      0,       0, 15,  50,    22,     35      },
                    225: { "gelatinous cube",5, 9,      1,      0,      0,       0,  3,   0,    22,     45      },
                    226: 
                    227: { "metamorph",         6,      7,      3,      0,      0,       0,  3,  0,             30,     40      },
                    228: { "vortex",                    6,      4,      3,      0,      0,       0,  3,  0,             30,     55      },
                    229: { "ziller",                    6,      15,     3,      0,      0,       0,  3,  0,             30,     35      },
                    230: { "violet fungi",      6,      12,     3,      0,      0,       0,  3,  0,             38,     100     },
                    231: { "wraith",                    6,      3,      1,      6,      0,       0,  3,  0,             30,     325     },
                    232: { "forvalaka",         6,      2,      5,      0,      0,       0,  7,  0,             50,     280     },
                    233: 
                    234: /*     NAME                    LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    235: ----------------------------------------------------------------- */
                    236: 
                    237: { "lama nobe",         7,      7,      3,      0,      0,       0,  6,  0,             35,     80      },
                    238: { "osequip",           7,      4,      3,      16,     0,       0,  4,  0,             35,     100     },
                    239: { "rothe",                     7,      15,     5,      0,      0,       0,  3,  100,   50,     250     },
                    240: { "xorn",                      7,      0,      6,      0,      0,       0, 13,  0,             60,     300     },
                    241: { "vampire",           7,      3,      4,      6,      0,       0, 17,  0,             50,     1000},
                    242: { "invisible stalker",7,3,     6,      0,      0,       0,  5,  0,             50,     350     },
                    243: 
                    244: { "poltergeist",       8,      1,      4,      0,      0,       0,  3,  0,             50,     450     },
                    245: { "disenchantress",    8,      3,      0,      9,      0,       0,  3,  0,             50,     500     },
                    246: { "shambling mound",8, 2,      5,      0,      0,       0,  6,  0,             45,     400     },
                    247: { "yellow mold",       8,      12,     4,      0,      0,       0,  3,  0,             35,     250     },
                    248: { "umber hulk",                8,      3,      7,      11,     0,       0, 14,  0,             65,     600     },
                    249: 
                    250: /*     NAME                    LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    251: ----------------------------------------------------------------- */
                    252: 
                    253: { "gnome king",                9,      -1,     10,     0,      0,       0, 18,  2000,  100,3000        },
                    254: { "mimic",                     9,       5,     6,      0,      0,       0,  8,  0,             55,     99              },
                    255: { "water lord",                9, -10, 15,     7,      0,       0, 20,  0,             150,15000       },
                    256: { "bronze dragon",     9,       2,     9,      3,      0,       0, 16,  300,   80, 4000        },
                    257: { "green dragon",      9,       3,     8,      10,     0,       0, 15,  200,   70, 2500        },
                    258: { "purple worm",       9,      -1,     11,     0,      0,       0,  3,  100,   120,15000       },
                    259: { "xvart",                     9,      -2,     12,     0,      0,       0, 13,  0,             90,     1000    },
                    260: 
                    261: { "spirit naga",       10, -20,12,     12,     0,       0, 23,  0,             95, 20000       },
                    262: { "silver dragon",     10,     -1,     12,     3,      0,       0, 20,  700,   100,10000       },
                    263: { "platinum dragon",10,        -5,     15,     13,     0,       0, 22,  1000,  130,24000       },
                    264: { "green urchin",      10,     -3,     12,     0,      0,       0,  3,  0,             85, 5000        },
                    265: { "red dragon",                10,     -2,     13,     3,      0,       0, 19,  800,   110,14000       },
                    266: 
                    267: { "type I demon lord", 12,-30, 18,     0,       0,  0, 20,     0,      140,50000       },
                    268: { "type II demon lord",        13,-30, 18,     0,       0,  0, 21,     0,      160,75000       },
                    269: { "type III demon lord",14,-30,        18,     0,       0,  0, 22,     0,      180,100000      },
                    270: { "type IV demon lord",        15,-35, 20,     0,       0,  0, 23,     0,      200,125000      },
                    271: { "type V demon lord", 16,-40, 22,     0,       0,  0, 24,     0,      220,150000      },
                    272: { "type VI demon lord",        17,-45, 24,     0,       0,  0, 25,     0,      240,175000      },
                    273: { "type VII demon lord",18,-70,        27,     6,       0,  0, 26,     0,      260,200000      },
                    274: { "demon prince",              25,-127,30,     6,       0,  0, 28,     0,      345,300000      }
                    275: 
                    276: /*     NAME                            LV      AC      DAM     ATT     DEF     GEN INT GOLD    HP      EXP
                    277: --------------------------------------------------------------------- */
                    278:  };
                    279: 
                    280: /*     name array for scrolls          */
                    281: 
                    282: char *scrollname[] = {
                    283: "\0enchant armor",
                    284: "\0enchant weapon",
                    285: "\0enlightenment",
                    286: "\0blank paper",
                    287: "\0create monster",
                    288: "\0create artifact",
                    289: "\0aggravate monsters",
                    290: "\0time warp",
                    291: "\0teleportation",
                    292: "\0expanded awareness",
                    293: "\0haste monsters",
                    294: "\0monster healing",
                    295: "\0spirit protection",
                    296: "\0undead protection",
                    297: "\0stealth",
                    298: "\0magic mapping",
                    299: "\0hold monsters",
                    300: "\0gem perfection",
                    301: "\0spell extension",
                    302: "\0identify",
                    303: "\0remove curse",
                    304: "\0annihilation",
                    305: "\0pulverization",
                    306: "\0life protection",
                    307: "\0 ",
                    308: "\0 ",
                    309: "\0 ",
                    310: "\0 "
                    311:  };
                    312: 
                    313: /*     name array for magic potions    */
                    314: char *potionname[] = {
                    315: "\0sleep",
                    316: "\0healing",
                    317: "\0raise level",
                    318: "\0increase ability",
                    319: "\0wisdom",
                    320: "\0strength",
                    321: "\0raise charisma",
                    322: "\0dizziness",
                    323: "\0learning",
                    324: "\0gold detection",
                    325: "\0monster detection",
                    326: "\0forgetfulness",
                    327: "\0water",
                    328: "\0blindness",
                    329: "\0confusion",
                    330: "\0heroism",
                    331: "\0sturdiness",
                    332: "\0giant strength",
                    333: "\0fire resistance",
                    334: "\0treasure finding",
                    335: "\0instant healing",
                    336: " cure dianthroritis",
                    337: "\0poison",
                    338: "\0see invisible",
                    339: "\0 ",
                    340: "\0 ",
                    341: "\0 ",
                    342: "\0 ",
                    343: "\0 ",
                    344: "\0 ",
                    345: "\0 ",
                    346: "\0 ",
                    347: "\0 ",
                    348: "\0 ",
                    349: "\0 "
                    350:  };
                    351: 
                    352: 
                    353: /*
                    354:        spell data
                    355:  */
                    356: char spelknow[SPNUM]={0};
                    357: char splev[] = { 1, 4, 9, 14, 18, 22, 26, 29, 32, 35, 37, 37, 37, 37, 37 };
                    358: 
                    359: char *spelcode[]={
                    360:        "pro",  "mle",  "dex",  "sle",  "chm",  "ssp",
                    361:        "web",  "str",  "enl",  "hel",  "cbl",  "cre",  "pha",  "inv",
                    362:        "bal",  "cld",  "ply",  "can",  "has",  "ckl",  "vpr",
                    363:        "dry",  "lit",  "drl",  "glo",  "flo",  "fgr",
                    364:        "sca",  "hld",  "stp",  "tel",  "mfi", /* 31 */
                    365:        "sph",  "gen",  "sum",  "wtw",  "alt",  "per"
                    366:  };
                    367: 
                    368: char *spelname[]={
                    369:        "protection",                           "magic missile",                "dexterity",
                    370:        "sleep",                                        "charm monster",                "sonic spear",
                    371: 
                    372:        "web",                                          "strength",                             "enlightenment",
                    373:        "healing",                                      "cure blindness",               "create monster",
                    374:        "phantasmal forces",            "invisibility",
                    375: 
                    376:        "fireball",                                     "cold",                                 "polymorph",
                    377:        "cancellation",                         "haste self",                   "cloud kill",
                    378:        "vaporize rock",
                    379: 
                    380:        "dehydration",                          "lightning",                    "drain life",
                    381:        "invulnerability",                      "flood",                                "finger of death",
                    382: 
                    383:        "scare monster",                        "hold monster",                 "time stop",
                    384:        "teleport away",                        "magic fire",
                    385: 
                    386:        "sphere of annihilation",       "genocide",                             "summon demon",
                    387:        "walk through walls",           "alter reality",                "permanence",
                    388:        ""
                    389:  };
                    390: 
                    391: char *speldescript[]={
                    392: /* 1 */
                    393:        "generates a +2 protection field",
                    394:        "creates and hurls a magic missile equivalent to a + 1 magic arrow",
                    395:        "adds +2 to the casters dexterity",
                    396:        "causes some monsters to go to sleep",
                    397:        "some monsters may be awed at your magnificence",
                    398:        "causes your hands to emit a screeching sound toward what they point",
                    399: /* 7 */
                    400:        "causes strands of sticky thread to entangle an enemy",
                    401:        "adds +2 to the casters strength for a short term",
                    402:        "the caster becomes aware of things around him",
                    403:        "restores some hp to the caster",
                    404:        "restores sight to one so unfortunate as to be blinded",
                    405:        "creates a monster near the caster appropriate for the location",
                    406:        "creates illusions, and if believed, monsters die",
                    407:        "the caster becomes invisible",
                    408: /* 15 */
                    409:        "makes a ball of fire that burns on what it hits",
                    410:        "sends forth a cone of cold which freezes what it touches",
                    411:        "you can find out what this does for yourself",
                    412:        "negates the ability of a monster to use his special abilities",
                    413:        "speeds up the casters movements",
                    414:        "creates a fog of poisonous gas which kills all that is within it",
                    415:        "this changes rock to air",
                    416: /* 22 */
                    417:        "dries up water in the immediate vicinity",
                    418:        "you finger will emit a lightning bolt when this spell is cast",
                    419:        "subtracts hit points from both you and a monster",
                    420:        "this globe helps to protect the player from physical attack",
                    421:        "this creates an avalanche of H2O to flood the immediate chamber",
                    422:        "this is a holy spell and calls upon your god to back you up",
                    423: /* 28 */
                    424:        "terrifies the monster so that hopefully he wont hit the magic user",
                    425:        "the monster is frozen in his tracks if this is successful",
                    426:        "all movement in the caverns ceases for a limited duration",
                    427:        "moves a particular monster around in the dungeon (hopefully away from you)",
                    428:        "this causes a curtain of fire to appear all around you",
                    429: /* 33 */
                    430:        "anything caught in this sphere is instantly killed.  Warning -- dangerous",
                    431:        "eliminates a species of monster from the game -- use sparingly",
                    432:        "summons a demon who hopefully helps you out",
                    433:        "allows the player to walk through walls for a short period of time",
                    434:        "god only knows what this will do",
                    435:        "makes a character spell permanent, i. e. protection, strength, etc.",
                    436:        ""
                    437:  };
                    438: 
                    439: char spelweird[MAXMONST+8][SPNUM] = {
                    440: /*                      p m d s c s    w s e h c c p i    b c p c h c v    d l d g f f    s h s t m    s g s w a p */
                    441: /*                      r l e l h s    e t n e b r h n    a l l a a k p    r i r l l g    c l t e f    p e u t l e */
                    442: /*                      o e x e m p    b r l l l e a v    l d y n s l r    y t l o o r    a d p l i    h n m w t r */
                    443:        
                    444: 
                    445: /*            bat */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    446: /*          gnome */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    447: /*      hobgoblin */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    448: /*         jackal */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    449: /*         kobold */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    450: 
                    451: /*            orc */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   4,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    452: /*          snake */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    453: /*giant centipede */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    454: /*         jaculi */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    455: /*     troglodyte */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    456: 
                    457: /*      giant ant */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    458: /*   floating eye */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    459: /*     leprechaun */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    460: /*          nymph */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    461: /*         quasit */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    462: 
                    463: /*   rust monster */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   4,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    464: /*         zombie */ {  0,0,0,8,0,4,   0,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   4,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    465: /*   assassin bug */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    466: /*        bugbear */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    467: /*     hell hound */ {  0,6,0,0,0,0,   12,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    468: 
                    469: /*     ice lizard */ {  0,0,0,0,0,0,   11,0,0,0,0,0,0,0,  0,15,0,0,0,0,0,  0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    470: /*        centaur */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    471: /*          troll */ {  0,7,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   4,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    472: /*           yeti */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,15,0,0,0,0,0,  0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    473: /*   white dragon */ {  0,0,0,0,0,0,   0,0,0,0,0,0,14,0,  0,15,0,0,0,0,0,  4,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    474: 
                    475: /*            elf */ {  0,0,0,0,0,0,   0,0,0,0,0,0,14,5,  0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    476: /*gelatinous cube */ {  0,0,0,0,0,0,   2,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   0,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    477: /*      metamorph */ {  0,13,0,0,0,0,  2,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   4,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    478: /*         vortex */ {  0,13,0,0,0,10, 1,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    479: /*         ziller */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    480: 
                    481: /*   violet fungi */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    482: /*         wraith */ {  0,0,0,8,0,4,   0,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   4,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    483: /*      forvalaka */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    484: /*      lama nobe */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    485: /*        osequip */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    486: 
                    487: /*          rothe */ {  0,7,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    488: /*           xorn */ {  0,7,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   4,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    489: /*        vampire */ {  0,0,0,8,0,4,   0,0,0,0,0,0,0,0,   0,0,0,0,0,4,0,   0,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    490: /*invisible staker*/ {  0,0,0,0,0,0,   1,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    491: /*    poltergeist */ {  0,13,0,8,0,4,  1,0,0,0,0,0,0,0,   0,4,0,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    492: 
                    493: /* disenchantress */ {  0,0,0,8,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    494: /*shambling mound */ {  0,0,0,0,0,10,  0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    495: /*    yellow mold */ {  0,0,0,8,0,0,   1,0,0,0,0,0,4,0,   0,0,0,0,0,4,0,   0,0,0,0,0,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    496: /*     umber hulk */ {  0,7,0,0,0,0,   0,0,0,0,0,0,0,5,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    497: /*     gnome king */ {  0,7,0,0,3,0,   0,0,0,0,0,0,0,5,   0,0,9,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    498: 
                    499: /*          mimic */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    500: /*     water lord */ {  0,13,0,8,3,4,  1,0,0,0,0,0,0,0,   0,0,9,0,0,4,0,   0,0,0,0,16,4,  0,0,0,0,0,   0,0,0,0,0,0 },
                    501: /*  bronze dragon */ {  0,7,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    502: /*   green dragon */ {  0,7,0,0,0,0,   11,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    503: /*    purple worm */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    504: 
                    505: /*          xvart */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    506: /*    spirit naga */ {  0,13,0,8,3,4,  1,0,0,0,0,0,0,5,   0,4,9,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   0,0,0,0,0,0 },
                    507: /*  silver dragon */ {  0,6,0,9,0,0,   12,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    508: /*platinum dragon */ {  0,7,0,9,0,0,   11,0,0,0,0,0,14,0, 0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    509: /*   green urchin */ {  0,0,0,0,0,0,   0,0,0,0,0,0,0,0,   0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    510: /*     red dragon */ {  0,6,0,0,0,0,   12,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,   0,0,0,0,0,0,   0,0,0,0,0,   0,0,0,0,0,0 },
                    511: 
                    512: /*                      p m d s c s    w s e h c c p i    b c p c h c v    d l d g f f    s h s t m    s g s w a p */
                    513: /*                      r l e l h s    e t n e b r h n    a l l a a k p    r i r l l g    c l t e f    p e u t l e */
                    514: /*                      o e x e m p    b r l l l e a v    l d y n s l r    y t l o o r    a d p l i    h n m w t r */
                    515: 
                    516: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    517: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    518: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    519: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    520: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    521: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    522: /*     demon lord */ {  0,7,0,4,3,0,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   0,0,0,0,0,   9,0,0,0,0,0 },
                    523: /*   demon prince */ {  0,7,0,4,3,9,   1,0,0,0,0,0,14,5,  0,0,4,0,0,4,0,   4,0,0,0,4,4,   4,0,0,0,4,   9,0,0,0,0,0 }
                    524: 
                    525:  };
                    526: 
                    527: char *spelmes[] = { "",
                    528: /*  1 */       "the web had no effect on the %s",
                    529: /*  2 */       "the %s changed shape to avoid the web",
                    530: /*  3 */       "the %s isn't afraid of you",
                    531: /*  4 */       "the %s isn't affected",
                    532: /*  5 */       "the %s can see you with his infravision",
                    533: /*  6 */       "the %s vaporizes your missile",
                    534: /*  7 */       "your missile bounces off the %s",
                    535: /*  8 */       "the %s doesn't sleep",
                    536: /*  9 */       "the %s resists",
                    537: /* 10 */       "the %s can't hear the noise",
                    538: /* 11 */       "the %s's tail cuts it free of the web",
                    539: /* 12 */       "the %s burns through the web",
                    540: /* 13 */       "your missiles pass right through the %s",
                    541: /* 14 */       "the %s sees through your illusions",
                    542: /* 15 */       "the %s loves the cold!",
                    543: /* 16 */       "the %s loves the water!"
                    544:  };
                    545: 
                    546: char to_lower[]= /* tolower[character] = lower case converted character */
                    547:     {
                    548:     0000,0001,0002,0003,0004,0005,0006,0007,0010,0011,0012,0013,0014,0015,0016,0017, /* NUL-SI*/
                    549:     0020,0021,0022,0023,0024,0025,0026,0027,0030,0031,0032,0033,0034,0035,0036,0037, /* DLE-US*/
                    550:     0040,0041,0042,0043,0044,0045,0046,0047,0050,0051,0052,0053,0054,0055,0056,0057, /* SP-/ */
                    551:     0060,0061,0062,0063,0064,0065,0066,0067,0070,0071,0072,0073,0074,0075,0076,0077, /* 0-? */
                    552:     0100,0141,0142,0143,0144,0145,0146,0147,0150,0151,0152,0153,0154,0155,0156,0157, /* @-O */
                    553:     0160,0161,0162,0163,0164,0165,0166,0167,0170,0171,0172,0133,0134,0135,0136,0137, /* P-_ */
                    554:     0140,0141,0142,0143,0144,0145,0146,0147,0150,0151,0152,0153,0154,0155,0156,0157, /* `-o */
                    555:     0160,0161,0162,0163,0164,0165,0166,0167,0170,0171,0172,0173,0174,0175,0176,0177, /* p-DEL */
                    556:     };
                    557: 
                    558: char to_upper[]= /* toupper[character] = upper case converted character */
                    559:     {
                    560:     0000,0001,0002,0003,0004,0005,0006,0007,0010,0011,0012,0013,0014,0015,0016,0017, /* NUL-SI*/
                    561:     0020,0021,0022,0023,0024,0025,0026,0027,0030,0031,0032,0033,0034,0035,0036,0037, /* DLE-US*/
                    562:     0040,0041,0042,0043,0044,0045,0046,0047,0050,0051,0052,0053,0054,0055,0056,0057, /* SP-/ */
                    563:     0060,0061,0062,0063,0064,0065,0066,0067,0070,0071,0072,0073,0074,0075,0076,0077, /* 0-? */
                    564:     0100,0101,0102,0103,0104,0105,0106,0107,0110,0111,0112,0113,0114,0115,0116,0117, /* @-O */
                    565:     0120,0121,0122,0123,0124,0125,0126,0127,0130,0131,0132,0133,0134,0135,0136,0137, /* P-_ */
                    566:     0140,0101,0102,0103,0104,0105,0106,0107,0110,0111,0112,0113,0114,0115,0116,0117, /* `-o */
                    567:     0120,0121,0122,0123,0124,0125,0126,0127,0130,0131,0132,0173,0174,0175,0176,0177, /* p-DEL */
                    568:     };
                    569: 
                    570: char is_digit[]=  /* isdigit[character] = TRUE || FALSE */
                    571:     {
                    572:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* NUL-SI*/
                    573:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* DLE-US*/
                    574:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* SP-/ */
                    575:     1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0-? */
                    576:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* @-O */
                    577:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* P-_ */
                    578:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* `-o */
                    579:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* p-DEL */
                    580:     };
                    581: 
                    582: char is_alpha[]=  /* isalpha[character] = TRUE || FALSE */
                    583:     {
                    584:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* NUL-SI*/
                    585:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* DLE-US*/
                    586:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* SP-/ */
                    587:     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0-? */
                    588:     0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* @-O */
                    589:     1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* P-_ */
                    590:     0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* `-o */
                    591:     1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* p-DEL */
                    592:     };
                    593: 
                    594: /*
                    595:  *     function to create scroll numbers with appropriate probability of 
                    596:  *     occurrence
                    597:  *
                    598:  *     0 - armor                       1 - weapon              2 - enlightenment       3 - paper
                    599:  *     4 - create monster      5 - create item 6 - aggravate           7 - time warp
                    600:  *     8 - teleportation       9 - expanded awareness                          10 - haste monst
                    601:  *     11 - heal monster       12 - spirit protection          13 - undead protection
                    602:  *     14 - stealth            15 - magic mapping                      16 - hold monster
                    603:  *     17 - gem perfection 18 - spell extension                19 - identify
                    604:  *     20 - remove curse       21 - annihilation                       22 - pulverization
                    605:  *  23 - life protection
                    606:  */
                    607: char scprob[]= { 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3,
                    608:        3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9,
                    609:        9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14,
                    610:        15, 15, 16, 16, 16, 17, 17, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 22,
                    611:        22, 22, 23 };
                    612: 
                    613: /*
                    614:  *     function to return a potion number created with appropriate probability
                    615:  *     of occurrence
                    616:  *
                    617:  *     0 - sleep                               1 - healing                                     2 - raise level
                    618:  *     3 - increase ability    4 - gain wisdom                         5 - gain strength
                    619:  *     6 - charismatic character       7 - dizziness                   8 - learning
                    620:  *     9 - gold detection              10 - monster detection          11 - forgetfulness
                    621:  *     12 - water                              13 - blindness                          14 - confusion
                    622:  *     15 - heroism                    16 - sturdiness                         17 - giant strength
                    623:  *     18 - fire resistance    19 - treasure finding           20 - instant healing
                    624:  *     21 - cure dianthroritis 22 - poison                                     23 - see invisible
                    625:  */
                    626: char potprob[] = { 0, 0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 20, 22, 22, 23, 23 };
                    627: 
                    628: char nlpts[] = { 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7 };
                    629: char nch[] = { 0, 0, 0, 1, 1, 1, 2, 2, 3, 4 };
                    630: char nplt[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 4 };
                    631: char ndgg[] = { 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5 };
                    632: char nsw[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3 };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.