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