|
|
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)];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.