xref: /openbsd-src/games/hack/def.objects.h (revision aed906e4b20d9afbda31247cdb6acf6f29da8819)
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