Source:NetHack 3.3.0/prop.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to prop.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/prop.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

1.    /*	SCCS Id: @(#)prop.h	3.3	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 DETECT_MONSTERS		65
75.   
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 */