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. */
8 /*** What the properties are ***/
17 /* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */
19 #define REGENERATION 10
24 #define TELEPORT_CONTROL 15
26 #define POLYMORPH_CONTROL 17
29 #define AGGRAVATE_MONSTER 20
32 #define PROT_FROM_SHAPE_CHANGERS 23
41 #define WOUNDED_LEGS 32
55 #define CLAIRVOYANT 46
57 #define ENERGY_REGENERATION 48
58 #define MAGICAL_BREATHING 49
63 #define WARN_UNDEAD 54
64 #define INVULNERABLE 55
65 #define FREE_ACTION 56
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)
78 /*** Where the properties come from ***/
79 /* Definitions were moved here from obj.h and you.h */
81 /*** Properties conveyed by objects ***/
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 */
91 # define W_ARMU 0x00000040L /* Undershirt */
92 # define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU)
94 # define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF)
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 */
109 # define W_SADDLE 0x00100000L /* KMH -- For riding monsters */
111 # define W_BALL 0x00200000L /* Punishment ball */
112 # define W_CHAIN 0x00400000L /* Punishment chain */
114 /*** Property is blocked by an object ***/
115 long blocked; /* Same assignments as extrinsic */
117 /*** Timeouts, permanent properties, and other flags ***/
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)
127 # define I_SPECIAL 0x10000000L /* Property is controllable */
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
145 #define WORN_SHIRT W_ARMU