1*aed906e4Smestre /* $OpenBSD: def.objects.h,v 1.5 2016/01/09 18:33:15 mestre Exp $*/ 2d25013f2Scamield /* $NetBSD: def.objects.h,v 1.3 1995/03/23 08:29:36 cgd Exp $*/ 3d0b779f3Sniklas 4df930be7Sderaadt /* 5d25013f2Scamield * Copyright (c) 1985, Stichting Centrum voor Wiskunde en Informatica, 6d25013f2Scamield * Amsterdam 7d25013f2Scamield * All rights reserved. 8df930be7Sderaadt * 9d25013f2Scamield * Redistribution and use in source and binary forms, with or without 10d25013f2Scamield * modification, are permitted provided that the following conditions are 11d25013f2Scamield * met: 12d25013f2Scamield * 13d25013f2Scamield * - Redistributions of source code must retain the above copyright notice, 14d25013f2Scamield * this list of conditions and the following disclaimer. 15d25013f2Scamield * 16d25013f2Scamield * - Redistributions in binary form must reproduce the above copyright 17d25013f2Scamield * notice, this list of conditions and the following disclaimer in the 18d25013f2Scamield * documentation and/or other materials provided with the distribution. 19d25013f2Scamield * 20d25013f2Scamield * - Neither the name of the Stichting Centrum voor Wiskunde en 21d25013f2Scamield * Informatica, nor the names of its contributors may be used to endorse or 22d25013f2Scamield * promote products derived from this software without specific prior 23d25013f2Scamield * written permission. 24d25013f2Scamield * 25d25013f2Scamield * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 26d25013f2Scamield * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 27d25013f2Scamield * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 28d25013f2Scamield * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 29d25013f2Scamield * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 30d25013f2Scamield * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 31d25013f2Scamield * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 32d25013f2Scamield * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33d25013f2Scamield * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 34d25013f2Scamield * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 35d25013f2Scamield * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36d25013f2Scamield */ 37d25013f2Scamield 38d25013f2Scamield /* 39d25013f2Scamield * Copyright (c) 1982 Jay Fenlason <hack@gnu.org> 40d25013f2Scamield * All rights reserved. 41d25013f2Scamield * 42d25013f2Scamield * Redistribution and use in source and binary forms, with or without 43d25013f2Scamield * modification, are permitted provided that the following conditions 44d25013f2Scamield * are met: 45d25013f2Scamield * 1. Redistributions of source code must retain the above copyright 46d25013f2Scamield * notice, this list of conditions and the following disclaimer. 47d25013f2Scamield * 2. Redistributions in binary form must reproduce the above copyright 48d25013f2Scamield * notice, this list of conditions and the following disclaimer in the 49d25013f2Scamield * documentation and/or other materials provided with the distribution. 50d25013f2Scamield * 3. The name of the author may not be used to endorse or promote products 51d25013f2Scamield * derived from this software without specific prior written permission. 52d25013f2Scamield * 53d25013f2Scamield * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 54d25013f2Scamield * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 55d25013f2Scamield * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 56d25013f2Scamield * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 57d25013f2Scamield * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 58d25013f2Scamield * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 59d25013f2Scamield * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 60d25013f2Scamield * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 61d25013f2Scamield * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 62d25013f2Scamield * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 63df930be7Sderaadt */ 64df930be7Sderaadt 65df930be7Sderaadt /* objects have letter " % ) ( 0 _ ` [ ! ? / = * */ 66df930be7Sderaadt struct objclass objects[] = { 67df930be7Sderaadt 68df930be7Sderaadt { "strange object", NULL, NULL, 1, 0, 69df930be7Sderaadt ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 }, 70df930be7Sderaadt { "amulet of Yendor", NULL, NULL, 1, 0, 71df930be7Sderaadt AMULET_SYM, 100, 0, 2, 0, 0, 0 }, 72df930be7Sderaadt 73df930be7Sderaadt #define FOOD(name,prob,delay,weight,nutrition) { name, NULL, NULL, 1, 1,\ 74df930be7Sderaadt FOOD_SYM, prob, delay, weight, 0, 0, nutrition } 75df930be7Sderaadt 76df930be7Sderaadt /* dog eats foods 0-4 but prefers 1 above 0,2,3,4 */ 77df930be7Sderaadt /* food 4 can be read */ 78df930be7Sderaadt /* food 5 improves your vision */ 79df930be7Sderaadt /* food 6 makes you stronger (like Popeye) */ 80df930be7Sderaadt /* foods CORPSE up to CORPSE+52 are cadavers */ 81df930be7Sderaadt 82df930be7Sderaadt FOOD("food ration", 50, 5, 4, 800), 83df930be7Sderaadt FOOD("tripe ration", 20, 1, 2, 200), 84df930be7Sderaadt FOOD("pancake", 3, 1, 1, 200), 85df930be7Sderaadt FOOD("dead lizard", 3, 0, 1, 40), 86df930be7Sderaadt FOOD("fortune cookie", 7, 0, 1, 40), 87df930be7Sderaadt FOOD("carrot", 2, 0, 1, 50), 88df930be7Sderaadt FOOD("tin", 7, 0, 1, 0), 89df930be7Sderaadt FOOD("orange", 1, 0, 1, 80), 90df930be7Sderaadt FOOD("apple", 1, 0, 1, 50), 91df930be7Sderaadt FOOD("pear", 1, 0, 1, 50), 92df930be7Sderaadt FOOD("melon", 1, 0, 1, 100), 93df930be7Sderaadt FOOD("banana", 1, 0, 1, 80), 94df930be7Sderaadt FOOD("candy bar", 1, 0, 1, 100), 95df930be7Sderaadt FOOD("egg", 1, 0, 1, 80), 96df930be7Sderaadt FOOD("clove of garlic", 1, 0, 1, 40), 97df930be7Sderaadt FOOD("lump of royal jelly", 0, 0, 1, 200), 98df930be7Sderaadt 99df930be7Sderaadt FOOD("dead human", 0, 4, 40, 400), 100df930be7Sderaadt FOOD("dead giant ant", 0, 1, 3, 30), 101df930be7Sderaadt FOOD("dead giant bat", 0, 1, 3, 30), 102df930be7Sderaadt FOOD("dead centaur", 0, 5, 50, 500), 103df930be7Sderaadt FOOD("dead dragon", 0, 15, 150, 1500), 104df930be7Sderaadt FOOD("dead floating eye", 0, 1, 1, 10), 105df930be7Sderaadt FOOD("dead freezing sphere", 0, 1, 1, 10), 106df930be7Sderaadt FOOD("dead gnome", 0, 1, 10, 100), 107df930be7Sderaadt FOOD("dead hobgoblin", 0, 2, 20, 200), 108df930be7Sderaadt FOOD("dead stalker", 0, 4, 40, 400), 109df930be7Sderaadt FOOD("dead jackal", 0, 1, 10, 100), 110df930be7Sderaadt FOOD("dead kobold", 0, 1, 10, 100), 111df930be7Sderaadt FOOD("dead leprechaun", 0, 4, 40, 400), 112df930be7Sderaadt FOOD("dead mimic", 0, 4, 40, 400), 113df930be7Sderaadt FOOD("dead nymph", 0, 4, 40, 400), 114df930be7Sderaadt FOOD("dead orc", 0, 2, 20, 200), 115df930be7Sderaadt FOOD("dead purple worm", 0, 7, 70, 700), 116df930be7Sderaadt FOOD("dead quasit", 0, 2, 20, 200), 117df930be7Sderaadt FOOD("dead rust monster", 0, 5, 50, 500), 118df930be7Sderaadt FOOD("dead snake", 0, 1, 10, 100), 119df930be7Sderaadt FOOD("dead troll", 0, 4, 40, 400), 120df930be7Sderaadt FOOD("dead umber hulk", 0, 5, 50, 500), 121df930be7Sderaadt FOOD("dead vampire", 0, 4, 40, 400), 122df930be7Sderaadt FOOD("dead wraith", 0, 1, 1, 10), 123df930be7Sderaadt FOOD("dead xorn", 0, 7, 70, 700), 124df930be7Sderaadt FOOD("dead yeti", 0, 7, 70, 700), 125df930be7Sderaadt FOOD("dead zombie", 0, 1, 3, 30), 126df930be7Sderaadt FOOD("dead acid blob", 0, 1, 3, 30), 127df930be7Sderaadt FOOD("dead giant beetle", 0, 1, 1, 10), 128df930be7Sderaadt FOOD("dead cockatrice", 0, 1, 3, 30), 129df930be7Sderaadt FOOD("dead dog", 0, 2, 20, 200), 130df930be7Sderaadt FOOD("dead ettin", 0, 1, 3, 30), 131df930be7Sderaadt FOOD("dead fog cloud", 0, 1, 1, 10), 132df930be7Sderaadt FOOD("dead gelatinous cube", 0, 1, 10, 100), 133df930be7Sderaadt FOOD("dead homunculus", 0, 2, 20, 200), 134df930be7Sderaadt FOOD("dead imp", 0, 1, 1, 10), 135df930be7Sderaadt FOOD("dead jaguar", 0, 3, 30, 300), 136df930be7Sderaadt FOOD("dead killer bee", 0, 1, 1, 10), 137df930be7Sderaadt FOOD("dead leocrotta", 0, 5, 50, 500), 138df930be7Sderaadt FOOD("dead minotaur", 0, 7, 70, 700), 139df930be7Sderaadt FOOD("dead nurse", 0, 4, 40, 400), 140df930be7Sderaadt FOOD("dead owlbear", 0, 7, 70, 700), 141df930be7Sderaadt FOOD("dead piercer", 0, 2, 20, 200), 142df930be7Sderaadt FOOD("dead quivering blob", 0, 1, 10, 100), 143df930be7Sderaadt FOOD("dead giant rat", 0, 1, 3, 30), 144df930be7Sderaadt FOOD("dead giant scorpion", 0, 1, 10, 100), 145df930be7Sderaadt FOOD("dead tengu", 0, 3, 30, 300), 146df930be7Sderaadt FOOD("dead unicorn", 0, 3, 30, 300), 147df930be7Sderaadt FOOD("dead violet fungi", 0, 1, 10, 100), 148df930be7Sderaadt FOOD("dead long worm", 0, 5, 50, 500), 149df930be7Sderaadt /* %% wt of long worm should be proportional to its length */ 150df930be7Sderaadt FOOD("dead xan", 0, 3, 30, 300), 151df930be7Sderaadt FOOD("dead yellow light", 0, 1, 1, 10), 152df930be7Sderaadt FOOD("dead zruty", 0, 6, 60, 600), 153df930be7Sderaadt 154df930be7Sderaadt /* weapons ... - ROCK come several at a time */ 155df930be7Sderaadt /* weapons ... - (ROCK-1) are shot using idem+(BOW-ARROW) */ 156df930be7Sderaadt /* weapons AXE, SWORD, THSWORD are good for worm-cutting */ 157df930be7Sderaadt /* weapons (PICK-)AXE, DAGGER, CRYSKNIFE are good for tin-opening */ 158df930be7Sderaadt #define WEAPON(name,prob,wt,ldam,sdam) { name, NULL, NULL, 1, 0 /*%%*/,\ 159df930be7Sderaadt WEAPON_SYM, prob, 0, wt, ldam, sdam, 0 } 160df930be7Sderaadt 161df930be7Sderaadt WEAPON("arrow", 7, 0, 6, 6), 162df930be7Sderaadt WEAPON("sling bullet", 7, 0, 4, 6), 163df930be7Sderaadt WEAPON("crossbow bolt", 7, 0, 4, 6), 164df930be7Sderaadt WEAPON("dart", 7, 0, 3, 2), 165df930be7Sderaadt WEAPON("rock", 6, 1, 3, 3), 166df930be7Sderaadt WEAPON("boomerang", 2, 3, 9, 9), 167df930be7Sderaadt WEAPON("mace", 9, 3, 6, 7), 168df930be7Sderaadt WEAPON("axe", 6, 3, 6, 4), 169df930be7Sderaadt WEAPON("flail", 6, 3, 6, 5), 170df930be7Sderaadt WEAPON("long sword", 8, 3, 8, 12), 171df930be7Sderaadt WEAPON("two handed sword", 6, 4, 12, 6), 172df930be7Sderaadt WEAPON("dagger", 6, 3, 4, 3), 173df930be7Sderaadt WEAPON("worm tooth", 0, 4, 2, 2), 174df930be7Sderaadt WEAPON("crysknife", 0, 3, 10, 10), 175df930be7Sderaadt WEAPON("spear", 6, 3, 6, 8), 176df930be7Sderaadt WEAPON("bow", 6, 3, 4, 6), 177df930be7Sderaadt WEAPON("sling", 5, 3, 6, 6), 178df930be7Sderaadt WEAPON("crossbow", 6, 3, 4, 6), 179df930be7Sderaadt 180df930be7Sderaadt { "whistle", "whistle", NULL, 0, 0, 181df930be7Sderaadt TOOL_SYM, 90, 0, 2, 0, 0, 0 }, 182df930be7Sderaadt { "magic whistle", "whistle", NULL, 0, 0, 183df930be7Sderaadt TOOL_SYM, 10, 0, 2, 0, 0, 0 }, 184df930be7Sderaadt { "expensive camera", NULL, NULL, 1, 1, 185df930be7Sderaadt TOOL_SYM, 0, 0, 3, 0, 0, 0 }, 186df930be7Sderaadt { "ice box", "large box", NULL, 0, 0, 187df930be7Sderaadt TOOL_SYM, 0, 0, 40, 0, 0, 0 }, 188df930be7Sderaadt { "pick-axe", NULL, NULL, 1, 1, 189df930be7Sderaadt TOOL_SYM, 0, 0, 5, 6, 3, 0 }, 190df930be7Sderaadt { "can opener", NULL, NULL, 1, 1, 191df930be7Sderaadt TOOL_SYM, 0, 0, 1, 0, 0, 0 }, 192df930be7Sderaadt { "heavy iron ball", NULL, NULL, 1, 0, 193df930be7Sderaadt BALL_SYM, 100, 0, 20, 0, 0, 0 }, 194df930be7Sderaadt { "iron chain", NULL, NULL, 1, 0, 195df930be7Sderaadt CHAIN_SYM, 100, 0, 20, 0, 0, 0 }, 196df930be7Sderaadt { "enormous rock", NULL, NULL, 1, 0, 197df930be7Sderaadt ROCK_SYM, 100, 0, 200 /* > MAX_CARR_CAP */, 0, 0, 0 }, 198df930be7Sderaadt 199df930be7Sderaadt #define ARMOR(name,prob,delay,ac,can) { name, NULL, NULL, 1, 0,\ 200df930be7Sderaadt ARMOR_SYM, prob, delay, 8, ac, can, 0 } 201df930be7Sderaadt ARMOR("helmet", 3, 1, 9, 0), 202df930be7Sderaadt ARMOR("plate mail", 5, 5, 3, 2), 203df930be7Sderaadt ARMOR("splint mail", 8, 5, 4, 1), 204df930be7Sderaadt ARMOR("banded mail", 10, 5, 4, 0), 205df930be7Sderaadt ARMOR("chain mail", 10, 5, 5, 1), 206df930be7Sderaadt ARMOR("scale mail", 10, 5, 6, 0), 207df930be7Sderaadt ARMOR("ring mail", 15, 5, 7, 0), 208df930be7Sderaadt /* the armors below do not rust */ 209df930be7Sderaadt ARMOR("studded leather armor", 13, 3, 7, 1), 210df930be7Sderaadt ARMOR("leather armor", 17, 3, 8, 0), 211df930be7Sderaadt ARMOR("elven cloak", 5, 0, 9, 3), 212df930be7Sderaadt ARMOR("shield", 3, 0, 9, 0), 213df930be7Sderaadt ARMOR("pair of gloves", 1, 1, 9, 0), 214df930be7Sderaadt 215df930be7Sderaadt #define POTION(name,color) { name, color, NULL, 0, 1,\ 216df930be7Sderaadt POTION_SYM, 0, 0, 2, 0, 0, 0 } 217df930be7Sderaadt 218df930be7Sderaadt POTION("restore strength", "orange"), 219df930be7Sderaadt POTION("booze", "bubbly"), 220df930be7Sderaadt POTION("invisibility", "glowing"), 221df930be7Sderaadt POTION("fruit juice", "smoky"), 222df930be7Sderaadt POTION("healing", "pink"), 223df930be7Sderaadt POTION("paralysis", "puce"), 224df930be7Sderaadt POTION("monster detection", "purple"), 225df930be7Sderaadt POTION("object detection", "yellow"), 226df930be7Sderaadt POTION("sickness", "white"), 227df930be7Sderaadt POTION("confusion", "swirly"), 228df930be7Sderaadt POTION("gain strength", "purple-red"), 229df930be7Sderaadt POTION("speed", "ruby"), 230df930be7Sderaadt POTION("blindness", "dark green"), 231df930be7Sderaadt POTION("gain level", "emerald"), 232df930be7Sderaadt POTION("extra healing", "sky blue"), 233df930be7Sderaadt POTION("levitation", "brown"), 234df930be7Sderaadt POTION(NULL, "brilliant blue"), 235df930be7Sderaadt POTION(NULL, "clear"), 236df930be7Sderaadt POTION(NULL, "magenta"), 237df930be7Sderaadt POTION(NULL, "ebony"), 238df930be7Sderaadt 239df930be7Sderaadt #define SCROLL(name,text,prob) { name, text, NULL, 0, 1,\ 240df930be7Sderaadt SCROLL_SYM, prob, 0, 3, 0, 0, 0 } 241df930be7Sderaadt SCROLL("mail", "KIRJE", 0), 242df930be7Sderaadt SCROLL("enchant armor", "ZELGO MER", 6), 243df930be7Sderaadt SCROLL("destroy armor", "JUYED AWK YACC", 5), 244df930be7Sderaadt SCROLL("confuse monster", "NR 9", 5), 245df930be7Sderaadt SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 4), 246df930be7Sderaadt SCROLL("blank paper", "READ ME", 3), 247df930be7Sderaadt SCROLL("remove curse", "PRATYAVAYAH", 6), 248df930be7Sderaadt SCROLL("enchant weapon", "DAIYEN FOOELS", 6), 249df930be7Sderaadt SCROLL("damage weapon", "HACKEM MUCHE", 5), 250df930be7Sderaadt SCROLL("create monster", "LEP GEX VEN ZEA", 5), 251df930be7Sderaadt SCROLL("taming", "PRIRUTSENIE", 1), 252df930be7Sderaadt SCROLL("genocide", "ELBIB YLOH",2), 253df930be7Sderaadt SCROLL("light", "VERR YED HORRE", 10), 254df930be7Sderaadt SCROLL("teleportation", "VENZAR BORGAVVE", 5), 255df930be7Sderaadt SCROLL("gold detection", "THARR", 4), 256df930be7Sderaadt SCROLL("food detection", "YUM YUM", 1), 257df930be7Sderaadt SCROLL("identify", "KERNOD WEL", 18), 258df930be7Sderaadt SCROLL("magic mapping", "ELAM EBOW", 5), 259df930be7Sderaadt SCROLL("amnesia", "DUAM XNAHT", 3), 260df930be7Sderaadt SCROLL("fire", "ANDOVA BEGARIN", 5), 261df930be7Sderaadt SCROLL("punishment", "VE FORBRYDERNE", 1), 262df930be7Sderaadt SCROLL(NULL, "VELOX NEB", 0), 263df930be7Sderaadt SCROLL(NULL, "FOOBIE BLETCH", 0), 264df930be7Sderaadt SCROLL(NULL, "TEMOV", 0), 265df930be7Sderaadt SCROLL(NULL, "GARVEN DEH", 0), 266df930be7Sderaadt 267df930be7Sderaadt #define WAND(name,metal,prob,flags) { name, metal, NULL, 0, 0,\ 268df930be7Sderaadt WAND_SYM, prob, 0, 3, flags, 0, 0 } 269df930be7Sderaadt 270df930be7Sderaadt WAND("light", "iridium", 10, NODIR), 271df930be7Sderaadt WAND("secret door detection", "tin", 5, NODIR), 272df930be7Sderaadt WAND("create monster", "platinum", 5, NODIR), 273df930be7Sderaadt WAND("wishing", "glass", 1, NODIR), 274df930be7Sderaadt WAND("striking", "zinc", 9, IMMEDIATE), 275df930be7Sderaadt WAND("slow monster", "balsa", 5, IMMEDIATE), 276df930be7Sderaadt WAND("speed monster", "copper", 5, IMMEDIATE), 277df930be7Sderaadt WAND("undead turning", "silver", 5, IMMEDIATE), 278df930be7Sderaadt WAND("polymorph", "brass", 5, IMMEDIATE), 279df930be7Sderaadt WAND("cancellation", "maple", 5, IMMEDIATE), 280df930be7Sderaadt WAND("teleportation", "pine", 5, IMMEDIATE), 281df930be7Sderaadt WAND("make invisible", "marble", 9, IMMEDIATE), 282df930be7Sderaadt WAND("digging", "iron", 5, RAY), 283df930be7Sderaadt WAND("magic missile", "aluminium", 10, RAY), 284df930be7Sderaadt WAND("fire", "steel", 5, RAY), 285df930be7Sderaadt WAND("sleep", "curved", 5, RAY), 286df930be7Sderaadt WAND("cold", "short", 5, RAY), 287df930be7Sderaadt WAND("death", "long", 1, RAY), 288df930be7Sderaadt WAND(NULL, "oak", 0, 0), 289df930be7Sderaadt WAND(NULL, "ebony", 0, 0), 290df930be7Sderaadt WAND(NULL, "runed", 0, 0), 291df930be7Sderaadt 292df930be7Sderaadt #define RING(name,stone,spec) { name, stone, NULL, 0, 0,\ 293df930be7Sderaadt RING_SYM, 0, 0, 1, spec, 0, 0 } 294df930be7Sderaadt 295df930be7Sderaadt RING("adornment", "engagement", 0), 296df930be7Sderaadt RING("teleportation", "wooden", 0), 297df930be7Sderaadt RING("regeneration", "black onyx", 0), 298df930be7Sderaadt RING("searching", "topaz", 0), 299df930be7Sderaadt RING("see invisible", "pearl", 0), 300df930be7Sderaadt RING("stealth", "sapphire", 0), 301df930be7Sderaadt RING("levitation", "moonstone", 0), 302df930be7Sderaadt RING("poison resistance", "agate", 0), 303df930be7Sderaadt RING("aggravate monster", "tiger eye", 0), 304df930be7Sderaadt RING("hunger", "shining", 0), 305df930be7Sderaadt RING("fire resistance", "gold", 0), 306df930be7Sderaadt RING("cold resistance", "copper", 0), 307df930be7Sderaadt RING("protection from shape changers", "diamond", 0), 308df930be7Sderaadt RING("conflict", "jade", 0), 309df930be7Sderaadt RING("gain strength", "ruby", SPEC), 310df930be7Sderaadt RING("increase damage", "silver", SPEC), 311df930be7Sderaadt RING("protection", "granite", SPEC), 312df930be7Sderaadt RING("warning", "wire", 0), 313df930be7Sderaadt RING("teleport control", "iron", 0), 314df930be7Sderaadt RING(NULL, "ivory", 0), 315df930be7Sderaadt RING(NULL, "blackened", 0), 316df930be7Sderaadt 317df930be7Sderaadt /* gems ************************************************************/ 318df930be7Sderaadt #define GEM(name,color,prob,gval) { name, color, NULL, 0, 1,\ 319df930be7Sderaadt GEM_SYM, prob, 0, 1, 0, 0, gval } 320df930be7Sderaadt GEM("diamond", "blue", 1, 4000), 321df930be7Sderaadt GEM("ruby", "red", 1, 3500), 322df930be7Sderaadt GEM("sapphire", "blue", 1, 3000), 323df930be7Sderaadt GEM("emerald", "green", 1, 2500), 324df930be7Sderaadt GEM("turquoise", "green", 1, 2000), 325df930be7Sderaadt GEM("aquamarine", "blue", 1, 1500), 326df930be7Sderaadt GEM("tourmaline", "green", 1, 1000), 327df930be7Sderaadt GEM("topaz", "yellow", 1, 900), 328df930be7Sderaadt GEM("opal", "yellow", 1, 800), 329df930be7Sderaadt GEM("garnet", "dark", 1, 700), 330df930be7Sderaadt GEM("amethyst", "violet", 2, 650), 331df930be7Sderaadt GEM("agate", "green", 2, 600), 332df930be7Sderaadt GEM("onyx", "white", 2, 550), 333df930be7Sderaadt GEM("jasper", "yellowish brown", 2, 500), 334df930be7Sderaadt GEM("jade", "green", 2, 450), 335df930be7Sderaadt GEM("worthless piece of blue glass", "blue", 20, 0), 336df930be7Sderaadt GEM("worthless piece of red glass", "red", 20, 0), 337df930be7Sderaadt GEM("worthless piece of yellow glass", "yellow", 20, 0), 338df930be7Sderaadt GEM("worthless piece of green glass", "green", 20, 0), 339df930be7Sderaadt { NULL, NULL, NULL, 0, 0, ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 } 340df930be7Sderaadt }; 341df930be7Sderaadt 342df930be7Sderaadt char obj_symbols[] = { 343df930be7Sderaadt ILLOBJ_SYM, AMULET_SYM, FOOD_SYM, WEAPON_SYM, TOOL_SYM, 344df930be7Sderaadt BALL_SYM, CHAIN_SYM, ROCK_SYM, ARMOR_SYM, POTION_SYM, SCROLL_SYM, 345df930be7Sderaadt WAND_SYM, RING_SYM, GEM_SYM, 0 }; 346df930be7Sderaadt int bases[sizeof(obj_symbols)]; 347