xref: /netbsd-src/games/hack/def.objects.h (revision 1c7f94e505e668f20d7b855ceac877d04bd31eb3)
1*1c7f94e5Sjsm /*	$NetBSD: def.objects.h,v 1.6 2003/04/02 18:36:34 jsm Exp $	*/
23ea4a95cSchristos 
302ded532Smycroft /*
4*1c7f94e5Sjsm  * Copyright (c) 1985, Stichting Centrum voor Wiskunde en Informatica,
5*1c7f94e5Sjsm  * Amsterdam
6*1c7f94e5Sjsm  * All rights reserved.
7*1c7f94e5Sjsm  *
8*1c7f94e5Sjsm  * Redistribution and use in source and binary forms, with or without
9*1c7f94e5Sjsm  * modification, are permitted provided that the following conditions are
10*1c7f94e5Sjsm  * met:
11*1c7f94e5Sjsm  *
12*1c7f94e5Sjsm  * - Redistributions of source code must retain the above copyright notice,
13*1c7f94e5Sjsm  * this list of conditions and the following disclaimer.
14*1c7f94e5Sjsm  *
15*1c7f94e5Sjsm  * - Redistributions in binary form must reproduce the above copyright
16*1c7f94e5Sjsm  * notice, this list of conditions and the following disclaimer in the
17*1c7f94e5Sjsm  * documentation and/or other materials provided with the distribution.
18*1c7f94e5Sjsm  *
19*1c7f94e5Sjsm  * - Neither the name of the Stichting Centrum voor Wiskunde en
20*1c7f94e5Sjsm  * Informatica, nor the names of its contributors may be used to endorse or
21*1c7f94e5Sjsm  * promote products derived from this software without specific prior
22*1c7f94e5Sjsm  * written permission.
23*1c7f94e5Sjsm  *
24*1c7f94e5Sjsm  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
25*1c7f94e5Sjsm  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26*1c7f94e5Sjsm  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
27*1c7f94e5Sjsm  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
28*1c7f94e5Sjsm  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29*1c7f94e5Sjsm  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
30*1c7f94e5Sjsm  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
31*1c7f94e5Sjsm  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32*1c7f94e5Sjsm  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33*1c7f94e5Sjsm  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
34*1c7f94e5Sjsm  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3502ded532Smycroft  */
36*1c7f94e5Sjsm 
37*1c7f94e5Sjsm /*
38*1c7f94e5Sjsm  * Copyright (c) 1982 Jay Fenlason <hack@gnu.org>
39*1c7f94e5Sjsm  * All rights reserved.
40*1c7f94e5Sjsm  *
41*1c7f94e5Sjsm  * Redistribution and use in source and binary forms, with or without
42*1c7f94e5Sjsm  * modification, are permitted provided that the following conditions
43*1c7f94e5Sjsm  * are met:
44*1c7f94e5Sjsm  * 1. Redistributions of source code must retain the above copyright
45*1c7f94e5Sjsm  *    notice, this list of conditions and the following disclaimer.
46*1c7f94e5Sjsm  * 2. Redistributions in binary form must reproduce the above copyright
47*1c7f94e5Sjsm  *    notice, this list of conditions and the following disclaimer in the
48*1c7f94e5Sjsm  *    documentation and/or other materials provided with the distribution.
49*1c7f94e5Sjsm  * 3. The name of the author may not be used to endorse or promote products
50*1c7f94e5Sjsm  *    derived from this software without specific prior written permission.
51*1c7f94e5Sjsm  *
52*1c7f94e5Sjsm  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
53*1c7f94e5Sjsm  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
54*1c7f94e5Sjsm  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
55*1c7f94e5Sjsm  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
56*1c7f94e5Sjsm  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
57*1c7f94e5Sjsm  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
58*1c7f94e5Sjsm  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
59*1c7f94e5Sjsm  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
60*1c7f94e5Sjsm  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
61*1c7f94e5Sjsm  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62*1c7f94e5Sjsm  */
63*1c7f94e5Sjsm 
643ea4a95cSchristos #ifndef _DEF_OBJECTS_H_
653ea4a95cSchristos #define _DEF_OBJECTS_H_
6661f28255Scgd /* objects have letter " % ) ( 0 _ ` [ ! ? / = * */
6761f28255Scgd #include "config.h"
6861f28255Scgd #include "def.objclass.h"
6961f28255Scgd 
7061f28255Scgd struct objclass objects[] = {
7161f28255Scgd 
7261f28255Scgd 	{ "strange object", NULL, NULL, 1, 0,
7361f28255Scgd 		ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 },
7461f28255Scgd 	{ "amulet of Yendor", NULL, NULL, 1, 0,
7561f28255Scgd 		AMULET_SYM, 100, 0, 2, 0, 0, 0 },
7661f28255Scgd 
7761f28255Scgd #define	FOOD(name,prob,delay,weight,nutrition)	{ name, NULL, NULL, 1, 1,\
7861f28255Scgd 		FOOD_SYM, prob, delay, weight, 0, 0, nutrition }
7961f28255Scgd 
8061f28255Scgd /* dog eats foods 0-4 but prefers 1 above 0,2,3,4 */
8161f28255Scgd /* food 4 can be read */
8261f28255Scgd /* food 5 improves your vision */
8361f28255Scgd /* food 6 makes you stronger (like Popeye) */
8461f28255Scgd /* foods CORPSE up to CORPSE+52 are cadavers */
8561f28255Scgd 
8661f28255Scgd 	FOOD("food ration", 	50, 5, 4, 800),
8761f28255Scgd 	FOOD("tripe ration",	20, 1, 2, 200),
8861f28255Scgd 	FOOD("pancake",		3, 1, 1, 200),
8961f28255Scgd 	FOOD("dead lizard",	3, 0, 1, 40),
9061f28255Scgd 	FOOD("fortune cookie",	7, 0, 1, 40),
9161f28255Scgd 	FOOD("carrot",		2, 0, 1, 50),
9261f28255Scgd 	FOOD("tin",		7, 0, 1, 0),
9361f28255Scgd 	FOOD("orange",		1, 0, 1, 80),
9461f28255Scgd 	FOOD("apple",		1, 0, 1, 50),
9561f28255Scgd 	FOOD("pear",		1, 0, 1, 50),
9661f28255Scgd 	FOOD("melon",		1, 0, 1, 100),
9761f28255Scgd 	FOOD("banana",		1, 0, 1, 80),
9861f28255Scgd 	FOOD("candy bar",	1, 0, 1, 100),
9961f28255Scgd 	FOOD("egg",		1, 0, 1, 80),
10061f28255Scgd 	FOOD("clove of garlic",	1, 0, 1, 40),
10161f28255Scgd 	FOOD("lump of royal jelly", 0, 0, 1, 200),
10261f28255Scgd 
10361f28255Scgd 	FOOD("dead human",	0, 4, 40, 400),
10461f28255Scgd 	FOOD("dead giant ant",	0, 1, 3, 30),
10561f28255Scgd 	FOOD("dead giant bat",	0, 1, 3, 30),
10661f28255Scgd 	FOOD("dead centaur",	0, 5, 50, 500),
10761f28255Scgd 	FOOD("dead dragon",	0, 15, 150, 1500),
10861f28255Scgd 	FOOD("dead floating eye",	0, 1, 1, 10),
10961f28255Scgd 	FOOD("dead freezing sphere",	0, 1, 1, 10),
11061f28255Scgd 	FOOD("dead gnome",	0, 1, 10, 100),
11161f28255Scgd 	FOOD("dead hobgoblin",	0, 2, 20, 200),
11261f28255Scgd 	FOOD("dead stalker",	0, 4, 40, 400),
11361f28255Scgd 	FOOD("dead jackal",	0, 1, 10, 100),
11461f28255Scgd 	FOOD("dead kobold",	0, 1, 10, 100),
11561f28255Scgd 	FOOD("dead leprechaun",	0, 4, 40, 400),
11661f28255Scgd 	FOOD("dead mimic",	0, 4, 40, 400),
11761f28255Scgd 	FOOD("dead nymph",	0, 4, 40, 400),
11861f28255Scgd 	FOOD("dead orc",	0, 2, 20, 200),
11961f28255Scgd 	FOOD("dead purple worm",	0, 7, 70, 700),
12061f28255Scgd 	FOOD("dead quasit",	0, 2, 20, 200),
12161f28255Scgd 	FOOD("dead rust monster",	0, 5, 50, 500),
12261f28255Scgd 	FOOD("dead snake",	0, 1, 10, 100),
12361f28255Scgd 	FOOD("dead troll",	0, 4, 40, 400),
12461f28255Scgd 	FOOD("dead umber hulk",	0, 5, 50, 500),
12561f28255Scgd 	FOOD("dead vampire",	0, 4, 40, 400),
12661f28255Scgd 	FOOD("dead wraith",	0, 1, 1, 10),
12761f28255Scgd 	FOOD("dead xorn",	0, 7, 70, 700),
12861f28255Scgd 	FOOD("dead yeti",	0, 7, 70, 700),
12961f28255Scgd 	FOOD("dead zombie",	0, 1, 3, 30),
13061f28255Scgd 	FOOD("dead acid blob",	0, 1, 3, 30),
13161f28255Scgd 	FOOD("dead giant beetle",	0, 1, 1, 10),
13261f28255Scgd 	FOOD("dead cockatrice",	0, 1, 3, 30),
13361f28255Scgd 	FOOD("dead dog",	0, 2, 20, 200),
13461f28255Scgd 	FOOD("dead ettin",	0, 1, 3, 30),
13561f28255Scgd 	FOOD("dead fog cloud",	0, 1, 1, 10),
13661f28255Scgd 	FOOD("dead gelatinous cube",	0, 1, 10, 100),
13761f28255Scgd 	FOOD("dead homunculus",	0, 2, 20, 200),
13861f28255Scgd 	FOOD("dead imp",	0, 1, 1, 10),
13961f28255Scgd 	FOOD("dead jaguar",	0, 3, 30, 300),
14061f28255Scgd 	FOOD("dead killer bee",	0, 1, 1, 10),
14161f28255Scgd 	FOOD("dead leocrotta",	0, 5, 50, 500),
14261f28255Scgd 	FOOD("dead minotaur",	0, 7, 70, 700),
14361f28255Scgd 	FOOD("dead nurse",	0, 4, 40, 400),
14461f28255Scgd 	FOOD("dead owlbear",	0, 7, 70, 700),
14561f28255Scgd 	FOOD("dead piercer",	0, 2, 20, 200),
14661f28255Scgd 	FOOD("dead quivering blob",	0, 1, 10, 100),
14761f28255Scgd 	FOOD("dead giant rat",	0, 1, 3, 30),
14861f28255Scgd 	FOOD("dead giant scorpion",	0, 1, 10, 100),
14961f28255Scgd 	FOOD("dead tengu",	0, 3, 30, 300),
15061f28255Scgd 	FOOD("dead unicorn",	0, 3, 30, 300),
15161f28255Scgd 	FOOD("dead violet fungi",	0, 1, 10, 100),
15261f28255Scgd 	FOOD("dead long worm",	0, 5, 50, 500),
15361f28255Scgd /* %% wt of long worm should be proportional to its length */
15461f28255Scgd 	FOOD("dead xan",	0, 3, 30, 300),
15561f28255Scgd 	FOOD("dead yellow light",	0, 1, 1, 10),
15661f28255Scgd 	FOOD("dead zruty",	0, 6, 60, 600),
15761f28255Scgd 
15861f28255Scgd /* weapons ... - ROCK come several at a time */
15961f28255Scgd /* weapons ... - (ROCK-1) are shot using idem+(BOW-ARROW) */
16061f28255Scgd /* weapons AXE, SWORD, THSWORD are good for worm-cutting */
16161f28255Scgd /* weapons (PICK-)AXE, DAGGER, CRYSKNIFE are good for tin-opening */
16261f28255Scgd #define WEAPON(name,prob,wt,ldam,sdam)	{ name, NULL, NULL, 1, 0 /*%%*/,\
16361f28255Scgd 		WEAPON_SYM, prob, 0, wt, ldam, sdam, 0 }
16461f28255Scgd 
16561f28255Scgd 	WEAPON("arrow",		7, 0, 6, 6),
16661f28255Scgd 	WEAPON("sling bullet",	7, 0, 4, 6),
16761f28255Scgd 	WEAPON("crossbow bolt",	7, 0, 4, 6),
16861f28255Scgd 	WEAPON("dart",		7, 0, 3, 2),
16961f28255Scgd 	WEAPON("rock",		6, 1, 3, 3),
17061f28255Scgd 	WEAPON("boomerang",	2, 3, 9, 9),
17161f28255Scgd 	WEAPON("mace",		9, 3, 6, 7),
17261f28255Scgd 	WEAPON("axe",		6, 3, 6, 4),
17361f28255Scgd 	WEAPON("flail",		6, 3, 6, 5),
17461f28255Scgd 	WEAPON("long sword",	8, 3, 8, 12),
17561f28255Scgd 	WEAPON("two handed sword",	6, 4, 12, 6),
17661f28255Scgd 	WEAPON("dagger",	6, 3, 4, 3),
17761f28255Scgd 	WEAPON("worm tooth",	0, 4, 2, 2),
17861f28255Scgd 	WEAPON("crysknife",	0, 3, 10, 10),
17961f28255Scgd 	WEAPON("spear",		6, 3, 6, 8),
18061f28255Scgd 	WEAPON("bow",		6, 3, 4, 6),
18161f28255Scgd 	WEAPON("sling",		5, 3, 6, 6),
18261f28255Scgd 	WEAPON("crossbow",	6, 3, 4, 6),
18361f28255Scgd 
18461f28255Scgd 	{ "whistle", "whistle", NULL, 0, 0,
18561f28255Scgd 		TOOL_SYM, 90, 0, 2, 0, 0, 0 },
18661f28255Scgd 	{ "magic whistle", "whistle", NULL, 0, 0,
18761f28255Scgd 		TOOL_SYM, 10, 0, 2, 0, 0, 0 },
18861f28255Scgd 	{ "expensive camera", NULL, NULL, 1, 1,
18961f28255Scgd 		TOOL_SYM, 0, 0, 3, 0, 0, 0 },
19061f28255Scgd 	{ "ice box", "large box", NULL, 0, 0,
19161f28255Scgd 		TOOL_SYM, 0, 0, 40, 0, 0, 0 },
19261f28255Scgd 	{ "pick-axe", NULL, NULL, 1, 1,
19361f28255Scgd 		TOOL_SYM, 0, 0, 5, 6, 3, 0 },
19461f28255Scgd 	{ "can opener", NULL, NULL, 1, 1,
19561f28255Scgd 		TOOL_SYM, 0, 0, 1, 0, 0, 0 },
19661f28255Scgd 	{ "heavy iron ball", NULL, NULL, 1, 0,
19761f28255Scgd 		BALL_SYM, 100, 0, 20, 0, 0, 0 },
19861f28255Scgd 	{ "iron chain", NULL, NULL, 1, 0,
19961f28255Scgd 		CHAIN_SYM, 100, 0, 20, 0, 0, 0 },
20061f28255Scgd 	{ "enormous rock", NULL, NULL, 1, 0,
20161f28255Scgd 		ROCK_SYM, 100, 0, 200 /* > MAX_CARR_CAP */, 0, 0, 0 },
20261f28255Scgd 
20361f28255Scgd #define ARMOR(name,prob,delay,ac,can)	{ name, NULL, NULL, 1, 0,\
20461f28255Scgd 		ARMOR_SYM, prob, delay, 8, ac, can, 0 }
20561f28255Scgd 	ARMOR("helmet",		 3, 1, 9, 0),
20661f28255Scgd 	ARMOR("plate mail",		 5, 5, 3, 2),
20761f28255Scgd 	ARMOR("splint mail",	 8, 5, 4, 1),
20861f28255Scgd 	ARMOR("banded mail",	10, 5, 4, 0),
20961f28255Scgd 	ARMOR("chain mail",		10, 5, 5, 1),
21061f28255Scgd 	ARMOR("scale mail",		10, 5, 6, 0),
21161f28255Scgd 	ARMOR("ring mail",		15, 5, 7, 0),
21261f28255Scgd 	/* the armors below do not rust */
21361f28255Scgd 	ARMOR("studded leather armor", 13, 3, 7, 1),
21461f28255Scgd 	ARMOR("leather armor",	17, 3, 8, 0),
21561f28255Scgd 	ARMOR("elven cloak",	 5, 0, 9, 3),
21661f28255Scgd 	ARMOR("shield",		 3, 0, 9, 0),
21761f28255Scgd 	ARMOR("pair of gloves",	 1, 1, 9, 0),
21861f28255Scgd 
21961f28255Scgd #define POTION(name,color)	{ name, color, NULL, 0, 1,\
22061f28255Scgd 		POTION_SYM, 0, 0, 2, 0, 0, 0 }
22161f28255Scgd 
22261f28255Scgd 	POTION("restore strength",	"orange"),
22361f28255Scgd 	POTION("booze",		"bubbly"),
22461f28255Scgd 	POTION("invisibility",	"glowing"),
22561f28255Scgd 	POTION("fruit juice",	"smoky"),
22661f28255Scgd 	POTION("healing",	"pink"),
22761f28255Scgd 	POTION("paralysis",	"puce"),
22861f28255Scgd 	POTION("monster detection",	"purple"),
22961f28255Scgd 	POTION("object detection",	"yellow"),
23061f28255Scgd 	POTION("sickness",	"white"),
23161f28255Scgd 	POTION("confusion",	"swirly"),
23261f28255Scgd 	POTION("gain strength",	"purple-red"),
23361f28255Scgd 	POTION("speed",		"ruby"),
23461f28255Scgd 	POTION("blindness",	"dark green"),
23561f28255Scgd 	POTION("gain level",	"emerald"),
23661f28255Scgd 	POTION("extra healing",	"sky blue"),
23761f28255Scgd 	POTION("levitation",	"brown"),
23861f28255Scgd 	POTION(NULL,	"brilliant blue"),
23961f28255Scgd 	POTION(NULL,	"clear"),
24061f28255Scgd 	POTION(NULL,	"magenta"),
24161f28255Scgd 	POTION(NULL,	"ebony"),
24261f28255Scgd 
24361f28255Scgd #define SCROLL(name,text,prob) { name, text, NULL, 0, 1,\
24461f28255Scgd 		SCROLL_SYM, prob, 0, 3, 0, 0, 0 }
24561f28255Scgd 	SCROLL("mail",	"KIRJE", 0),
24661f28255Scgd 	SCROLL("enchant armor", "ZELGO MER", 6),
24761f28255Scgd 	SCROLL("destroy armor", "JUYED AWK YACC", 5),
24861f28255Scgd 	SCROLL("confuse monster", "NR 9", 5),
24961f28255Scgd 	SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 4),
25061f28255Scgd 	SCROLL("blank paper", "READ ME", 3),
25161f28255Scgd 	SCROLL("remove curse", "PRATYAVAYAH", 6),
25261f28255Scgd 	SCROLL("enchant weapon", "DAIYEN FOOELS", 6),
25361f28255Scgd 	SCROLL("damage weapon", "HACKEM MUCHE", 5),
25461f28255Scgd 	SCROLL("create monster", "LEP GEX VEN ZEA", 5),
25561f28255Scgd 	SCROLL("taming", "PRIRUTSENIE", 1),
25661f28255Scgd 	SCROLL("genocide", "ELBIB YLOH",2),
25761f28255Scgd 	SCROLL("light", "VERR YED HORRE", 10),
25861f28255Scgd 	SCROLL("teleportation", "VENZAR BORGAVVE", 5),
25961f28255Scgd 	SCROLL("gold detection", "THARR", 4),
26061f28255Scgd 	SCROLL("food detection", "YUM YUM", 1),
26161f28255Scgd 	SCROLL("identify", "KERNOD WEL", 18),
26261f28255Scgd 	SCROLL("magic mapping", "ELAM EBOW", 5),
26361f28255Scgd 	SCROLL("amnesia", "DUAM XNAHT", 3),
26461f28255Scgd 	SCROLL("fire", "ANDOVA BEGARIN", 5),
26561f28255Scgd 	SCROLL("punishment", "VE FORBRYDERNE", 1),
26661f28255Scgd 	SCROLL(NULL, "VELOX NEB", 0),
26761f28255Scgd 	SCROLL(NULL, "FOOBIE BLETCH", 0),
26861f28255Scgd 	SCROLL(NULL, "TEMOV", 0),
26961f28255Scgd 	SCROLL(NULL, "GARVEN DEH", 0),
27061f28255Scgd 
27161f28255Scgd #define	WAND(name,metal,prob,flags)	{ name, metal, NULL, 0, 0,\
27261f28255Scgd 		WAND_SYM, prob, 0, 3, flags, 0, 0 }
27361f28255Scgd 
27461f28255Scgd 	WAND("light",	"iridium",		10,	NODIR),
27561f28255Scgd 	WAND("secret door detection",	"tin",	5,	NODIR),
27661f28255Scgd 	WAND("create monster",	"platinum",	5,	NODIR),
27761f28255Scgd 	WAND("wishing",		"glass",	1,	NODIR),
27861f28255Scgd 	WAND("striking",	"zinc",		9,	IMMEDIATE),
27961f28255Scgd 	WAND("slow monster",	"balsa",	5,	IMMEDIATE),
28061f28255Scgd 	WAND("speed monster",	"copper",	5,	IMMEDIATE),
28161f28255Scgd 	WAND("undead turning",	"silver",	5,	IMMEDIATE),
28261f28255Scgd 	WAND("polymorph",	"brass",	5,	IMMEDIATE),
28361f28255Scgd 	WAND("cancellation",	"maple",	5,	IMMEDIATE),
28461f28255Scgd 	WAND("teleportation",	"pine",		5,	IMMEDIATE),
28561f28255Scgd 	WAND("make invisible",	"marble",	9,	IMMEDIATE),
28661f28255Scgd 	WAND("digging",		"iron",		5,	RAY),
28761f28255Scgd 	WAND("magic missile",	"aluminium",	10,	RAY),
28861f28255Scgd 	WAND("fire",	"steel",	5,	RAY),
28961f28255Scgd 	WAND("sleep",	"curved",	5,	RAY),
29061f28255Scgd 	WAND("cold",	"short",	5,	RAY),
29161f28255Scgd 	WAND("death",	"long",		1,	RAY),
29261f28255Scgd 	WAND(NULL,	"oak",		0,	0),
29361f28255Scgd 	WAND(NULL,	"ebony",	0,	0),
29461f28255Scgd 	WAND(NULL,	"runed",	0,	0),
29561f28255Scgd 
29661f28255Scgd #define	RING(name,stone,spec)	{ name, stone, NULL, 0, 0,\
29761f28255Scgd 		RING_SYM, 0, 0, 1, spec, 0, 0 }
29861f28255Scgd 
29961f28255Scgd 	RING("adornment",	"engagement",	0),
30061f28255Scgd 	RING("teleportation",	"wooden",	0),
30161f28255Scgd 	RING("regeneration",	"black onyx",	0),
30261f28255Scgd 	RING("searching",	"topaz",	0),
30361f28255Scgd 	RING("see invisible",	"pearl",	0),
30461f28255Scgd 	RING("stealth",		"sapphire",	0),
30561f28255Scgd 	RING("levitation",	"moonstone",	0),
30661f28255Scgd 	RING("poison resistance", "agate",	0),
30761f28255Scgd 	RING("aggravate monster", "tiger eye",	0),
30861f28255Scgd 	RING("hunger",		"shining",	0),
30961f28255Scgd 	RING("fire resistance",	"gold",		0),
31061f28255Scgd 	RING("cold resistance",	"copper",	0),
31161f28255Scgd 	RING("protection from shape changers", "diamond", 0),
31261f28255Scgd 	RING("conflict",	"jade",		0),
31361f28255Scgd 	RING("gain strength",	"ruby",		SPEC),
31461f28255Scgd 	RING("increase damage",	"silver",	SPEC),
31561f28255Scgd 	RING("protection",	"granite",	SPEC),
31661f28255Scgd 	RING("warning",		"wire",		0),
31761f28255Scgd 	RING("teleport control", "iron",	0),
31861f28255Scgd 	RING(NULL,		"ivory",	0),
31961f28255Scgd 	RING(NULL,		"blackened",	0),
32061f28255Scgd 
32161f28255Scgd /* gems ************************************************************/
32261f28255Scgd #define	GEM(name,color,prob,gval)	{ name, color, NULL, 0, 1,\
32361f28255Scgd 		GEM_SYM, prob, 0, 1, 0, 0, gval }
32461f28255Scgd 	GEM("diamond", "blue", 1, 4000),
32561f28255Scgd 	GEM("ruby", "red", 1, 3500),
32661f28255Scgd 	GEM("sapphire", "blue", 1, 3000),
32761f28255Scgd 	GEM("emerald", "green", 1, 2500),
32861f28255Scgd 	GEM("turquoise", "green", 1, 2000),
32961f28255Scgd 	GEM("aquamarine", "blue", 1, 1500),
33061f28255Scgd 	GEM("tourmaline", "green", 1, 1000),
33161f28255Scgd 	GEM("topaz", "yellow", 1, 900),
33261f28255Scgd 	GEM("opal", "yellow", 1, 800),
33361f28255Scgd 	GEM("garnet", "dark", 1, 700),
33461f28255Scgd 	GEM("amethyst", "violet", 2, 650),
33561f28255Scgd 	GEM("agate", "green", 2, 600),
33661f28255Scgd 	GEM("onyx", "white", 2, 550),
33761f28255Scgd 	GEM("jasper", "yellowish brown", 2, 500),
33861f28255Scgd 	GEM("jade", "green", 2, 450),
33961f28255Scgd 	GEM("worthless piece of blue glass", "blue", 20, 0),
34061f28255Scgd 	GEM("worthless piece of red glass", "red", 20, 0),
34161f28255Scgd 	GEM("worthless piece of yellow glass", "yellow", 20, 0),
34261f28255Scgd 	GEM("worthless piece of green glass", "green", 20, 0),
34361f28255Scgd 	{ NULL, NULL, NULL, 0, 0, ILLOBJ_SYM, 0, 0, 0, 0, 0, 0 }
34461f28255Scgd };
34561f28255Scgd 
346ab8b6343Sjsm const char obj_symbols[] = {
34761f28255Scgd 	ILLOBJ_SYM, AMULET_SYM, FOOD_SYM, WEAPON_SYM, TOOL_SYM,
34861f28255Scgd 	BALL_SYM, CHAIN_SYM, ROCK_SYM, ARMOR_SYM, POTION_SYM, SCROLL_SYM,
34961f28255Scgd 	WAND_SYM, RING_SYM, GEM_SYM, 0 };
35061f28255Scgd int bases[sizeof(obj_symbols)];
3513ea4a95cSchristos #endif /* _DEF_OBJECTS_H_ */
352