Source:NetHack 3.1.0/youprop.h

From NetHackWiki
Revision as of 07:59, 4 March 2008 by Kernigh bot (talk | contribs) (NetHack 3.1.0/youprop.h moved to Source:NetHack 3.1.0/youprop.h: Robot: moved page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Below is the full text to youprop.h from the source code of NetHack 3.1.0. To link to a particular line, write [[NetHack 3.1.0/youprop.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: @(#)youprop.h	3.1	92/11/01	*/
2.    /* Copyright (c) 1989 Mike Threepoint				  */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef YOUPROP_H
6.    #define YOUPROP_H
7.    
8.    #ifndef PROP_H
9.    #include "prop.h"
10.   #endif
11.   #ifndef PERMONST_H
12.   #include "permonst.h"
13.   #endif
14.   #ifndef MONDATA_H
15.   #include "mondata.h"
16.   #endif
17.   #ifndef PM_H
18.   #include "pm.h"
19.   #endif
20.   
21.   #ifdef POLYSELF
22.   # define UPROP(base,poly) (base || (poly))
23.   #else
24.   # define UPROP(base,poly) (base)
25.   #endif
26.   
27.   /* three pseudo-properties */
28.   #define Blindfolded	(ublindf)
29.   #define Punished	(uball)
30.   #define Underwater	(u.uinwater)
31.   /* Note that Underwater and u.uinwater are both used in code.
32.      The latter form is for later implementation of other in-water
33.      states, like swimming, wading, etc. */
34.   
35.   #define HFire_resistance	u.uprops[FIRE_RES].p_flgs
36.   #define Fire_resistance		UPROP(HFire_resistance,resists_fire(uasmon))
37.   
38.   #define HCold_resistance	u.uprops[COLD_RES].p_flgs
39.   #define Cold_resistance		UPROP(HCold_resistance,resists_cold(uasmon))
40.   
41.   #define HSleep_resistance	u.uprops[SLEEP_RES].p_flgs
42.   #define Sleep_resistance	UPROP(HSleep_resistance,resists_sleep(uasmon))
43.   
44.   #define HDisint_resistance	u.uprops[DISINT_RES].p_flgs
45.   #define Disint_resistance	UPROP(HDisint_resistance,resists_disint(uasmon))
46.   
47.   #define HShock_resistance	u.uprops[SHOCK_RES].p_flgs
48.   #define Shock_resistance	UPROP(HShock_resistance,resists_elec(uasmon))
49.   
50.   #define HPoison_resistance	u.uprops[POISON_RES].p_flgs
51.   #define Poison_resistance	UPROP(HPoison_resistance,resists_poison(uasmon))
52.   
53.   #define Adornment		u.uprops[ADORNED].p_flgs
54.   
55.   #define HRegeneration		u.uprops[REGENERATION].p_flgs
56.   #define Regeneration		UPROP(HRegeneration,regenerates(uasmon))
57.   
58.   #define Searching		u.uprops[SEARCHING].p_flgs
59.   
60.   #define HSee_invisible		u.uprops[SEE_INVIS].p_flgs
61.   #define See_invisible		UPROP(HSee_invisible,perceives(uasmon))
62.   
63.   #define HInvis			u.uprops[INVIS].p_flgs
64.   #define Invis			UPROP(HInvis,u.usym == S_STALKER)
65.   #define Invisible		(Invis && !See_invisible)
66.   
67.   #define HTeleportation		u.uprops[TELEPORT].p_flgs
68.   #define Teleportation		UPROP(HTeleportation,can_teleport(uasmon))
69.   
70.   #define HTeleport_control	u.uprops[TELEPORT_CONTROL].p_flgs
71.   #define Teleport_control	UPROP(HTeleport_control,control_teleport(uasmon))
72.   
73.   #ifdef POLYSELF
74.   #define Polymorph		u.uprops[POLYMORPH].p_flgs
75.   #define Polymorph_control	u.uprops[POLYMORPH_CONTROL].p_flgs
76.   #endif
77.   
78.   #define HLevitation		u.uprops[LEVITATION].p_flgs
79.   #define Levitation		UPROP(HLevitation,is_floater(uasmon))
80.   
81.   #define Stealth			u.uprops[STEALTH].p_flgs
82.   #define Aggravate_monster	u.uprops[AGGRAVATE_MONSTER].p_flgs
83.   #define Conflict		u.uprops[CONFLICT].p_flgs
84.   #define Protection		u.uprops[PROTECTION].p_flgs
85.   #define Protection_from_shape_changers \
86.   				u.uprops[PROT_FROM_SHAPE_CHANGERS].p_flgs
87.   #define Warning			u.uprops[WARNING].p_flgs
88.   
89.   #define HTelepat		u.uprops[TELEPAT].p_flgs
90.   #define Telepat			UPROP(HTelepat,telepathic(uasmon))
91.   
92.   #define Fast			u.uprops[FAST].p_flgs
93.   
94.   #define HStun			u.uprops[STUNNED].p_flgs
95.   #define Stunned			UPROP(HStun,u.usym==S_BAT || u.usym==S_STALKER)
96.   
97.   #define HConfusion		u.uprops[CONFUSION].p_flgs
98.   #define Confusion		HConfusion
99.   
100.  #define Sick			u.uprops[SICK].p_flgs
101.  #define Blinded			u.uprops[BLINDED].p_flgs
102.  #define Blind			UPROP(Blinded || Blindfolded,!haseyes(uasmon))
103.  #define Sleeping		u.uprops[SLEEPING].p_flgs
104.  #define Wounded_legs		u.uprops[WOUNDED_LEGS].p_flgs
105.  #define Stoned			u.uprops[STONED].p_flgs
106.  #define Strangled		u.uprops[STRANGLED].p_flgs
107.  #define HHallucination		u.uprops[HALLUC].p_flgs
108.  #define HHalluc_resistance	u.uprops[HALLUC_RES].p_flgs
109.  #define Hallucination		(HHallucination && !HHalluc_resistance)
110.  #define Fumbling		u.uprops[FUMBLING].p_flgs
111.  #define Jumping			u.uprops[JUMPING].p_flgs
112.  /* Wwalking is meaningless on water level */
113.  #define Wwalking		(u.uprops[WWALKING].p_flgs && \
114.  				 !Is_waterlevel(&u.uz))
115.  #define Hunger			u.uprops[HUNGER].p_flgs
116.  #define Glib			u.uprops[GLIB].p_flgs
117.  #define Reflecting		u.uprops[REFLECTING].p_flgs
118.  #define Lifesaved		u.uprops[LIFESAVED].p_flgs
119.  #define Antimagic		u.uprops[ANTIMAGIC].p_flgs
120.  #define Displaced		u.uprops[DISPLACED].p_flgs
121.  #define Clairvoyant		u.uprops[CLAIRVOYANT].p_flgs
122.  #define Vomiting		u.uprops[VOMITING].p_flgs
123.  #define Energy_regeneration	u.uprops[ENERGY_REGENERATION].p_flgs
124.  #define HMagical_breathing	u.uprops[MAGICAL_BREATHING].p_flgs
125.  #define Magical_breathing	UPROP(HMagical_breathing,\
126.  				      magic_breathing(uasmon))
127.  #define Half_spell_damage	u.uprops[HALF_SPDAM].p_flgs
128.  #define Half_physical_damage	u.uprops[HALF_PHDAM].p_flgs
129.  
130.  #endif /* YOUPROP_H */