Annotation of 43BSDTahoe/games/hack/def.objects.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
                      2: /* def.objects.h - version 1.0.3 */
                      3: 
                      4: /* objects have letter " % ) ( 0 _ ` [ ! ? / = * */
                      5: #include "config.h"
                      6: #include "def.objclass.h"
                      7: #define        NULL    (char *)0
                      8: 
                      9: struct objclass objects[] = {
                     10: 
                     11:        { "strange object", NULL, NULL, 1, 0,
                     12:                ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 },
                     13:        { "amulet of Yendor", NULL, NULL, 1, 0,
                     14:                AMULET_SYM, 100, 0, 2, 0, 0, 0 },
                     15: 
                     16: #define        FOOD(name,prob,delay,weight,nutrition)  { name, NULL, NULL, 1, 1,\
                     17:                FOOD_SYM, prob, delay, weight, 0, 0, nutrition }
                     18: 
                     19: /* dog eats foods 0-4 but prefers 1 above 0,2,3,4 */
                     20: /* food 4 can be read */
                     21: /* food 5 improves your vision */
                     22: /* food 6 makes you stronger (like Popeye) */
                     23: /* foods CORPSE up to CORPSE+52 are cadavers */
                     24: 
                     25:        FOOD("food ration",     50, 5, 4, 800),
                     26:        FOOD("tripe ration",    20, 1, 2, 200),
                     27:        FOOD("pancake",         3, 1, 1, 200),
                     28:        FOOD("dead lizard",     3, 0, 1, 40),
                     29:        FOOD("fortune cookie",  7, 0, 1, 40),
                     30:        FOOD("carrot",          2, 0, 1, 50),
                     31:        FOOD("tin",             7, 0, 1, 0),
                     32:        FOOD("orange",          1, 0, 1, 80),
                     33:        FOOD("apple",           1, 0, 1, 50),
                     34:        FOOD("pear",            1, 0, 1, 50),
                     35:        FOOD("melon",           1, 0, 1, 100),
                     36:        FOOD("banana",          1, 0, 1, 80),
                     37:        FOOD("candy bar",       1, 0, 1, 100),
                     38:        FOOD("egg",             1, 0, 1, 80),
                     39:        FOOD("clove of garlic", 1, 0, 1, 40),
                     40:        FOOD("lump of royal jelly", 0, 0, 1, 200),
                     41: 
                     42:        FOOD("dead human",      0, 4, 40, 400),
                     43:        FOOD("dead giant ant",  0, 1, 3, 30),
                     44:        FOOD("dead giant bat",  0, 1, 3, 30),
                     45:        FOOD("dead centaur",    0, 5, 50, 500),
                     46:        FOOD("dead dragon",     0, 15, 150, 1500),
                     47:        FOOD("dead floating eye",       0, 1, 1, 10),
                     48:        FOOD("dead freezing sphere",    0, 1, 1, 10),
                     49:        FOOD("dead gnome",      0, 1, 10, 100),
                     50:        FOOD("dead hobgoblin",  0, 2, 20, 200),
                     51:        FOOD("dead stalker",    0, 4, 40, 400),
                     52:        FOOD("dead jackal",     0, 1, 10, 100),
                     53:        FOOD("dead kobold",     0, 1, 10, 100),
                     54:        FOOD("dead leprechaun", 0, 4, 40, 400),
                     55:        FOOD("dead mimic",      0, 4, 40, 400),
                     56:        FOOD("dead nymph",      0, 4, 40, 400),
                     57:        FOOD("dead orc",        0, 2, 20, 200),
                     58:        FOOD("dead purple worm",        0, 7, 70, 700),
                     59:        FOOD("dead quasit",     0, 2, 20, 200),
                     60:        FOOD("dead rust monster",       0, 5, 50, 500),
                     61:        FOOD("dead snake",      0, 1, 10, 100),
                     62:        FOOD("dead troll",      0, 4, 40, 400),
                     63:        FOOD("dead umber hulk", 0, 5, 50, 500),
                     64:        FOOD("dead vampire",    0, 4, 40, 400),
                     65:        FOOD("dead wraith",     0, 1, 1, 10),
                     66:        FOOD("dead xorn",       0, 7, 70, 700),
                     67:        FOOD("dead yeti",       0, 7, 70, 700),
                     68:        FOOD("dead zombie",     0, 1, 3, 30),
                     69:        FOOD("dead acid blob",  0, 1, 3, 30),
                     70:        FOOD("dead giant beetle",       0, 1, 1, 10),
                     71:        FOOD("dead cockatrice", 0, 1, 3, 30),
                     72:        FOOD("dead dog",        0, 2, 20, 200),
                     73:        FOOD("dead ettin",      0, 1, 3, 30),
                     74:        FOOD("dead fog cloud",  0, 1, 1, 10),
                     75:        FOOD("dead gelatinous cube",    0, 1, 10, 100),
                     76:        FOOD("dead homunculus", 0, 2, 20, 200),
                     77:        FOOD("dead imp",        0, 1, 1, 10),
                     78:        FOOD("dead jaguar",     0, 3, 30, 300),
                     79:        FOOD("dead killer bee", 0, 1, 1, 10),
                     80:        FOOD("dead leocrotta",  0, 5, 50, 500),
                     81:        FOOD("dead minotaur",   0, 7, 70, 700),
                     82:        FOOD("dead nurse",      0, 4, 40, 400),
                     83:        FOOD("dead owlbear",    0, 7, 70, 700),
                     84:        FOOD("dead piercer",    0, 2, 20, 200),
                     85:        FOOD("dead quivering blob",     0, 1, 10, 100),
                     86:        FOOD("dead giant rat",  0, 1, 3, 30),
                     87:        FOOD("dead giant scorpion",     0, 1, 10, 100),
                     88:        FOOD("dead tengu",      0, 3, 30, 300),
                     89:        FOOD("dead unicorn",    0, 3, 30, 300),
                     90:        FOOD("dead violet fungi",       0, 1, 10, 100),
                     91:        FOOD("dead long worm",  0, 5, 50, 500),
                     92: /* %% wt of long worm should be proportional to its length */
                     93:        FOOD("dead xan",        0, 3, 30, 300),
                     94:        FOOD("dead yellow light",       0, 1, 1, 10),
                     95:        FOOD("dead zruty",      0, 6, 60, 600),
                     96: 
                     97: /* weapons ... - ROCK come several at a time */
                     98: /* weapons ... - (ROCK-1) are shot using idem+(BOW-ARROW) */
                     99: /* weapons AXE, SWORD, THSWORD are good for worm-cutting */
                    100: /* weapons (PICK-)AXE, DAGGER, CRYSKNIFE are good for tin-opening */
                    101: #define WEAPON(name,prob,wt,ldam,sdam) { name, NULL, NULL, 1, 0 /*%%*/,\
                    102:                WEAPON_SYM, prob, 0, wt, ldam, sdam, 0 }
                    103: 
                    104:        WEAPON("arrow",         7, 0, 6, 6),
                    105:        WEAPON("sling bullet",  7, 0, 4, 6),
                    106:        WEAPON("crossbow bolt", 7, 0, 4, 6),
                    107:        WEAPON("dart",          7, 0, 3, 2),
                    108:        WEAPON("rock",          6, 1, 3, 3),
                    109:        WEAPON("boomerang",     2, 3, 9, 9),
                    110:        WEAPON("mace",          9, 3, 6, 7),
                    111:        WEAPON("axe",           6, 3, 6, 4),
                    112:        WEAPON("flail",         6, 3, 6, 5),
                    113:        WEAPON("long sword",    8, 3, 8, 12),
                    114:        WEAPON("two handed sword",      6, 4, 12, 6),
                    115:        WEAPON("dagger",        6, 3, 4, 3),
                    116:        WEAPON("worm tooth",    0, 4, 2, 2),
                    117:        WEAPON("crysknife",     0, 3, 10, 10),
                    118:        WEAPON("spear",         6, 3, 6, 8),
                    119:        WEAPON("bow",           6, 3, 4, 6),
                    120:        WEAPON("sling",         5, 3, 6, 6),
                    121:        WEAPON("crossbow",      6, 3, 4, 6),
                    122: 
                    123:        { "whistle", "whistle", NULL, 0, 0,
                    124:                TOOL_SYM, 90, 0, 2, 0, 0, 0 },
                    125:        { "magic whistle", "whistle", NULL, 0, 0,
                    126:                TOOL_SYM, 10, 0, 2, 0, 0, 0 },
                    127:        { "expensive camera", NULL, NULL, 1, 1,
                    128:                TOOL_SYM, 0, 0, 3, 0, 0, 0 },
                    129:        { "ice box", "large box", NULL, 0, 0,
                    130:                TOOL_SYM, 0, 0, 40, 0, 0, 0 },
                    131:        { "pick-axe", NULL, NULL, 1, 1,
                    132:                TOOL_SYM, 0, 0, 5, 6, 3, 0 },
                    133:        { "can opener", NULL, NULL, 1, 1,
                    134:                TOOL_SYM, 0, 0, 1, 0, 0, 0 },
                    135:        { "heavy iron ball", NULL, NULL, 1, 0,
                    136:                BALL_SYM, 100, 0, 20, 0, 0, 0 },
                    137:        { "iron chain", NULL, NULL, 1, 0,
                    138:                CHAIN_SYM, 100, 0, 20, 0, 0, 0 },
                    139:        { "enormous rock", NULL, NULL, 1, 0,
                    140:                ROCK_SYM, 100, 0, 200 /* > MAX_CARR_CAP */, 0, 0, 0 },
                    141: 
                    142: #define ARMOR(name,prob,delay,ac,can)  { name, NULL, NULL, 1, 0,\
                    143:                ARMOR_SYM, prob, delay, 8, ac, can, 0 }
                    144:        ARMOR("helmet",          3, 1, 9, 0),
                    145:        ARMOR("plate mail",              5, 5, 3, 2),
                    146:        ARMOR("splint mail",     8, 5, 4, 1),
                    147:        ARMOR("banded mail",    10, 5, 4, 0),
                    148:        ARMOR("chain mail",             10, 5, 5, 1),
                    149:        ARMOR("scale mail",             10, 5, 6, 0),
                    150:        ARMOR("ring mail",              15, 5, 7, 0),
                    151:        /* the armors below do not rust */
                    152:        ARMOR("studded leather armor", 13, 3, 7, 1),
                    153:        ARMOR("leather armor",  17, 3, 8, 0),
                    154:        ARMOR("elven cloak",     5, 0, 9, 3),
                    155:        ARMOR("shield",          3, 0, 9, 0),
                    156:        ARMOR("pair of gloves",  1, 1, 9, 0),
                    157: 
                    158: #define POTION(name,color)     { name, color, NULL, 0, 1,\
                    159:                POTION_SYM, 0, 0, 2, 0, 0, 0 }
                    160: 
                    161:        POTION("restore strength",      "orange"),
                    162:        POTION("booze",         "bubbly"),
                    163:        POTION("invisibility",  "glowing"),
                    164:        POTION("fruit juice",   "smoky"),
                    165:        POTION("healing",       "pink"),
                    166:        POTION("paralysis",     "puce"),
                    167:        POTION("monster detection",     "purple"),
                    168:        POTION("object detection",      "yellow"),
                    169:        POTION("sickness",      "white"),
                    170:        POTION("confusion",     "swirly"),
                    171:        POTION("gain strength", "purple-red"),
                    172:        POTION("speed",         "ruby"),
                    173:        POTION("blindness",     "dark green"),
                    174:        POTION("gain level",    "emerald"),
                    175:        POTION("extra healing", "sky blue"),
                    176:        POTION("levitation",    "brown"),
                    177:        POTION(NULL,    "brilliant blue"),
                    178:        POTION(NULL,    "clear"),
                    179:        POTION(NULL,    "magenta"),
                    180:        POTION(NULL,    "ebony"),
                    181: 
                    182: #define SCROLL(name,text,prob) { name, text, NULL, 0, 1,\
                    183:                SCROLL_SYM, prob, 0, 3, 0, 0, 0 }
                    184:        SCROLL("mail",  "KIRJE", 0),
                    185:        SCROLL("enchant armor", "ZELGO MER", 6),
                    186:        SCROLL("destroy armor", "JUYED AWK YACC", 5),
                    187:        SCROLL("confuse monster", "NR 9", 5),
                    188:        SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 4),
                    189:        SCROLL("blank paper", "READ ME", 3),
                    190:        SCROLL("remove curse", "PRATYAVAYAH", 6),
                    191:        SCROLL("enchant weapon", "DAIYEN FOOELS", 6),
                    192:        SCROLL("damage weapon", "HACKEM MUCHE", 5),
                    193:        SCROLL("create monster", "LEP GEX VEN ZEA", 5),
                    194:        SCROLL("taming", "PRIRUTSENIE", 1),
                    195:        SCROLL("genocide", "ELBIB YLOH",2),
                    196:        SCROLL("light", "VERR YED HORRE", 10),
                    197:        SCROLL("teleportation", "VENZAR BORGAVVE", 5),
                    198:        SCROLL("gold detection", "THARR", 4),
                    199:        SCROLL("food detection", "YUM YUM", 1),
                    200:        SCROLL("identify", "KERNOD WEL", 18),
                    201:        SCROLL("magic mapping", "ELAM EBOW", 5),
                    202:        SCROLL("amnesia", "DUAM XNAHT", 3),
                    203:        SCROLL("fire", "ANDOVA BEGARIN", 5),
                    204:        SCROLL("punishment", "VE FORBRYDERNE", 1),
                    205:        SCROLL(NULL, "VELOX NEB", 0),
                    206:        SCROLL(NULL, "FOOBIE BLETCH", 0),
                    207:        SCROLL(NULL, "TEMOV", 0),
                    208:        SCROLL(NULL, "GARVEN DEH", 0),
                    209: 
                    210: #define        WAND(name,metal,prob,flags)     { name, metal, NULL, 0, 0,\
                    211:                WAND_SYM, prob, 0, 3, flags, 0, 0 }
                    212: 
                    213:        WAND("light",   "iridium",              10,     NODIR),
                    214:        WAND("secret door detection",   "tin",  5,      NODIR),
                    215:        WAND("create monster",  "platinum",     5,      NODIR),
                    216:        WAND("wishing",         "glass",        1,      NODIR),
                    217:        WAND("striking",        "zinc",         9,      IMMEDIATE),
                    218:        WAND("slow monster",    "balsa",        5,      IMMEDIATE),
                    219:        WAND("speed monster",   "copper",       5,      IMMEDIATE),
                    220:        WAND("undead turning",  "silver",       5,      IMMEDIATE),
                    221:        WAND("polymorph",       "brass",        5,      IMMEDIATE),
                    222:        WAND("cancellation",    "maple",        5,      IMMEDIATE),
                    223:        WAND("teleportation",   "pine",         5,      IMMEDIATE),
                    224:        WAND("make invisible",  "marble",       9,      IMMEDIATE),
                    225:        WAND("digging",         "iron",         5,      RAY),
                    226:        WAND("magic missile",   "aluminium",    10,     RAY),
                    227:        WAND("fire",    "steel",        5,      RAY),
                    228:        WAND("sleep",   "curved",       5,      RAY),
                    229:        WAND("cold",    "short",        5,      RAY),
                    230:        WAND("death",   "long",         1,      RAY),
                    231:        WAND(NULL,      "oak",          0,      0),
                    232:        WAND(NULL,      "ebony",        0,      0),
                    233:        WAND(NULL,      "runed",        0,      0),
                    234: 
                    235: #define        RING(name,stone,spec)   { name, stone, NULL, 0, 0,\
                    236:                RING_SYM, 0, 0, 1, spec, 0, 0 }
                    237: 
                    238:        RING("adornment",       "engagement",   0),
                    239:        RING("teleportation",   "wooden",       0),
                    240:        RING("regeneration",    "black onyx",   0),
                    241:        RING("searching",       "topaz",        0),
                    242:        RING("see invisible",   "pearl",        0),
                    243:        RING("stealth",         "sapphire",     0),
                    244:        RING("levitation",      "moonstone",    0),
                    245:        RING("poison resistance", "agate",      0),
                    246:        RING("aggravate monster", "tiger eye",  0),
                    247:        RING("hunger",          "shining",      0),
                    248:        RING("fire resistance", "gold",         0),
                    249:        RING("cold resistance", "copper",       0),
                    250:        RING("protection from shape changers", "diamond", 0),
                    251:        RING("conflict",        "jade",         0),
                    252:        RING("gain strength",   "ruby",         SPEC),
                    253:        RING("increase damage", "silver",       SPEC),
                    254:        RING("protection",      "granite",      SPEC),
                    255:        RING("warning",         "wire",         0),
                    256:        RING("teleport control", "iron",        0),
                    257:        RING(NULL,              "ivory",        0),
                    258:        RING(NULL,              "blackened",    0),
                    259: 
                    260: /* gems ************************************************************/
                    261: #define        GEM(name,color,prob,gval)       { name, color, NULL, 0, 1,\
                    262:                GEM_SYM, prob, 0, 1, 0, 0, gval }
                    263:        GEM("diamond", "blue", 1, 4000),
                    264:        GEM("ruby", "red", 1, 3500),
                    265:        GEM("sapphire", "blue", 1, 3000),
                    266:        GEM("emerald", "green", 1, 2500),
                    267:        GEM("turquoise", "green", 1, 2000),
                    268:        GEM("aquamarine", "blue", 1, 1500),
                    269:        GEM("tourmaline", "green", 1, 1000),
                    270:        GEM("topaz", "yellow", 1, 900),
                    271:        GEM("opal", "yellow", 1, 800),
                    272:        GEM("garnet", "dark", 1, 700),
                    273:        GEM("amethyst", "violet", 2, 650),
                    274:        GEM("agate", "green", 2, 600),
                    275:        GEM("onyx", "white", 2, 550),
                    276:        GEM("jasper", "yellowish brown", 2, 500),
                    277:        GEM("jade", "green", 2, 450),
                    278:        GEM("worthless piece of blue glass", "blue", 20, 0),
                    279:        GEM("worthless piece of red glass", "red", 20, 0),
                    280:        GEM("worthless piece of yellow glass", "yellow", 20, 0),
                    281:        GEM("worthless piece of green glass", "green", 20, 0),
                    282:        { NULL, NULL, NULL, 0, 0, ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 }
                    283: };
                    284: 
                    285: char obj_symbols[] = {
                    286:        ILLOBJ_SYM, AMULET_SYM, FOOD_SYM, WEAPON_SYM, TOOL_SYM,
                    287:        BALL_SYM, CHAIN_SYM, ROCK_SYM, ARMOR_SYM, POTION_SYM, SCROLL_SYM,
                    288:        WAND_SYM, RING_SYM, GEM_SYM, 0 };
                    289: int bases[sizeof(obj_symbols)];

unix.superglobalmegacorp.com

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