Commit | Line | Data |
---|---|---|
15637ed4 RG |
1 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
2 | /* def.objclass.h - version 1.0.3 */ | |
3 | ||
4 | /* definition of a class of objects */ | |
5 | ||
6 | struct objclass { | |
7 | char *oc_name; /* actual name */ | |
8 | char *oc_descr; /* description when name unknown */ | |
9 | char *oc_uname; /* called by user */ | |
10 | Bitfield(oc_name_known,1); | |
11 | Bitfield(oc_merge,1); /* merge otherwise equal objects */ | |
12 | char oc_olet; | |
13 | schar oc_prob; /* probability for mkobj() */ | |
14 | schar oc_delay; /* delay when using such an object */ | |
15 | uchar oc_weight; | |
16 | schar oc_oc1, oc_oc2; | |
17 | int oc_oi; | |
18 | #define nutrition oc_oi /* for foods */ | |
19 | #define a_ac oc_oc1 /* for armors - only used in ARM_BONUS */ | |
20 | #define ARM_BONUS(obj) ((10 - objects[obj->otyp].a_ac) + obj->spe) | |
21 | #define a_can oc_oc2 /* for armors */ | |
22 | #define bits oc_oc1 /* for wands and rings */ | |
23 | /* wands */ | |
24 | #define NODIR 1 | |
25 | #define IMMEDIATE 2 | |
26 | #define RAY 4 | |
27 | /* rings */ | |
28 | #define SPEC 1 /* +n is meaningful */ | |
29 | #define wldam oc_oc1 /* for weapons and PICK_AXE */ | |
30 | #define wsdam oc_oc2 /* for weapons and PICK_AXE */ | |
31 | #define g_val oc_oi /* for gems: value on exit */ | |
32 | }; | |
33 | ||
34 | extern struct objclass objects[]; | |
35 | ||
36 | /* definitions of all object-symbols */ | |
37 | ||
38 | #define ILLOBJ_SYM '\\' | |
39 | #define AMULET_SYM '"' | |
40 | #define FOOD_SYM '%' | |
41 | #define WEAPON_SYM ')' | |
42 | #define TOOL_SYM '(' | |
43 | #define BALL_SYM '0' | |
44 | #define CHAIN_SYM '_' | |
45 | #define ROCK_SYM '`' | |
46 | #define ARMOR_SYM '[' | |
47 | #define POTION_SYM '!' | |
48 | #define SCROLL_SYM '?' | |
49 | #define WAND_SYM '/' | |
50 | #define RING_SYM '=' | |
51 | #define GEM_SYM '*' | |
52 | /* Other places with explicit knowledge of object symbols: | |
53 | * ....shk.c: char shtypes[] = "=/)%?!["; | |
54 | * mklev.c: "=/)%?![<>" | |
55 | * hack.mkobj.c: char mkobjstr[] = "))[[!!!!????%%%%/=**"; | |
56 | * hack.apply.c: otmp = getobj("0#%", "put in"); | |
57 | * hack.eat.c: otmp = getobj("%", "eat"); | |
58 | * hack.invent.c: if(index("!%?[)=*(0/\"", sym)){ | |
59 | * hack.invent.c: || index("%?!*",otmp->olet))){ | |
60 | */ |