OSDN Git Service

fix sokoban defs
[nethackexpress/trunk.git] / include / prop.h
1 /*      SCCS Id: @(#)prop.h     3.4     1999/07/07      */
2 /* Copyright (c) 1989 Mike Threepoint                             */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 #ifndef PROP_H
6 #define PROP_H
7
8 /*** What the properties are ***/
9 #define FIRE_RES                 1
10 #define COLD_RES                 2
11 #define SLEEP_RES                3
12 #define DISINT_RES               4
13 #define SHOCK_RES                5
14 #define POISON_RES               6
15 #define ACID_RES                 7
16 #define STONE_RES                8
17 /* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */
18 #define ADORNED                  9
19 #define REGENERATION            10
20 #define SEARCHING               11
21 #define SEE_INVIS               12
22 #define INVIS                   13
23 #define TELEPORT                14
24 #define TELEPORT_CONTROL        15
25 #define POLYMORPH               16
26 #define POLYMORPH_CONTROL       17
27 #define LEVITATION              18
28 #define STEALTH                 19
29 #define AGGRAVATE_MONSTER       20
30 #define CONFLICT                21
31 #define PROTECTION              22
32 #define PROT_FROM_SHAPE_CHANGERS 23
33 #define WARNING                 24
34 #define TELEPAT                 25
35 #define FAST                    26
36 #define STUNNED                 27
37 #define CONFUSION               28
38 #define SICK                    29
39 #define BLINDED                 30
40 #define SLEEPING                31
41 #define WOUNDED_LEGS            32
42 #define STONED                  33
43 #define STRANGLED               34
44 #define HALLUC                  35
45 #define HALLUC_RES              36
46 #define FUMBLING                37
47 #define JUMPING                 38
48 #define WWALKING                39
49 #define HUNGER                  40
50 #define GLIB                    41
51 #define REFLECTING              42
52 #define LIFESAVED               43
53 #define ANTIMAGIC               44
54 #define DISPLACED               45
55 #define CLAIRVOYANT             46
56 #define VOMITING                47
57 #define ENERGY_REGENERATION     48
58 #define MAGICAL_BREATHING       49
59 #define HALF_SPDAM              50
60 #define HALF_PHDAM              51
61 #define SICK_RES                52
62 #define DRAIN_RES               53
63 #define WARN_UNDEAD             54
64 #define INVULNERABLE            55
65 #define FREE_ACTION             56
66 #define SWIMMING                57
67 #define SLIMED                  58
68 #define FIXED_ABIL              59
69 #define FLYING                  60
70 #define UNCHANGING              61
71 #define PASSES_WALLS            62
72 #define SLOW_DIGESTION          63
73 #define INFRAVISION             64
74 #define WARN_OF_MON             65
75 #define DETECT_MONSTERS         66
76 #define LAST_PROP               (DETECT_MONSTERS)
77
78 /*** Where the properties come from ***/
79 /* Definitions were moved here from obj.h and you.h */
80 struct prop {
81         /*** Properties conveyed by objects ***/
82         long extrinsic;
83         /* Armor */
84 #       define W_ARM        0x00000001L /* Body armor */
85 #       define W_ARMC       0x00000002L /* Cloak */
86 #       define W_ARMH       0x00000004L /* Helmet/hat */
87 #       define W_ARMS       0x00000008L /* Shield */
88 #       define W_ARMG       0x00000010L /* Gloves/gauntlets */
89 #       define W_ARMF       0x00000020L /* Footwear */
90 #ifdef TOURIST
91 #       define W_ARMU       0x00000040L /* Undershirt */
92 #       define W_ARMOR       (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU)
93 #else
94 #       define W_ARMOR       (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF)
95 #endif
96         /* Weapons and artifacts */
97 #       define W_WEP        0x00000100L /* Wielded weapon */
98 #       define W_QUIVER     0x00000200L /* Quiver for (f)iring ammo */
99 #       define W_SWAPWEP    0x00000400L /* Secondary weapon */
100 #       define W_ART        0x00001000L /* Carrying artifact (not really worn) */
101 #       define W_ARTI       0x00002000L /* Invoked artifact  (not really worn) */
102         /* Amulets, rings, tools, and other items */
103 #       define W_AMUL       0x00010000L /* Amulet */
104 #       define W_RINGL      0x00020000L /* Left ring */
105 #       define W_RINGR      0x00040000L /* Right ring */
106 #       define W_RING       (W_RINGL | W_RINGR)
107 #       define W_TOOL       0x00080000L /* Eyewear */
108 #ifdef STEED
109 #       define W_SADDLE     0x00100000L /* KMH -- For riding monsters */
110 #endif
111 #       define W_BALL       0x00200000L /* Punishment ball */
112 #       define W_CHAIN      0x00400000L /* Punishment chain */
113
114         /*** Property is blocked by an object ***/
115         long blocked;                                   /* Same assignments as extrinsic */
116
117         /*** Timeouts, permanent properties, and other flags ***/
118         long intrinsic;
119         /* Timed properties */
120 #       define TIMEOUT      0x00ffffffL /* Up to 16 million turns */
121         /* Permanent properties */
122 #       define FROMEXPER    0x01000000L /* Gain/lose with experience, for role */
123 #       define FROMRACE     0x02000000L /* Gain/lose with experience, for race */
124 #       define FROMOUTSIDE  0x04000000L /* By corpses, prayer, thrones, etc. */
125 #       define INTRINSIC    (FROMOUTSIDE|FROMRACE|FROMEXPER)
126         /* Control flags */
127 #       define I_SPECIAL    0x10000000L /* Property is controllable */
128 };
129
130 /*** Definitions for backwards compatibility ***/
131 #define LEFT_RING       W_RINGL
132 #define RIGHT_RING      W_RINGR
133 #define LEFT_SIDE       LEFT_RING
134 #define RIGHT_SIDE      RIGHT_RING
135 #define BOTH_SIDES      (LEFT_SIDE | RIGHT_SIDE)
136 #define WORN_ARMOR      W_ARM
137 #define WORN_CLOAK      W_ARMC
138 #define WORN_HELMET     W_ARMH
139 #define WORN_SHIELD     W_ARMS
140 #define WORN_GLOVES     W_ARMG
141 #define WORN_BOOTS      W_ARMF
142 #define WORN_AMUL       W_AMUL
143 #define WORN_BLINDF     W_TOOL
144 #ifdef TOURIST
145 #define WORN_SHIRT      W_ARMU
146 #endif
147
148 #endif /* PROP_H */