Annotation of 43BSDReno/games/hack/def.objects.h, revision 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.