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 (PCK-)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)];

Defined variables

bases defined in line 289; used 9 times
obj_symbols defined in line 285; used 2 times

Defined macros

ARMOR defined in line 142; used 12 times
FOOD defined in line 16; used 69 times
GEM defined in line 261; used 19 times
NULL defined in line 7; used 51 times
POTION defined in line 158; used 20 times
RING defined in line 235; used 21 times
SCROLL defined in line 182; used 25 times
WAND defined in line 210; used 21 times
WEAPON defined in line 101; used 18 times

Usage of this include

Last modified: 1996-03-22
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2376
Valid CSS Valid XHTML 1.0 Strict