Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

const.c

Go to the documentation of this file.
00001 /***************************************************************************
00002  *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
00003  *  Michael Seifert, Hans Henrik Strfeldt, Tom Madsen, and Katja Nyboe.    *
00004  *                                                                         *
00005  *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
00006  *  Chastain, Michael Quan, and Mitchell Tse.                              *
00007  *                                                                         *
00008  *  In order to use any part of this Merc Diku Mud, you must comply with   *
00009  *  both the original Diku license in 'license.doc' as well the Merc       *
00010  *  license in 'license.txt'.  In particular, you may not remove either of *
00011  *  these copyright notices.                                               *
00012  *                                                                         *
00013  *  Much time and thought has gone into this software and you are          *
00014  *  benefitting.  We hope that you share your changes too.  What goes      *
00015  *  around, comes around.                                                  *
00016  **************************************************************************/
00017 
00018 /***************************************************************************
00019  *   ROM 2.4 is copyright 1993-1998 Russ Taylor                            *
00020  *   ROM has been brought to you by the ROM consortium                     *
00021  *       Russ Taylor (rtaylor@hypercube.org)                               *
00022  *       Gabrielle Taylor (gtaylor@hypercube.org)                          *
00023  *       Brian Moore (zump@rom.org)                                        *
00024  *   By using this code, you have agreed to follow the terms of the        *
00025  *   ROM license, in the file Rom24/doc/rom.license                        *
00026  **************************************************************************/
00027 
00028 #if defined(macintosh)
00029 #include <types.h>
00030 #else
00031 #include <sys/types.h>
00032 #endif
00033 #include <stdio.h>
00034 #include <time.h>
00035 #include "merc.h"
00036 #include "magic.h"
00037 #include "interp.h"
00038 
00039 
00040 /* item type list */
00041 
00042 
00043 
00044 
00045 
00046 const struct item_type item_table[] = {
00047     {ITEM_LIGHT, "light"},
00048     {ITEM_SCROLL, "scroll"},
00049     {ITEM_WAND, "wand"},
00050     {ITEM_STAFF, "staff"},
00051     {ITEM_WEAPON, "weapon"},
00052     {ITEM_TREASURE, "treasure"},
00053     {ITEM_ARMOR, "armor"},
00054     {ITEM_POTION, "potion"},
00055     {ITEM_CLOTHING, "clothing"},
00056     {ITEM_FURNITURE, "furniture"},
00057     {ITEM_TRASH, "trash"},
00058     {ITEM_CONTAINER, "container"},
00059     {ITEM_DRINK_CON, "drink"},
00060     {ITEM_KEY, "key"},
00061     {ITEM_FOOD, "food"},
00062     {ITEM_MONEY, "money"},
00063     {ITEM_BOAT, "boat"},
00064     {ITEM_CORPSE_NPC, "npc_corpse"},
00065     {ITEM_CORPSE_PC, "pc_corpse"},
00066     {ITEM_FOUNTAIN, "fountain"},
00067     {ITEM_PILL, "pill"},
00068     {ITEM_PROTECT, "protect"},
00069     {ITEM_MAP, "map"},
00070     {ITEM_PORTAL, "portal"},
00071     {ITEM_WARP_STONE, "warp_stone"},
00072     {ITEM_ROOM_KEY, "room_key"},
00073     {ITEM_GEM, "gem"},
00074     {ITEM_JEWELRY, "jewelry"},
00075     {ITEM_JUKEBOX, "jukebox"},
00076     {TAILOR_LEAT, "tailor_leather"},
00077     {0, NULL}
00078 };
00079 
00080 
00081 /* weapon selection table */
00082 const struct weapon_type weapon_table[] = {
00083     {"sword", OBJ_VNUM_SCHOOL_SWORD, WEAPON_SWORD, &gsn_sword},
00084     {"mace", OBJ_VNUM_SCHOOL_MACE, WEAPON_MACE, &gsn_mace},
00085     {"dagger", OBJ_VNUM_SCHOOL_DAGGER, WEAPON_DAGGER, &gsn_dagger},
00086     {"axe", OBJ_VNUM_SCHOOL_AXE, WEAPON_AXE, &gsn_axe},
00087     {"staff", OBJ_VNUM_SCHOOL_STAFF, WEAPON_SPEAR, &gsn_spear},
00088     {"flail", OBJ_VNUM_SCHOOL_FLAIL, WEAPON_FLAIL, &gsn_flail},
00089     {"whip", OBJ_VNUM_SCHOOL_WHIP, WEAPON_WHIP, &gsn_whip},
00090     {"polearm", OBJ_VNUM_SCHOOL_POLEARM, WEAPON_POLEARM, &gsn_polearm},
00091     {NULL, 0, 0, NULL}
00092 };
00093 
00094 
00095 
00096 /* wiznet table and prototype for future flag setting */
00097 const struct wiznet_type wiznet_table[] = {
00098     {"on", WIZ_ON, IM},
00099     {"prefix", WIZ_PREFIX, IM},
00100     {"ticks", WIZ_TICKS, IM},
00101     {"logins", WIZ_LOGINS, IM},
00102     {"sites", WIZ_SITES, L4},
00103     {"links", WIZ_LINKS, L7},
00104     {"newbies", WIZ_NEWBIE, IM},
00105     {"spam", WIZ_SPAM, L5},
00106     {"deaths", WIZ_DEATHS, IM},
00107     {"resets", WIZ_RESETS, L4},
00108     {"mobdeaths", WIZ_MOBDEATHS, L4},
00109     {"flags", WIZ_FLAGS, L5},
00110     {"penalties", WIZ_PENALTIES, L5},
00111     {"saccing", WIZ_SACCING, L5},
00112     {"levels", WIZ_LEVELS, IM},
00113     {"load", WIZ_LOAD, L2},
00114     {"restore", WIZ_RESTORE, L2},
00115     {"snoops", WIZ_SNOOPS, L2},
00116     {"switches", WIZ_SWITCHES, L2},
00117     {"secure", WIZ_SECURE, L1},
00118     {"memcheck", WIZ_MEMCHECK, ML},
00119     {NULL, 0, 0}
00120 };
00121 
00122 /* attack table  -- not very organized :( */
00123 const struct attack_type attack_table[MAX_DAMAGE_MESSAGE] = {
00124     {"none", "hit", -1},        /*  0 */
00125     {"slice", "slice", DAM_SLASH},
00126     {"stab", "stab", DAM_PIERCE},
00127     {"slash", "slash", DAM_SLASH},
00128     {"whip", "whip", DAM_SLASH},
00129     {"claw", "claw", DAM_SLASH},    /*  5 */
00130     {"blast", "blast", DAM_BASH},
00131     {"pound", "pound", DAM_BASH},
00132     {"crush", "crush", DAM_BASH},
00133     {"grep", "grep", DAM_SLASH},
00134     {"bite", "bite", DAM_PIERCE},    /* 10 */
00135     {"pierce", "pierce", DAM_PIERCE},
00136     {"suction", "suction", DAM_BASH},
00137     {"beating", "beating", DAM_BASH},
00138     {"digestion", "digestion", DAM_ACID},
00139     {"charge", "charge", DAM_BASH},    /* 15 */
00140     {"slap", "slap", DAM_BASH},
00141     {"punch", "punch", DAM_BASH},
00142     {"wrath", "wrath", DAM_ENERGY},
00143     {"magic", "magic", DAM_ENERGY},
00144     {"divine", "divine power", DAM_HOLY},    /* 20 */
00145     {"cleave", "cleave", DAM_SLASH},
00146     {"scratch", "scratch", DAM_PIERCE},
00147     {"peck", "peck", DAM_PIERCE},
00148     {"peckb", "peck", DAM_BASH},
00149     {"chop", "chop", DAM_SLASH},    /* 25 */
00150     {"sting", "sting", DAM_PIERCE},
00151     {"smash", "smash", DAM_BASH},
00152     {"shbite", "shocking bite", DAM_LIGHTNING},
00153     {"flbite", "flaming bite", DAM_FIRE},
00154     {"frbite", "freezing bite", DAM_COLD},    /* 30 */
00155     {"acbite", "acidic bite", DAM_ACID},
00156     {"chomp", "chomp", DAM_PIERCE},
00157     {"drain", "life drain", DAM_NEGATIVE},
00158     {"thrust", "thrust", DAM_PIERCE},
00159     {"slime", "slime", DAM_ACID},
00160     {"shock", "shock", DAM_LIGHTNING},
00161     {"thwack", "thwack", DAM_BASH},
00162     {"flame", "flame", DAM_FIRE},
00163     {"chill", "chill", DAM_COLD},
00164     {NULL, NULL, 0}
00165 };
00166 
00167 /* race table */
00168 const struct race_type race_table[] = {
00169 /*
00170     {
00171     name,        pc_race?,
00172     act bits,    aff_by bits,    off bits,
00173     imm,        res,        vuln,
00174     form,        parts 
00175     },
00176 */
00177     {"unique", FALSE, 0, 0, 0, 0, 0, 0, 0, 0},
00178 
00179     {
00180      "human", TRUE,
00181      0, 0, 0,
00182      0, 0, 0,
00183      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00184      0},
00185 
00186     {
00187      "kender", TRUE,
00188      0, VULN_DISEASE, VULN_POISON,
00189      0, 0, 0,
00190      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00191      0},
00192 
00193     {
00194      "elf", TRUE,
00195      0, AFF_INFRARED, 0,
00196      0, RES_CHARM, VULN_IRON,
00197      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00198      0},
00199 
00200     {
00201      "dwarf", TRUE,
00202      0, AFF_INFRARED, 0,
00203      0, RES_POISON | RES_DISEASE, VULN_DROWNING,
00204      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00205      0},
00206 
00207     {
00208      "gnome", TRUE,
00209      0, 0, 0,
00210      0, RES_FIRE | RES_COLD, VULN_MENTAL | VULN_LIGHTNING,
00211      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00212      0},
00213 
00214     {
00215      "minotaur", TRUE,
00216      0, 0, 0,
00217      0, VULN_FIRE , RES_COLD | RES_LIGHTNING,
00218      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00219      0},
00220 
00221      {"dragon", TRUE,
00222      0, AFF_INFRARED | AFF_BERSERK, 0,
00223      0, RES_FIRE | RES_BASH | RES_CHARM,
00224      VULN_PIERCE | VULN_COLD,
00225      A | H | Z, A | C | D | E | F | G | H | I | J | K | P | Q | U | V | X,
00226      0},
00227 
00228      {
00229      "bat", FALSE,
00230      0, AFF_FLYING | AFF_DARK_VISION, OFF_DODGE | OFF_FAST,
00231      0, 0, VULN_LIGHT,
00232      A | G | V, A | C | D | E | F | H | J | K | P,
00233      0},
00234 
00235     {
00236      "bear", FALSE,
00237      0, 0, OFF_CRUSH | OFF_DISARM | OFF_BERSERK,
00238      0, RES_BASH | RES_COLD, 0,
00239      A | G | V, A | B | C | D | E | F | H | J | K | U | V,
00240      0},
00241 
00242     {
00243      "cat", FALSE,
00244      0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
00245      0, 0, 0,
00246      A | G | V, A | C | D | E | F | H | J | K | Q | U | V,
00247      0},
00248 
00249     {
00250      "centipede", FALSE,
00251      0, AFF_DARK_VISION, 0,
00252      0, RES_PIERCE | RES_COLD, VULN_BASH,
00253      A | B | G | O, A | C | K,
00254      0},
00255 
00256     {
00257      "dog", FALSE,
00258      0, 0, OFF_FAST,
00259      0, 0, 0,
00260      A | G | V, A | C | D | E | F | H | J | K | U | V,
00261      0},
00262 
00263     {
00264      "doll", FALSE,
00265      0, 0, 0,
00266      IMM_COLD | IMM_POISON | IMM_HOLY | IMM_NEGATIVE | IMM_MENTAL |
00267      IMM_DISEASE | IMM_DROWNING, RES_BASH | RES_LIGHT,
00268      VULN_SLASH | VULN_FIRE | VULN_ACID | VULN_LIGHTNING | VULN_ENERGY,
00269      E | J | M | cc, A | B | C | G | H | K,
00270      0},
00271 
00272     
00273     {
00274      "fido", FALSE,
00275      0, 0, OFF_DODGE | ASSIST_RACE,
00276     0, 0, VULN_MAGIC,
00277      A | B | G | V, A | C | D | E | F | H | J | K | Q | V,
00278      0},
00279 
00280     {
00281      "fox", FALSE,
00282      0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
00283      0, 0, 0,
00284      A | G | V, A | C | D | E | F | H | J | K | Q | V,
00285      0},
00286 
00287     {
00288      "goblin", FALSE,
00289      0, AFF_INFRARED, 0,
00290      0, RES_DISEASE, VULN_MAGIC,
00291      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00292      0},
00293 
00294     {
00295      "hobgoblin", FALSE,
00296      0, AFF_INFRARED, 0,
00297      0, RES_DISEASE | RES_POISON, 0,
00298      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K | Y,
00299      0},
00300 
00301     {
00302      "kobold", FALSE,
00303      0, AFF_INFRARED, 0,
00304      0, RES_POISON, VULN_MAGIC,
00305      A | B | H | M | V, A | B | C | D | E | F | G | H | I | J | K | Q,
00306      0},
00307 
00308     {
00309      "lizard", FALSE,
00310      0, 0, 0,
00311      0, RES_POISON, VULN_COLD,
00312      A | G | X | cc, A | C | D | E | F | H | K | Q | V,
00313      0},
00314     {
00315      "modron", FALSE,
00316      0, AFF_INFRARED, ASSIST_RACE | ASSIST_ALIGN,
00317      IMM_CHARM | IMM_DISEASE | IMM_MENTAL | IMM_HOLY | IMM_NEGATIVE,
00318      RES_FIRE | RES_COLD | RES_ACID, 0,
00319      H, A | B | C | G | H | J | K,
00320      0},
00321 
00322     {
00323      "orc", FALSE,
00324      0, AFF_INFRARED, 0,
00325      0, RES_DISEASE, VULN_LIGHT,
00326      A | H | M | V, A | B | C | D | E | F | G | H | I | J | K,
00327      0},
00328     {
00329      "pig", FALSE,
00330      0, 0, 0,
00331      0, 0, 0,
00332      A | G | V, A | C | D | E | F | H | J | K,
00333      0},
00334 
00335     {
00336      "rabbit", FALSE,
00337      0, 0, OFF_DODGE | OFF_FAST,
00338      0, 0, 0,
00339      A | G | V, A | C | D | E | F | H | J | K,
00340      0},
00341 
00342     {
00343      "school monster", FALSE,
00344      ACT_NOALIGN, 0, 0,
00345      IMM_CHARM | IMM_SUMMON, 0, VULN_MAGIC,
00346      A | M | V, A | B | C | D | E | F | H | J | K | Q | U,
00347      0},
00348 
00349     {
00350      "snake", FALSE,
00351      0, 0, 0,
00352      0, RES_POISON, VULN_COLD,
00353      A | G | X | Y | cc, A | D | E | F | K | L | Q | V | X,
00354      0},
00355 
00356     {
00357      "song bird", FALSE,
00358      0, AFF_FLYING, OFF_FAST | OFF_DODGE,
00359      0, 0, 0,
00360      A | G | W, A | C | D | E | F | H | K | P,
00361      0},
00362 
00363     {
00364      "troll", FALSE,
00365      0, AFF_REGENERATION | AFF_INFRARED | AFF_DETECT_HIDDEN,
00366      OFF_BERSERK,
00367      0, RES_CHARM | RES_BASH, VULN_FIRE | VULN_ACID,
00368      A | B | H | M | V, A | B | C | D | E | F | G | H | I | J | K | U | V,
00369      0},
00370 
00371     {
00372      "water fowl", FALSE,
00373      0, AFF_SWIM | AFF_FLYING, 0,
00374      0, RES_DROWNING, 0,
00375      A | G | W, A | C | D | E | F | H | K | P,
00376      0},
00377 
00378     {
00379      "wolf", FALSE,
00380      0, AFF_DARK_VISION, OFF_FAST | OFF_DODGE,
00381      0, 0, 0,
00382      A | G | V, A | C | D | E | F | J | K | Q | V,
00383      0},
00384 
00385     {
00386      "wyvern", FALSE,
00387      0, AFF_FLYING | AFF_DETECT_INVIS | AFF_DETECT_HIDDEN,
00388      OFF_BASH | OFF_FAST | OFF_DODGE,
00389      IMM_POISON, 0, VULN_LIGHT,
00390      A | B | G | Z, A | C | D | E | F | H | J | K | Q | V | X,
00391      0},
00392     {
00393         "orc", FALSE,
00394         0, AFF_REGENERATION | AFF_INFRARED | AFF_DETECT_HIDDEN,
00395         OFF_BERSERK, 0, RES_CHARM | RES_BASH, VULN_MENTAL | VULN_ACID,
00396         A | B | H | M | V, A | B | C | D |E | F| G |H | I | J |K | U |V,
00397      0},
00398 
00399     {
00400      "unique", FALSE,
00401      0, 0, 0,
00402      0, 0, 0,
00403      0, 0,0},
00404 
00405 
00406     {
00407      NULL, 0, 0, 0, 0, 0, 0,0}
00408 };
00409 
00410 const struct pc_race_type pc_race_table[] = {
00411     {"null race", "", 0, {100, 100, 100, 100},
00412      {""}, {50, 50, 50, 50, 50}, {50, 50, 50, 50, 50}, 0},
00413 
00414 /*
00415     {
00416     "race name",     short name,     points,    { class multipliers },
00417     { bonus skills },
00418     { base stats },        { max stats },        size 
00419     },
00420 */
00421     {
00422      "Human", "Human", 0, {100, 100, 100, 100,100,100, 300},
00423      {"fast healing"},
00424      {50, 50, 50, 50, 50}, {60, 60, 60, 60, 60}, SIZE_MEDIUM,-2},
00425 
00426     {
00427      "Kender", "Kender", 0, {100, 100, 100, 100, 300, 300, 300},
00428      {"sneak", "staff", "steal", "dodge"},
00429      {34, 45, 45, 58, 35}, {45, 52, 52, 75, 44}, SIZE_TINY,0},
00430 
00431     {
00432      "Elf", " Elf ", 5, {100, 125, 100, 120, 300, 300, 300},
00433      {"sneak", "hide"},
00434      {33, 52, 55, 50, 40}, {43, 70, 70, 58, 50}, SIZE_SMALL,-3},
00435     {
00436      "Dwarf", "Dwarf", 8, {150, 100, 125, 100, 300, 300, 300},
00437      {"berserk"},
00438      {55, 40, 40, 40, 60}, {62, 50, 50, 50, 70}, SIZE_MEDIUM, -2},
00439 
00440     {
00441      "Gnome", "Gnome", 6, {200, 150, 150, 105, 300, 300, 300},
00442      {"bash", "fast healing"},
00443      {30, 67, 67, 35, 30}, {39, 77, 77, 44, 40}, SIZE_LARGE,-4},
00444     
00445     {
00446      "Minotaur", "Mintr", 6, {200, 150, 150, 105, 300, 300, 300},
00447      {"bash", "fast healing", "second attack", "kick"},
00448      {70, 40, 40, 50, 65}, {80, 46, 46, 60, 77}, SIZE_LARGE, -1},
00449    {
00450      "Dragon", "Dragon", 60,{200, 200, 200, 200, 300, 300, 300},
00451      {"bash", "fast healing", "second attack", "kick","third attack"},
00452      {90, 90, 90, 90, 90}, {100, 100, 100, 100, 100}, SIZE_LARGE,-8}
00453 };
00454 
00455 
00456 /*Continent table*/
00457 
00458 struct cont_table conts_table[MAX_CONT] = {
00459     {
00460         ""},
00461     {
00462         "Vehicle"},
00463     {
00464         "Ocean"},
00465     {
00466         "Cartole"},
00467     {
00468         "None"},
00469     {
00470         "None"},
00471     {
00472         "None"},
00473     {
00474         "None"},
00475     {
00476         "None"},
00477     {
00478         "None"},
00479     {
00480         "None"},
00481     {
00482         "None"},
00483     {
00484         "None"},
00485     {
00486         "None"},
00487     {
00488         "None"}
00489 };
00490 
00491 
00492 /*  
00493  * Class table.
00494  */
00495 struct class_type class_table[MAX_CLASS] = {
00496   /*  {
00497      "mage", "Mag", STAT_INT, OBJ_VNUM_SCHOOL_DAGGER,
00498      {3018, 9618}, 75, 25, 0, 6, 8, TRUE,
00499      "mage basics", "mage default"},
00500 
00501     {
00502      "cleric", "Cle", STAT_WIS, OBJ_VNUM_SCHOOL_MACE,
00503      {3003, 9619}, 75, 20, -1, 7, 10, TRUE,
00504      "cleric basics", "cleric default"},
00505 
00506     {
00507      "thief", "Thi", STAT_DEX, OBJ_VNUM_SCHOOL_DAGGER,
00508      {3028, 9639}, 75, 12, -10, 8, 13, FALSE,
00509      "thief basics", "thief default"},
00510 
00511     {
00512      "warrior", "War", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
00513      {3022, 9633}, 75, 8, -15, 11, 15, FALSE,
00514      "warrior basics", "warrior default"},
00515      {*/
00516      /*"dragon", "", STAT_STR, OBJ_VNUM_SCHOOL_DAGGER,
00517       {4000, 9999}, 80, 10, -20, 20, 20, FALSE,
00518       "draconian", "warrior default"},*/
00519       /*
00520        "knight", "Kni", STAT_DEX, OBJ_VNUM_SCHOOL_SWORD,
00521        {3055, 9899}, 80,20, -17, 20, 20, FALSE,
00522        "knight", "knight default"},
00523        {
00524     "citizen", "Cit", STAT_DEX, OBJ_VNUM_SCHOOL_STAFF,
00525         {1,1}, 1,1,1,1,1, TRUE,
00526         "citizen default", "citizen basics"}
00527 */
00528 
00529 
00530 };
00531 
00532 
00533 
00534 /*
00535  * Titles.
00536  */
00537 char *const title_table[MAX_CLASS][MAX_LEVEL + 1][2] = {
00538     {
00539      {"Man", "Woman"},
00540 
00541      {"Apprentice of Magic", "Apprentice of Magic"},
00542      {"Spell Student", "Spell Student"},
00543      {"Scholar of Magic", "Scholar of Magic"},
00544      {"Delver in Spells", "Delveress in Spells"},
00545      {"Medium of Magic", "Medium of Magic"},
00546 
00547      {"Scribe of Magic", "Scribess of Magic"},
00548      {"Seer", "Seeress"},
00549      {"Sage", "Sage"},
00550      {"Illusionist", "Illusionist"},
00551      {"Abjurer", "Abjuress"},
00552 
00553      {"Invoker", "Invoker"},
00554      {"Enchanter", "Enchantress"},
00555      {"Conjurer", "Conjuress"},
00556      {"Magician", "Witch"},
00557      {"Creator", "Creator"},
00558 
00559      {"Savant", "Savant"},
00560      {"Magus", "Craftess"},
00561      {"Wizard", "Wizard"},
00562      {"Warlock", "War Witch"},
00563      {"Sorcerer", "Sorceress"},
00564 
00565      {"Elder Sorcerer", "Elder Sorceress"},
00566      {"Grand Sorcerer", "Grand Sorceress"},
00567      {"Great Sorcerer", "Great Sorceress"},
00568      {"Golem Maker", "Golem Maker"},
00569      {"Greater Golem Maker", "Greater Golem Maker"},
00570 
00571      {"Maker of Stones", "Maker of Stones",},
00572      {"Maker of Potions", "Maker of Potions",},
00573      {"Maker of Scrolls", "Maker of Scrolls",},
00574      {"Maker of Wands", "Maker of Wands",},
00575      {"Maker of Staves", "Maker of Staves",},
00576 
00577      {"Demon Summoner", "Demon Summoner"},
00578      {"Greater Demon Summoner", "Greater Demon Summoner"},
00579      {"Dragon Charmer", "Dragon Charmer"},
00580      {"Greater Dragon Charmer", "Greater Dragon Charmer"},
00581      {"Master of all Magic", "Master of all Magic"},
00582 
00583      {"Master Mage", "Master Mage"},
00584      {"Master Mage", "Master Mage"},
00585      {"Master Mage", "Master Mage"},
00586      {"Master Mage", "Master Mage"},
00587      {"Master Mage", "Master Mage"},
00588 
00589      {"Master Mage", "Master Mage"},
00590      {"Master Mage", "Master Mage"},
00591      {"Master Mage", "Master Mage"},
00592      {"Master Mage", "Master Mage"},
00593      {"Master Mage", "Master Mage"},
00594 
00595      {"Master Mage", "Master Mage"},
00596      {"Master Mage", "Master Mage"},
00597      {"Master Mage", "Master Mage"},
00598      {"Master Mage", "Master Mage"},
00599      {"Master Mage", "Master Mage"},
00600 
00601      {"Mage Hero", "Mage Heroine"},
00602      {"Avatar of Magic", "Avatar of Magic"},
00603      {"Angel of Magic", "Angel of Magic"},
00604      {"Demigod of Magic", "Demigoddess of Magic"},
00605      {"Immortal of Magic", "Immortal of Magic"},
00606      {"God of Magic", "Goddess of Magic"},
00607      {"Deity of Magic", "Deity of Magic"},
00608      {"Supremity of Magic", "Supremity of Magic"},
00609      {"Creator", "Creator"},
00610      {"Implementor", "Implementress"}
00611      },
00612 
00613     {
00614      {"Man", "Woman"},
00615 
00616      {"Believer", "Believer"},
00617      {"Attendant", "Attendant"},
00618      {"Acolyte", "Acolyte"},
00619      {"Novice", "Novice"},
00620      {"Missionary", "Missionary"},
00621 
00622      {"Adept", "Adept"},
00623      {"Deacon", "Deaconess"},
00624      {"Vicar", "Vicaress"},
00625      {"Priest", "Priestess"},
00626      {"Minister", "Lady Minister"},
00627 
00628      {"Canon", "Canon"},
00629      {"Levite", "Levitess"},
00630      {"Curate", "Curess"},
00631      {"Monk", "Nun"},
00632      {"Healer", "Healess"},
00633 
00634      {"Chaplain", "Chaplain"},
00635      {"Expositor", "Expositress"},
00636      {"Bishop", "Bishop"},
00637      {"Arch Bishop", "Arch Lady of the Church"},
00638      {"Patriarch", "Matriarch"},
00639 
00640      {"Elder Patriarch", "Elder Matriarch"},
00641      {"Grand Patriarch", "Grand Matriarch"},
00642      {"Great Patriarch", "Great Matriarch"},
00643      {"Demon Killer", "Demon Killer"},
00644      {"Greater Demon Killer", "Greater Demon Killer"},
00645 
00646      {"Cardinal of the Sea", "Cardinal of the Sea"},
00647      {"Cardinal of the Earth", "Cardinal of the Earth"},
00648      {"Cardinal of the Air", "Cardinal of the Air"},
00649      {"Cardinal of the Ether", "Cardinal of the Ether"},
00650      {"Cardinal of the Heavens", "Cardinal of the Heavens"},
00651 
00652      {"Avatar of an Immortal", "Avatar of an Immortal"},
00653      {"Avatar of a Deity", "Avatar of a Deity"},
00654      {"Avatar of a Supremity", "Avatar of a Supremity"},
00655      {"Avatar of an Implementor", "Avatar of an Implementor"},
00656      {"Master of all Divinity", "Mistress of all Divinity"},
00657 
00658      {"Master Cleric", "Master Cleric"},
00659      {"Master Cleric", "Master Cleric"},
00660      {"Master Cleric", "Master Cleric"},
00661      {"Master Cleric", "Master Cleric"},
00662      {"Master Cleric", "Master Cleric"},
00663 
00664      {"Master Cleric", "Master Cleric"},
00665      {"Master Cleric", "Master Cleric"},
00666      {"Master Cleric", "Master Cleric"},
00667      {"Master Cleric", "Master Cleric"},
00668      {"Master Cleric", "Master Cleric"},
00669 
00670      {"Master Cleric", "Master Cleric"},
00671      {"Master Cleric", "Master Cleric"},
00672      {"Master Cleric", "Master Cleric"},
00673      {"Master Cleric", "Master Cleric"},
00674      {"Master Cleric", "Master Cleric"},
00675 
00676      {"Holy Hero", "Holy Heroine"},
00677      {"Holy Avatar", "Holy Avatar"},
00678      {"Angel", "Angel"},
00679      {"Demigod", "Demigoddess",},
00680      {"Immortal", "Immortal"},
00681      {"God", "Goddess"},
00682      {"Deity", "Deity"},
00683      {"Supreme Master", "Supreme Mistress"},
00684      {"Creator", "Creator"},
00685      {"Implementor", "Implementress"}
00686      },
00687 
00688     {
00689      {"Man", "Woman"},
00690 
00691      {"Pilferer", "Pilferess"},
00692      {"Footpad", "Footpad"},
00693      {"Filcher", "Filcheress"},
00694      {"Pick-Pocket", "Pick-Pocket"},
00695      {"Sneak", "Sneak"},
00696 
00697      {"Pincher", "Pincheress"},
00698      {"Cut-Purse", "Cut-Purse"},
00699      {"Snatcher", "Snatcheress"},
00700      {"Sharper", "Sharpress"},
00701      {"Rogue", "Rogue"},
00702 
00703      {"Robber", "Robber"},
00704      {"Magsman", "Magswoman"},
00705      {"Highwayman", "Highwaywoman"},
00706      {"Burglar", "Burglaress"},
00707      {"Thief", "Thief"},
00708 
00709      {"Knifer", "Knifer"},
00710      {"Quick-Blade", "Quick-Blade"},
00711      {"Killer", "Murderess"},
00712      {"Brigand", "Brigand"},
00713      {"Cut-Throat", "Cut-Throat"},
00714 
00715      {"Spy", "Spy"},
00716      {"Grand Spy", "Grand Spy"},
00717      {"Master Spy", "Master Spy"},
00718      {"Assassin", "Assassin"},
00719      {"Greater Assassin", "Greater Assassin"},
00720 
00721      {"Master of Vision", "Mistress of Vision"},
00722      {"Master of Hearing", "Mistress of Hearing"},
00723      {"Master of Smell", "Mistress of Smell"},
00724      {"Master of Taste", "Mistress of Taste"},
00725      {"Master of Touch", "Mistress of Touch"},
00726 
00727      {"Crime Lord", "Crime Mistress"},
00728      {"Infamous Crime Lord", "Infamous Crime Mistress"},
00729      {"Greater Crime Lord", "Greater Crime Mistress"},
00730      {"Master Crime Lord", "Master Crime Mistress"},
00731      {"Godfather", "Godmother"},
00732 
00733      {"Master Thief", "Master Thief"},
00734      {"Master Thief", "Master Thief"},
00735      {"Master Thief", "Master Thief"},
00736      {"Master Thief", "Master Thief"},
00737      {"Master Thief", "Master Thief"},
00738 
00739      {"Master Thief", "Master Thief"},
00740      {"Master Thief", "Master Thief"},
00741      {"Master Thief", "Master Thief"},
00742      {"Master Thief", "Master Thief"},
00743      {"Master Thief", "Master Thief"},
00744 
00745      {"Master Thief", "Master Thief"},
00746      {"Master Thief", "Master Thief"},
00747      {"Master Thief", "Master Thief"},
00748      {"Master Thief", "Master Thief"},
00749      {"Master Thief", "Master Thief"},
00750 
00751      {"Assassin Hero", "Assassin Heroine"},
00752      {"Avatar of Death", "Avatar of Death",},
00753      {"Angel of Death", "Angel of Death"},
00754      {"Demigod of Assassins", "Demigoddess of Assassins"},
00755      {"Immortal Assasin", "Immortal Assassin"},
00756      {"God of Assassins", "God of Assassins",},
00757      {"Deity of Assassins", "Deity of Assassins"},
00758      {"Supreme Master", "Supreme Mistress"},
00759      {"Creator", "Creator"},
00760      {"Implementor", "Implementress"}
00761      },
00762 
00763     {
00764      {"Man", "Woman"},
00765 
00766      {"Swordpupil", "Swordpupil"},
00767      {"Recruit", "Recruit"},
00768      {"Sentry", "Sentress"},
00769      {"Fighter", "Fighter"},
00770      {"Soldier", "Soldier"},
00771 
00772      {"Warrior", "Warrior"},
00773      {"Veteran", "Veteran"},
00774      {"Swordsman", "Swordswoman"},
00775      {"Fencer", "Fenceress"},
00776      {"Combatant", "Combatess"},
00777 
00778      {"Hero", "Heroine"},
00779      {"Myrmidon", "Myrmidon"},
00780      {"Swashbuckler", "Swashbuckleress"},
00781      {"Mercenary", "Mercenaress"},
00782      {"Swordmaster", "Swordmistress"},
00783 
00784      {"Lieutenant", "Lieutenant"},
00785      {"Champion", "Lady Champion"},
00786      {"Dragoon", "Lady Dragoon"},
00787      {"Cavalier", "Lady Cavalier"},
00788      {"Knight", "Lady Knight"},
00789 
00790      {"Grand Knight", "Grand Knight"},
00791      {"Master Knight", "Master Knight"},
00792      {"Paladin", "Paladin"},
00793      {"Grand Paladin", "Grand Paladin"},
00794      {"Demon Slayer", "Demon Slayer"},
00795 
00796      {"Greater Demon Slayer", "Greater Demon Slayer"},
00797      {"Dragon Slayer", "Dragon Slayer"},
00798      {"Greater Dragon Slayer", "Greater Dragon Slayer"},
00799      {"Underlord", "Underlord"},
00800      {"Overlord", "Overlord"},
00801 
00802      {"Baron of Thunder", "Baroness of Thunder"},
00803      {"Baron of Storms", "Baroness of Storms"},
00804      {"Baron of Tornadoes", "Baroness of Tornadoes"},
00805      {"Baron of Hurricanes", "Baroness of Hurricanes"},
00806      {"Baron of Meteors", "Baroness of Meteors"},
00807 
00808      {"Master Warrior", "Master Warrior"},
00809      {"Master Warrior", "Master Warrior"},
00810      {"Master Warrior", "Master Warrior"},
00811      {"Master Warrior", "Master Warrior"},
00812      {"Master Warrior", "Master Warrior"},
00813 
00814      {"Master Warrior", "Master Warrior"},
00815      {"Master Warrior", "Master Warrior"},
00816      {"Master Warrior", "Master Warrior"},
00817      {"Master Warrior", "Master Warrior"},
00818      {"Master Warrior", "Master Warrior"},
00819 
00820      {"Master Warrior", "Master Warrior"},
00821      {"Master Warrior", "Master Warrior"},
00822      {"Master Warrior", "Master Warrior"},
00823      {"Master Warrior", "Master Warrior"},
00824      {"Master Warrior", "Master Warrior"},
00825 
00826      {"Knight Hero", "Knight Heroine"},
00827      {"Avatar of War", "Avatar of War"},
00828      {"Angel of War", "Angel of War"},
00829      {"Demigod of War", "Demigoddess of War"},
00830      {"Immortal Warlord", "Immortal Warlord"},
00831      {"God of War", "God of War"},
00832      {"Deity of War", "Deity of War"},
00833      {"Supreme Master of War", "Supreme Mistress of War"},
00834      {"Creator", "Creator"},
00835      {"Implementor", "Implementress"},
00836      {"Do you feel lucky?", "Do you feel lucky?"}
00837      }
00838 };
00839 
00840 
00841 
00842 /*
00843  * Attribute bonus tables.
00844  */
00845 const struct str_app_type str_app[101] = {
00846     {-5, -4, 0, 0},                /* 0  */
00847     {-5, -4, 3, 1},                /* 1  */
00848     {-3, -2, 3, 2},
00849     {-3, -1, 3, 3},            /* 3  */
00850     {-2, -1, 10, 4},
00851     {-2, -1, 12, 5},            /* 5  */
00852     {-1, 0, 14, 6},
00853     {-1, 0, 15, 7},
00854     {0, 0, 20, 8},
00855     {0, 0, 25, 9},
00856     {0, 0, 30, 9},            /* 10  */
00857     {0, 0, 35, 10},
00858     {0, 0, 40, 11},
00859     {0, 0, 45, 12},            /* 13  */
00860     {0, 0, 50, 13},
00861     {1, 1, 55, 14},            /* 15  */
00862     {1, 1, 60, 15},
00863     {1, 1, 65, 16},
00864     {1, 1, 70, 17},            /* 18  */
00865     {1, 1, 75, 18},
00866     {1, 1, 80, 19},            /* 20  */
00867     {1, 1, 85, 20},
00868     {2, 1, 90, 21},
00869     {2, 2, 100, 22},
00870     {2, 2, 105, 23},
00871     {2, 2, 110, 24},                /* 25   */
00872     {2, 2 ,115, 24},
00873     {2, 2 , 120,24},
00874     {3, 2 , 125, 24},               /*28*/
00875     {3, 2 , 130, 24}, /* 29 */
00876     {3, 2 , 135, 24}, /*30*/
00877     {3, 2 , 140, 24}, 
00878     {3, 2 , 145, 24},
00879     {3, 2, 150, 25},
00880     {4, 3, 160, 26},
00881     {4, 3, 200, 26},
00882     {4, 3, 205, 26},                /* 36   */
00883     {4, 3 ,210, 26},
00884     {4, 3 , 220,26},
00885     {4, 3 , 230, 26},               /*39*/
00886     {5, 4 , 245, 26}, /* 40 */
00887     {5, 4 , 260, 27}, /*41*/
00888     {5, 4 , 270, 27},
00889     {5, 4 , 280, 30},
00890     {5, 4, 290, 30},
00891     {5, 4, 300, 31},
00892     {6, 5, 310, 31},
00893     {6, 5, 320, 31},                /* 47   */
00894     {6, 5 ,330, 32},
00895     {6, 5 ,340,32},
00896     {6, 5 , 350, 35},               /*50*/
00897     {6, 5 , 360, 35}, /* 51 */
00898     {6, 5 , 380, 35}, /*52*/
00899     {7, 6 , 400, 35},
00900     {7, 6 , 420, 35},
00901     {7, 6 , 450, 35}, /*55*/
00902     {7, 6 , 480, 35},
00903     {7, 6 , 490, 35},
00904     {7, 6, 510, 35},
00905     {8, 7, 520, 35},
00906     {8, 7, 550, 35},
00907     {8, 7, 560, 35},                /* 61   */
00908     {8, 7 ,575, 35},
00909     {8, 7 , 590,35},
00910     {8, 7 , 600, 40},               /*64*/
00911     {9, 8 , 610, 40}, /* 65 */
00912     {9, 8 , 615, 40}, /*66*/
00913     {9, 8 , 625, 40},
00914     {9, 8 , 635, 40},
00915     {9, 8, 650, 45},
00916     {9, 8, 660, 45},
00917     {9, 8, 665, 45},
00918     {10, 9, 660, 45},                /* 72   */
00919     {10, 9 ,670, 45},
00920     {10, 9 , 680,45},
00921     {10, 9 , 690, 45},               /*75*/
00922     {10, 9 , 695, 45}, /* 76 */
00923     {10, 9 , 700, 45}, /*77*/
00924     {10, 9 , 701, 45},
00925     {10, 9 , 710, 45},
00926     {10, 9, 715, 45},
00927     {11, 10, 718, 45},
00928     {11, 10, 720, 50},
00929     {11, 10, 722, 50},                /* 83   */
00930     {11, 10,730, 50},
00931     {11, 10, 735,50},
00932     {12, 11, 740, 55},               /*86*/
00933     {12, 11, 750, 55}, /* 87 */
00934     {13, 12, 755, 55}, /*88*/
00935     {14, 13, 760, 55},
00936     {14, 13, 770, 56},
00937     {14, 13, 775, 57},
00938     {14, 13, 780, 58},
00939     {14, 13, 790, 59},
00940     {14, 13, 795, 60},                /* 94   */
00941     {15, 14,796, 70},
00942     {15, 14, 797,71},
00943     {15, 14, 798, 72},               /*97*/
00944     {15, 14, 799, 73}, /* 98 */
00945     {15, 14, 800, 74},               /*99*/
00946     {15, 14, 800, 75} /*100*/
00947                          
00948                          
00949                          
00950                          
00951                          
00952                          
00953     
00954 
00955 
00956 
00957 
00958 
00959 
00960 
00961 
00962 
00963 
00964 };
00965 
00966 
00967 
00968 const struct int_app_type int_app[101] = {
00969     {1},                        /*  0 */
00970     {1},                        /*  1 */
00971     {1},
00972     {1},                        /*  3 */
00973     {2},
00974     {2},                        /*  5 */
00975     {2},
00976     {2},
00977     {3},
00978     {3},
00979     {3},                        /* 10 */
00980     {3},
00981     {4},
00982     {4},
00983     {4},
00984     {4},                        /* 15 */
00985     {5},
00986     {5},
00987     {6},                        /* 18 */
00988     {6},
00989     {7},                        /* 20 */
00990     {8},
00991     {8},
00992     {9},
00993     {9},
00994     {10},                        /* 25 */
00995     {10},                        /*  0 */
00996     {10},                        /*  1 */
00997     {10},
00998     {10},                        /*  3 */
00999     {10},
01000     {10},                        /*  5 */
01001     {11},
01002     {11},
01003     {12},
01004     {12},
01005     {12},                        /* 10 */
01006     {12},
01007     {12},
01008     {13},
01009     {13},
01010     {13},                        /* 15 */
01011     {13},
01012     {14},
01013     {14},                        /* 18 */
01014     {14},
01015     {20},                        /* 20 */
01016     {30},
01017     {32},
01018     {38},
01019     {44},
01020     {45},                        /* 50 */
01021     {50},                        /*  0 */
01022     {52},                        /*  1 */
01023     {53},
01024     {54},                        /*  3 */
01025     {55},
01026     {56},                        /*  5 */
01027     {57},
01028     {58},
01029     {59},
01030     {60},
01031     {61},                        /* 10 */
01032     {62},
01033     {63},
01034     {64},
01035     {65},
01036     {66},                        /* 15 */
01037     {67},
01038     {68},
01039     {69},                        /* 18 */
01040     {70},
01041     {70},                        /* 20 */
01042     {70},
01043     {71},
01044     {72},
01045     {73},
01046     {74},                        /* 75 */
01047     {74},                        /*  0 */
01048     {75},                        /*  1 */
01049     {77},
01050     {78},                        /*  3 */
01051     {79},
01052     {80},                        /*  5 */
01053     {81},
01054     {82},
01055     {83},
01056     {85},
01057     {85},                        /* 10 */
01058     {85},
01059     {85},
01060     {85},
01061     {85},
01062     {85},                        /* 15 */
01063     {85},
01064     {85},
01065     {85},                        /* 18 */
01066     {85},
01067     {85},                        /* 20 */
01068     {85},
01069     {85}
01070   //  {85},
01071    // {85},
01072    // {85}                        /* 25 */
01073                                                      
01074                                                      
01075                                                      
01076 
01077 
01078     
01079 
01080 
01081 
01082 };
01083 
01084 
01085 
01086 const struct wis_app_type wis_app[101] = {
01087     {0},                        /*  0 */
01088     {0},                        /*  1 */
01089     {0},
01090     {0},                        /*  3 */
01091     {0},
01092     {1},                        /*  5 */
01093     {1},
01094     {1},
01095     {1},
01096     {1},
01097     {1},                        /* 10 */
01098     {1},
01099     {1},
01100     {1},
01101     {1},
01102     {1},                        /* 15 */
01103     {2},
01104     {2},
01105     {2},                        /* 18 */
01106     {2},
01107     {2},                        /* 20 */
01108     {2},
01109     {3},
01110     {3},
01111     {3},
01112     {3},                            /* 25 */
01113     {3},                        /*  0 */
01114     {3},                        /*  1 */
01115     {3},
01116     {3},                        /*  3 */
01117     {3},
01118     {3},                        /*  5 */
01119     {3},
01120     {3},
01121     {3},
01122     {4},
01123     {4},                        /* 10 */
01124     {4},
01125     {4},
01126     {4},
01127     {4},
01128     {4},                        /* 15 */
01129     {4},
01130     {4},
01131     {4},                        /* 18 */
01132     {4},
01133     {4},                        /* 20 */
01134     {4},
01135     {4},
01136     {4},
01137     {4},
01138     {4},                            /* 25 */
01139     {4},                        /*  0 */
01140     {4},                        /*  1 */
01141     {4},
01142     {4},                        /*  3 */
01143     {4},
01144     {4},                        /*  5 */
01145     {4},
01146     {4},
01147     {4},
01148     {4},
01149     {4},                        /* 10 */
01150     {4},
01151     {4},
01152     {4},
01153     {4},
01154     {4},                        /* 15 */
01155     {5},
01156     {5},
01157     {5},                        /* 18 */
01158     {5},
01159     {5},                        /* 20 */
01160     {5},
01161     {5},
01162     {5},
01163     {5},
01164     {5},                            /* 25 */
01165     {6},                        /*  0 */
01166     {6},                        /*  1 */
01167     {6},
01168     {6},                        /*  3 */
01169     {6},
01170     {6},                        /*  5 */
01171     {6},
01172     {6},
01173     {6},
01174     {6},
01175     {6},                        /* 10 */
01176     {7},
01177     {7},
01178     {7},
01179     {7},
01180     {7},                        /* 15 */
01181     {7},
01182     {7},
01183     {7},                        /* 18 */
01184     {7},
01185     {7},                        /* 20 */
01186     {7},
01187     {7}
01188    // {7},
01189    // {7},
01190    // {7}                            /* 25 */
01191 
01192 
01193 
01194 
01195 
01196 
01197 
01198 };
01199 
01200 
01201 
01202 const struct dex_app_type dex_app[101] = {
01203     {120},                        /* 0 */
01204     {115},                        /* 1 */
01205     {110},
01206     {105},
01207     {100},
01208     {95},                        /* 5 */
01209     {90},
01210     {85},
01211     {80},
01212     {75},
01213     {70},                        /* 10 */
01214     {65},
01215     {60},
01216     {40},
01217     {30},
01218     {30},                        /* 15 */
01219     {30},
01220     {30},
01221     {29},
01222     {28},
01223     {27},                        /* 20 */
01224     {26},
01225     {25},
01226     {24},
01227     {23},
01228     {22},                        /* 25 */
01229     {21},                        /* 0 */
01230     {20},                        /* 1 */
01231     {19},
01232     {18},
01233     {17},
01234     {16},                        /* 5 */
01235     {15},
01236     {10},
01237     {5},
01238     {0},
01239     {-5},                        /* 10 */
01240     {-6},
01241     {-7},
01242     {-8},
01243     {-9},
01244     {-10},                        /* 15 */
01245     {-15},
01246     {-20},
01247     {-35},
01248     {-40},
01249     {-45},                        /* 20 */
01250     {-46},
01251     {-50},
01252     {-51},
01253     {-55},
01254     {-60},               
01255     {-61},                        /* 0 */
01256     {-62},                        /* 1 */
01257     {-64},
01258     {-66},
01259     {-70},
01260     {-80},                        /* 5 */
01261     {-85},
01262     {-90},
01263     {-91},
01264     {-92},
01265     {-93},                        /* 10 */
01266     {-94},
01267     {-95},
01268     {-100},
01269     {-105},
01270     {-110},                        /* 15 */
01271     {-115},
01272     {-116},
01273     {-117},
01274     {-118},
01275     {-120},                        /* 20 */
01276     {-125},
01277     {-126},
01278     {-130},
01279     {-131},
01280     {-135},               
01281     {-136},                        /* 0 */
01282     {-140},                        /* 1 */
01283     {-141},
01284     {-144},
01285     {-145},
01286     {-150},                        /* 5 */
01287     {-160},
01288     {-170},
01289     {-180},
01290     {-185},
01291     {-186},                        /* 10 */
01292     {-187},
01293     {-188},
01294     {-190},
01295     {-191},
01296     {-192},                        /* 15 */
01297     {-193},
01298     {-194},
01299     {-195},
01300     {-200},
01301     {-210},                        /* 20 */
01302     {-215},
01303     {-220}
01304    // {-225},
01305    // {-230},
01306    // {-250}               
01307 };
01308 
01309 
01310 const struct con_app_type con_app[101] = {
01311     {-4, 0},                    /*  0 */
01312     {-3, 1},                    /*  1 */
01313     {-2, 2},
01314     {-2, 3},                    /*  3 */
01315     {-1, 4},
01316     {-1, 5},                    /*  5 */
01317     {-1, 6},
01318     {0, 7},
01319     {0, 7},
01320     {0, 7},
01321     {0, 8},                    /* 10 */
01322     {0, 9},
01323     {0, 10},
01324     {0, 11},
01325     {0, 12},
01326     {1, 13},                    /* 15 */
01327     {2, 14},
01328     {2, 15},
01329     {3, 16},                    /* 18 */
01330     {3, 17},
01331     {4, 18},                    /* 20 */
01332     {4, 19},
01333     {5, 20},
01334     {6, 21},
01335     {7, 22},
01336     {7, 24},                        /* 25 */
01337     {7, 24},                    /*  0 */
01338     {7, 25},                    /*  1 */
01339     {7, 26},
01340     {7, 27},                    /*  3 */
01341     {8, 28},
01342     {8, 29},                    /*  5 */
01343     {8, 30},
01344     {8, 31},
01345     {8, 32},
01346     {8, 33},
01347     {8, 34},                    /* 10 */
01348     {8, 35},
01349     {8,36},
01350     {9, 37},
01351     {9, 38},
01352     {9, 39},                    /* 15 */
01353     {9, 40},
01354     {9, 45},
01355     {9, 50},                    /* 18 */
01356     {9, 51},
01357     {9,52},                    /* 20 */
01358     {9, 55},
01359     {10, 57},
01360     {10, 59},
01361     {10, 61},
01362     {10, 63},                        /* 25 */
01363     {10, 64 },                    /*  0 */
01364     {10, 65},                    /*  1 */
01365     {10, 66},
01366     {10, 67},                    /*  3 */
01367     {11, 69},
01368     {11, 70},                    /*  5 */
01369     {11, 80},
01370     {11, 81},
01371     {11, 82},
01372     {11, 83},
01373     {11, 84},                    /* 10 */
01374     {11, 85},
01375     {11, 85},
01376     {11, 86},
01377     {12, 87},
01378     {12, 88},                    /* 15 */
01379     {13, 89},
01380     {13, 90},
01381     {13, 91},                    /* 18 */
01382     {13, 92},
01383     {13, 93},                    /* 20 */
01384     {13, 94},
01385     {13, 95},
01386     {14, 96},
01387     {14, 97},
01388     {14, 98},                        /* 25 */
01389     {15, 99},                    /*  0 */
01390     {15, 99},                    /*  1 */
01391     {16, 99},
01392     {16, 99},                    /*  3 */
01393     {17, 99},
01394     {17, 99},                    /*  5 */
01395     {17, 99},
01396     {17, 99},
01397     {18, 99},
01398     {18, 99},
01399     {18, 99},                    /* 10 */
01400     {18, 99},
01401     {18, 99},
01402     {18, 99},
01403     {18, 99},
01404     {18, 99},                    /* 15 */
01405     {18, 99},
01406     {19, 99},
01407     {19, 99},                    /* 18 */
01408     {19, 99},
01409     {19, 99},                    /* 20 */
01410     {19, 99},
01411     {19, 99}
01412    // {20, 99},
01413    // {20, 99},
01414    // {20, 99}                        /* 25 */
01415 };
01416 
01417 
01418 
01419 /*
01420  * Liquid properties.
01421  * Used in world.obj.
01422  */
01423 const struct liq_type liq_table[] = {
01424 /*    name            color    proof, full, thirst, food, ssize */
01425     {"water", "clear", {0, 1, 10, 0, 16}},
01426     {"beer", "amber", {12, 1, 8, 1, 12}},
01427     {"red wine", "burgundy", {30, 1, 8, 1, 5}},
01428     {"ale", "brown", {15, 1, 8, 1, 12}},
01429     {"dark ale", "dark", {16, 1, 8, 1, 12}},
01430 
01431     {"whisky", "golden", {120, 1, 5, 0, 2}},
01432     {"lemonade", "pink", {0, 1, 9, 2, 12}},
01433     {"firebreather", "boiling", {190, 0, 4, 0, 2}},
01434     {"local specialty", "clear", {151, 1, 3, 0, 2}},
01435     {"slime mold juice", "green", {0, 2, -8, 1, 2}},
01436 
01437     {"milk", "white", {0, 2, 9, 3, 12}},
01438     {"tea", "tan", {0, 1, 8, 0, 6}},
01439     {"coffee", "black", {0, 1, 8, 0, 6}},
01440     {"blood", "red", {0, 2, -1, 2, 6}},
01441     {"salt water", "clear", {0, 1, -2, 0, 1}},
01442 
01443     {"coke", "brown", {0, 2, 9, 2, 12}},
01444     {"root beer", "brown", {0, 2, 9, 2, 12}},
01445     {"elvish wine", "green", {35, 2, 8, 1, 5}},
01446     {"white wine", "golden", {28, 1, 8, 1, 5}},
01447     {"champagne", "golden", {32, 1, 8, 1, 5}},
01448 
01449     {"mead", "honey-colored", {34, 2, 8, 2, 12}},
01450     {"rose wine", "pink", {26, 1, 8, 1, 5}},
01451     {"benedictine wine", "burgundy", {40, 1, 8, 1, 5}},
01452     {"vodka", "clear", {130, 1, 5, 0, 2}},
01453     {"cranberry juice", "red", {0, 1, 9, 2, 12}},
01454 
01455     {"orange juice", "orange", {0, 2, 9, 3, 12}},
01456     {"absinthe", "green", {200, 1, 4, 0, 2}},
01457     {"brandy", "golden", {80, 1, 5, 0, 4}},
01458     {"aquavit", "clear", {140, 1, 5, 0, 2}},
01459     {"schnapps", "clear", {90, 1, 5, 0, 2}},
01460 
01461     {"icewine", "purple", {50, 2, 6, 1, 5}},
01462     {"amontillado", "burgundy", {35, 2, 8, 1, 5}},
01463     {"sherry", "red", {38, 2, 7, 1, 5}},
01464     {"framboise", "red", {50, 1, 7, 1, 5}},
01465     {"rum", "amber", {151, 1, 4, 0, 2}},
01466 
01467     {"cordial", "clear", {100, 1, 5, 0, 2}},
01468     {NULL, NULL, {0, 0, 0, 0, 0}}
01469 };
01470 
01471 
01472 
01473 /*
01474  * The skill and spell table.
01475  * Slot numbers must never be changed as they appear in #OBJECTS sections.
01476  */
01477 #define SLOT(n)    n
01478 
01479 struct skill_type skill_table[MAX_SKILL] = {
01480 
01481 /*
01482  * Magic spells.
01483  */
01484 
01485     {
01486      "reserved", {}, {},
01487      0, TAR_IGNORE, POS_STANDING,
01488      NULL, SLOT (0), 0, 0,
01489      "", "", ""},
01490 
01491     {
01492      "tribul kill", {}, {},
01493      spell_tribul_kill, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01494      NULL, SLOT(600), 1, 52,
01495      "divine power of Tribul", "!tribul kill!"},
01496      {
01497      "acid blast", {}, {},
01498      spell_acid_blast, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01499      NULL, SLOT (70), 20, 12,
01500      "acid blast", "!Acid Blast!"},
01501 
01502     {
01503      "armor", {}, {},
01504      spell_armor, TAR_CHAR_DEFENSIVE, POS_STANDING,
01505      NULL, SLOT (1), 5, 12,
01506      "", "You feel less armored.", ""},
01507 
01508     {
01509      "bless", {}, {},
01510      spell_bless, TAR_OBJ_CHAR_DEF, POS_STANDING,
01511      NULL, SLOT (3), 5, 12,
01512      "", "You feel less righteous.",
01513      "$p's holy aura fades."},
01514 
01515     {
01516      "blindness", {},{},
01517      spell_blindness, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01518      &gsn_blindness, SLOT (4), 5, 12,
01519      "", "You can see again.", ""},
01520 
01521     {
01522      "burning hands", {}, {},
01523      spell_burning_hands, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01524      NULL, SLOT (5), 15, 12,
01525      "burning hands", "!Burning Hands!", ""},
01526 
01527     {
01528      "call lightning", {}, {},
01529      spell_call_lightning, TAR_IGNORE, POS_FIGHTING,
01530      NULL, SLOT (6), 15, 12,
01531      "lightning bolt", "!Call Lightning!", ""},
01532 
01533     {"calm", {}, {},
01534      spell_calm, TAR_IGNORE, POS_FIGHTING,
01535      NULL, SLOT (509), 30, 12,
01536      "", "You have lost your peace of mind.", ""},
01537 
01538     {
01539      "cancellation", {}, {},
01540      spell_cancellation, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
01541      NULL, SLOT (507), 20, 12,
01542      "" "!cancellation!", ""},
01543 
01544     {
01545      "cause critical", {}, {},
01546      spell_cause_critical, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01547      NULL, SLOT (63), 20, 12,
01548      "spell", "!Cause Critical!", ""},
01549 
01550     {
01551      "cause light", {}, {},
01552      spell_cause_light, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01553      NULL, SLOT (62), 15, 12,
01554      "spell", "!Cause Light!", ""},
01555 
01556     {
01557      "cause serious", {},{},
01558      spell_cause_serious, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01559      NULL, SLOT (64), 17, 12,
01560      "spell", "!Cause Serious!", ""},
01561 
01562     {
01563      "chain lightning", {},{},
01564      spell_chain_lightning, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01565      NULL, SLOT (500), 25, 12,
01566      "lightning", "!Chain Lightning!", ""},
01567 
01568     {
01569      "change sex", {}, {},
01570      spell_change_sex, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
01571      NULL, SLOT (82), 15, 12,
01572      "", "Your body feels familiar again.", ""},
01573 
01574     {
01575      "charm person", {}, {},
01576      spell_charm_person, TAR_CHAR_OFFENSIVE, POS_STANDING,
01577      &gsn_charm_person, SLOT (7), 5, 12,
01578      "", "You feel more self-confident.", ""},
01579 
01580     {
01581      "chill touch", {}, {},
01582      spell_chill_touch, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01583      NULL, SLOT (8), 15, 12,
01584      "chilling touch", "You feel less cold.", ""},
01585 
01586     {
01587      "colour spray", {}, {},
01588      spell_colour_spray, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
01589      NULL, SLOT (10), 15, 12,
01590      "colour spray", "!Colour Spray!", ""},
01591 
01592     {
01593      "continual light", {}, {},
01594      spell_continual_light, TAR_IGNORE,