Annotation of 43BSDReno/games/larn/data.c, revision 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.