Difference between revisions of "Source:NetHack 3.6.0/include/prop.h"

From NetHackWiki
Jump to navigation Jump to search
(Created page with "__MIXEDSYNTAXHIGHLIGHT__ Below is the full text to '''prop.h''' from the source code of NetHack 3.6.0. To link to a particular line, write ...")
 
 
Line 3: Line 3:
  
 
{{NGPL}}
 
{{NGPL}}
  <span id="line1">1.   /* NetHack 3.6 prop.h $NHDT-Date: 1437877163 2015/07/26 02:19:23 $  $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */</span>
+
  <span id="line1">1. /* NetHack 3.6 prop.h $NHDT-Date: 1437877163 2015/07/26 02:19:23 $  $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */</span>
  <span id="line2">2.   /* Copyright (c) 1989 Mike Threepoint   */</span>
+
  <span id="line2">2. /* Copyright (c) 1989 Mike Threepoint   */</span>
  <span id="line3">3.   /* NetHack may be freely redistributed.  See license for details. */</span>
+
  <span id="line3">3. /* NetHack may be freely redistributed.  See license for details. */</span>
  <span id="line4">4.   </span>
+
  <span id="line4">4. </span>
  <span id="line5">5.   #ifndef PROP_H</span>
+
  <span id="line5">5. #ifndef PROP_H</span>
  <span id="line6">6.   #define PROP_H</span>
+
  <span id="line6">6. #define PROP_H</span>
  <span id="line7">7.   </span>
+
  <span id="line7">7. </span>
  <span id="line8">8.   /*** What the properties are ***/</span>
+
  <span id="line8">8. /*** What the properties are ***/</span>
  <span id="line9">9.   /* Resistances to troubles */</span>
+
  <span id="line9">9. /* Resistances to troubles */</span>
  <span id="line10">10.   #define FIRE_RES 1</span>
+
  <span id="line10">10. #define FIRE_RES 1</span>
  <span id="line11">11.   #define COLD_RES 2</span>
+
  <span id="line11">11. #define COLD_RES 2</span>
  <span id="line12">12.   #define SLEEP_RES 3</span>
+
  <span id="line12">12. #define SLEEP_RES 3</span>
  <span id="line13">13.   #define DISINT_RES 4</span>
+
  <span id="line13">13. #define DISINT_RES 4</span>
  <span id="line14">14.   #define SHOCK_RES 5</span>
+
  <span id="line14">14. #define SHOCK_RES 5</span>
  <span id="line15">15.   #define POISON_RES 6</span>
+
  <span id="line15">15. #define POISON_RES 6</span>
  <span id="line16">16.   #define ACID_RES 7</span>
+
  <span id="line16">16. #define ACID_RES 7</span>
  <span id="line17">17.   #define STONE_RES 8</span>
+
  <span id="line17">17. #define STONE_RES 8</span>
  <span id="line18">18.   /* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */</span>
+
  <span id="line18">18. /* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */</span>
  <span id="line19">19.   #define DRAIN_RES 9</span>
+
  <span id="line19">19. #define DRAIN_RES 9</span>
  <span id="line20">20.   #define SICK_RES 10</span>
+
  <span id="line20">20. #define SICK_RES 10</span>
  <span id="line21">21.   #define INVULNERABLE 11</span>
+
  <span id="line21">21. #define INVULNERABLE 11</span>
  <span id="line22">22.   #define ANTIMAGIC 12</span>
+
  <span id="line22">22. #define ANTIMAGIC 12</span>
  <span id="line23">23.   /* Troubles */</span>
+
  <span id="line23">23. /* Troubles */</span>
  <span id="line24">24.   #define STUNNED 13</span>
+
  <span id="line24">24. #define STUNNED 13</span>
  <span id="line25">25.   #define CONFUSION 14</span>
+
  <span id="line25">25. #define CONFUSION 14</span>
  <span id="line26">26.   #define BLINDED 15</span>
+
  <span id="line26">26. #define BLINDED 15</span>
  <span id="line27">27.   #define DEAF 16</span>
+
  <span id="line27">27. #define DEAF 16</span>
  <span id="line28">28.   #define SICK 17</span>
+
  <span id="line28">28. #define SICK 17</span>
  <span id="line29">29.   #define STONED 18</span>
+
  <span id="line29">29. #define STONED 18</span>
  <span id="line30">30.   #define STRANGLED 19</span>
+
  <span id="line30">30. #define STRANGLED 19</span>
  <span id="line31">31.   #define VOMITING 20</span>
+
  <span id="line31">31. #define VOMITING 20</span>
  <span id="line32">32.   #define GLIB 21</span>
+
  <span id="line32">32. #define GLIB 21</span>
  <span id="line33">33.   #define SLIMED 22</span>
+
  <span id="line33">33. #define SLIMED 22</span>
  <span id="line34">34.   #define HALLUC 23</span>
+
  <span id="line34">34. #define HALLUC 23</span>
  <span id="line35">35.   #define HALLUC_RES 24</span>
+
  <span id="line35">35. #define HALLUC_RES 24</span>
  <span id="line36">36.   #define FUMBLING 25</span>
+
  <span id="line36">36. #define FUMBLING 25</span>
  <span id="line37">37.   #define WOUNDED_LEGS 26</span>
+
  <span id="line37">37. #define WOUNDED_LEGS 26</span>
  <span id="line38">38.   #define SLEEPY 27</span>
+
  <span id="line38">38. #define SLEEPY 27</span>
  <span id="line39">39.   #define HUNGER 28</span>
+
  <span id="line39">39. #define HUNGER 28</span>
  <span id="line40">40.   /* Vision and senses */</span>
+
  <span id="line40">40. /* Vision and senses */</span>
  <span id="line41">41.   #define SEE_INVIS 29</span>
+
  <span id="line41">41. #define SEE_INVIS 29</span>
  <span id="line42">42.   #define TELEPAT 30</span>
+
  <span id="line42">42. #define TELEPAT 30</span>
  <span id="line43">43.   #define WARNING 31</span>
+
  <span id="line43">43. #define WARNING 31</span>
  <span id="line44">44.   #define WARN_OF_MON 32</span>
+
  <span id="line44">44. #define WARN_OF_MON 32</span>
  <span id="line45">45.   #define WARN_UNDEAD 33</span>
+
  <span id="line45">45. #define WARN_UNDEAD 33</span>
  <span id="line46">46.   #define SEARCHING 34</span>
+
  <span id="line46">46. #define SEARCHING 34</span>
  <span id="line47">47.   #define CLAIRVOYANT 35</span>
+
  <span id="line47">47. #define CLAIRVOYANT 35</span>
  <span id="line48">48.   #define INFRAVISION 36</span>
+
  <span id="line48">48. #define INFRAVISION 36</span>
  <span id="line49">49.   #define DETECT_MONSTERS 37</span>
+
  <span id="line49">49. #define DETECT_MONSTERS 37</span>
  <span id="line50">50.   /* Appearance and behavior */</span>
+
  <span id="line50">50. /* Appearance and behavior */</span>
  <span id="line51">51.   #define ADORNED 38</span>
+
  <span id="line51">51. #define ADORNED 38</span>
  <span id="line52">52.   #define INVIS 39</span>
+
  <span id="line52">52. #define INVIS 39</span>
  <span id="line53">53.   #define DISPLACED 40</span>
+
  <span id="line53">53. #define DISPLACED 40</span>
  <span id="line54">54.   #define STEALTH 41</span>
+
  <span id="line54">54. #define STEALTH 41</span>
  <span id="line55">55.   #define AGGRAVATE_MONSTER 42</span>
+
  <span id="line55">55. #define AGGRAVATE_MONSTER 42</span>
  <span id="line56">56.   #define CONFLICT 43</span>
+
  <span id="line56">56. #define CONFLICT 43</span>
  <span id="line57">57.   /* Transportation */</span>
+
  <span id="line57">57. /* Transportation */</span>
  <span id="line58">58.   #define JUMPING 44</span>
+
  <span id="line58">58. #define JUMPING 44</span>
  <span id="line59">59.   #define TELEPORT 45</span>
+
  <span id="line59">59. #define TELEPORT 45</span>
  <span id="line60">60.   #define TELEPORT_CONTROL 46</span>
+
  <span id="line60">60. #define TELEPORT_CONTROL 46</span>
  <span id="line61">61.   #define LEVITATION 47</span>
+
  <span id="line61">61. #define LEVITATION 47</span>
  <span id="line62">62.   #define FLYING 48</span>
+
  <span id="line62">62. #define FLYING 48</span>
  <span id="line63">63.   #define WWALKING 49</span>
+
  <span id="line63">63. #define WWALKING 49</span>
  <span id="line64">64.   #define SWIMMING 50</span>
+
  <span id="line64">64. #define SWIMMING 50</span>
  <span id="line65">65.   #define MAGICAL_BREATHING 51</span>
+
  <span id="line65">65. #define MAGICAL_BREATHING 51</span>
  <span id="line66">66.   #define PASSES_WALLS 52</span>
+
  <span id="line66">66. #define PASSES_WALLS 52</span>
  <span id="line67">67.   /* Physical attributes */</span>
+
  <span id="line67">67. /* Physical attributes */</span>
  <span id="line68">68.   #define SLOW_DIGESTION 53</span>
+
  <span id="line68">68. #define SLOW_DIGESTION 53</span>
  <span id="line69">69.   #define HALF_SPDAM 54</span>
+
  <span id="line69">69. #define HALF_SPDAM 54</span>
  <span id="line70">70.   #define HALF_PHDAM 55</span>
+
  <span id="line70">70. #define HALF_PHDAM 55</span>
  <span id="line71">71.   #define REGENERATION 56</span>
+
  <span id="line71">71. #define REGENERATION 56</span>
  <span id="line72">72.   #define ENERGY_REGENERATION 57</span>
+
  <span id="line72">72. #define ENERGY_REGENERATION 57</span>
  <span id="line73">73.   #define PROTECTION 58</span>
+
  <span id="line73">73. #define PROTECTION 58</span>
  <span id="line74">74.   #define PROT_FROM_SHAPE_CHANGERS 59</span>
+
  <span id="line74">74. #define PROT_FROM_SHAPE_CHANGERS 59</span>
  <span id="line75">75.   #define POLYMORPH 60</span>
+
  <span id="line75">75. #define POLYMORPH 60</span>
  <span id="line76">76.   #define POLYMORPH_CONTROL 61</span>
+
  <span id="line76">76. #define POLYMORPH_CONTROL 61</span>
  <span id="line77">77.   #define UNCHANGING 62</span>
+
  <span id="line77">77. #define UNCHANGING 62</span>
  <span id="line78">78.   #define FAST 63</span>
+
  <span id="line78">78. #define FAST 63</span>
  <span id="line79">79.   #define REFLECTING 64</span>
+
  <span id="line79">79. #define REFLECTING 64</span>
  <span id="line80">80.   #define FREE_ACTION 65</span>
+
  <span id="line80">80. #define FREE_ACTION 65</span>
  <span id="line81">81.   #define FIXED_ABIL 66</span>
+
  <span id="line81">81. #define FIXED_ABIL 66</span>
  <span id="line82">82.   #define LIFESAVED 67</span>
+
  <span id="line82">82. #define LIFESAVED 67</span>
  <span id="line83">83.   #define LAST_PROP (LIFESAVED)</span>
+
  <span id="line83">83. #define LAST_PROP (LIFESAVED)</span>
  <span id="line84">84.   </span>
+
  <span id="line84">84. </span>
  <span id="line85">85.   /*** Where the properties come from ***/</span>
+
  <span id="line85">85. /*** Where the properties come from ***/</span>
  <span id="line86">86.   /* Definitions were moved here from obj.h and you.h */</span>
+
  <span id="line86">86. /* Definitions were moved here from obj.h and you.h */</span>
  <span id="line87">87.   struct prop {</span>
+
  <span id="line87">87. struct prop {</span>
  <span id="line88">88.       /*** Properties conveyed by objects ***/</span>
+
  <span id="line88">88.     /*** Properties conveyed by objects ***/</span>
  <span id="line89">89.       long extrinsic;</span>
+
  <span id="line89">89.     long extrinsic;</span>
  <span id="line90">90.   /* Armor */</span>
+
  <span id="line90">90. /* Armor */</span>
  <span id="line91">91.   #define W_ARM 0x00000001L  /* Body armor */</span>
+
  <span id="line91">91. #define W_ARM 0x00000001L  /* Body armor */</span>
  <span id="line92">92.   #define W_ARMC 0x00000002L /* Cloak */</span>
+
  <span id="line92">92. #define W_ARMC 0x00000002L /* Cloak */</span>
  <span id="line93">93.   #define W_ARMH 0x00000004L /* Helmet/hat */</span>
+
  <span id="line93">93. #define W_ARMH 0x00000004L /* Helmet/hat */</span>
  <span id="line94">94.   #define W_ARMS 0x00000008L /* Shield */</span>
+
  <span id="line94">94. #define W_ARMS 0x00000008L /* Shield */</span>
  <span id="line95">95.   #define W_ARMG 0x00000010L /* Gloves/gauntlets */</span>
+
  <span id="line95">95. #define W_ARMG 0x00000010L /* Gloves/gauntlets */</span>
  <span id="line96">96.   #define W_ARMF 0x00000020L /* Footwear */</span>
+
  <span id="line96">96. #define W_ARMF 0x00000020L /* Footwear */</span>
  <span id="line97">97.   #define W_ARMU 0x00000040L /* Undershirt */</span>
+
  <span id="line97">97. #define W_ARMU 0x00000040L /* Undershirt */</span>
  <span id="line98">98.   #define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU)</span>
+
  <span id="line98">98. #define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU)</span>
  <span id="line99">99.   /* Weapons and artifacts */</span>
+
  <span id="line99">99. /* Weapons and artifacts */</span>
  <span id="line100">100. #define W_WEP 0x00000100L    /* Wielded weapon */</span>
+
  <span id="line100">100. #define W_WEP 0x00000100L    /* Wielded weapon */</span>
  <span id="line101">101. #define W_QUIVER 0x00000200L  /* Quiver for (f)iring ammo */</span>
+
  <span id="line101">101. #define W_QUIVER 0x00000200L  /* Quiver for (f)iring ammo */</span>
  <span id="line102">102. #define W_SWAPWEP 0x00000400L /* Secondary weapon */</span>
+
  <span id="line102">102. #define W_SWAPWEP 0x00000400L /* Secondary weapon */</span>
  <span id="line103">103. #define W_WEAPON (W_WEP | W_SWAPWEP | W_QUIVER)</span>
+
  <span id="line103">103. #define W_WEAPON (W_WEP | W_SWAPWEP | W_QUIVER)</span>
  <span id="line104">104. #define W_ART 0x00001000L    /* Carrying artifact (not really worn) */</span>
+
  <span id="line104">104. #define W_ART 0x00001000L    /* Carrying artifact (not really worn) */</span>
  <span id="line105">105. #define W_ARTI 0x00002000L    /* Invoked artifact  (not really worn) */</span>
+
  <span id="line105">105. #define W_ARTI 0x00002000L    /* Invoked artifact  (not really worn) */</span>
  <span id="line106">106. /* Amulets, rings, tools, and other items */</span>
+
  <span id="line106">106. /* Amulets, rings, tools, and other items */</span>
  <span id="line107">107. #define W_AMUL 0x00010000L    /* Amulet */</span>
+
  <span id="line107">107. #define W_AMUL 0x00010000L    /* Amulet */</span>
  <span id="line108">108. #define W_RINGL 0x00020000L  /* Left ring */</span>
+
  <span id="line108">108. #define W_RINGL 0x00020000L  /* Left ring */</span>
  <span id="line109">109. #define W_RINGR 0x00040000L  /* Right ring */</span>
+
  <span id="line109">109. #define W_RINGR 0x00040000L  /* Right ring */</span>
  <span id="line110">110. #define W_RING (W_RINGL | W_RINGR)</span>
+
  <span id="line110">110. #define W_RING (W_RINGL | W_RINGR)</span>
  <span id="line111">111. #define W_TOOL 0x00080000L  /* Eyewear */</span>
+
  <span id="line111">111. #define W_TOOL 0x00080000L  /* Eyewear */</span>
  <span id="line112">112. #define W_ACCESSORY (W_RING | W_AMUL | W_TOOL)</span>
+
  <span id="line112">112. #define W_ACCESSORY (W_RING | W_AMUL | W_TOOL)</span>
  <span id="line113">113.     /* historical note: originally in slash'em, 'worn' saddle stayed in</span>
+
  <span id="line113">113.     /* historical note: originally in slash'em, 'worn' saddle stayed in</span>
  <span id="line114">114.         hero's inventory; in nethack, it's kept in the steed's inventory */</span>
+
  <span id="line114">114.       hero's inventory; in nethack, it's kept in the steed's inventory */</span>
  <span id="line115">115. #define W_SADDLE 0x00100000L /* KMH -- For riding monsters */</span>
+
  <span id="line115">115. #define W_SADDLE 0x00100000L /* KMH -- For riding monsters */</span>
  <span id="line116">116. #define W_BALL 0x00200000L  /* Punishment ball */</span>
+
  <span id="line116">116. #define W_BALL 0x00200000L  /* Punishment ball */</span>
  <span id="line117">117. #define W_CHAIN 0x00400000L  /* Punishment chain */</span>
+
  <span id="line117">117. #define W_CHAIN 0x00400000L  /* Punishment chain */</span>
  <span id="line118">118. </span>
+
  <span id="line118">118. </span>
  <span id="line119">119.     /*** Property is blocked by an object ***/</span>
+
  <span id="line119">119.     /*** Property is blocked by an object ***/</span>
  <span id="line120">120.     long blocked; /* Same assignments as extrinsic */</span>
+
  <span id="line120">120.     long blocked; /* Same assignments as extrinsic */</span>
  <span id="line121">121. </span>
+
  <span id="line121">121. </span>
  <span id="line122">122.     /*** Timeouts, permanent properties, and other flags ***/</span>
+
  <span id="line122">122.     /*** Timeouts, permanent properties, and other flags ***/</span>
  <span id="line123">123.     long intrinsic;</span>
+
  <span id="line123">123.     long intrinsic;</span>
  <span id="line124">124. /* Timed properties */</span>
+
  <span id="line124">124. /* Timed properties */</span>
  <span id="line125">125. #define TIMEOUT 0x00ffffffL    /* Up to 16 million turns */</span>
+
  <span id="line125">125. #define TIMEOUT 0x00ffffffL    /* Up to 16 million turns */</span>
  <span id="line126">126.                                 /* Permanent properties */</span>
+
  <span id="line126">126.                                 /* Permanent properties */</span>
  <span id="line127">127. #define FROMEXPER 0x01000000L  /* Gain/lose with experience, for role */</span>
+
  <span id="line127">127. #define FROMEXPER 0x01000000L  /* Gain/lose with experience, for role */</span>
  <span id="line128">128. #define FROMRACE 0x02000000L    /* Gain/lose with experience, for race */</span>
+
  <span id="line128">128. #define FROMRACE 0x02000000L    /* Gain/lose with experience, for race */</span>
  <span id="line129">129. #define FROMOUTSIDE 0x04000000L /* By corpses, prayer, thrones, etc. */</span>
+
  <span id="line129">129. #define FROMOUTSIDE 0x04000000L /* By corpses, prayer, thrones, etc. */</span>
  <span id="line130">130. #define INTRINSIC (FROMOUTSIDE | FROMRACE | FROMEXPER)</span>
+
  <span id="line130">130. #define INTRINSIC (FROMOUTSIDE | FROMRACE | FROMEXPER)</span>
  <span id="line131">131. /* Control flags */</span>
+
  <span id="line131">131. /* Control flags */</span>
  <span id="line132">132. #define FROMFORM 0x10000000L  /* Polyd; conferred by monster form */</span>
+
  <span id="line132">132. #define FROMFORM 0x10000000L  /* Polyd; conferred by monster form */</span>
  <span id="line133">133. #define I_SPECIAL 0x20000000L /* Property is controllable */</span>
+
  <span id="line133">133. #define I_SPECIAL 0x20000000L /* Property is controllable */</span>
  <span id="line134">134. };</span>
+
  <span id="line134">134. };</span>
  <span id="line135">135. </span>
+
  <span id="line135">135. </span>
  <span id="line136">136. /*** Definitions for backwards compatibility ***/</span>
+
  <span id="line136">136. /*** Definitions for backwards compatibility ***/</span>
  <span id="line137">137. #define LEFT_RING W_RINGL</span>
+
  <span id="line137">137. #define LEFT_RING W_RINGL</span>
  <span id="line138">138. #define RIGHT_RING W_RINGR</span>
+
  <span id="line138">138. #define RIGHT_RING W_RINGR</span>
  <span id="line139">139. #define LEFT_SIDE LEFT_RING</span>
+
  <span id="line139">139. #define LEFT_SIDE LEFT_RING</span>
  <span id="line140">140. #define RIGHT_SIDE RIGHT_RING</span>
+
  <span id="line140">140. #define RIGHT_SIDE RIGHT_RING</span>
  <span id="line141">141. #define BOTH_SIDES (LEFT_SIDE | RIGHT_SIDE)</span>
+
  <span id="line141">141. #define BOTH_SIDES (LEFT_SIDE | RIGHT_SIDE)</span>
  <span id="line142">142. #define WORN_ARMOR W_ARM</span>
+
  <span id="line142">142. #define WORN_ARMOR W_ARM</span>
  <span id="line143">143. #define WORN_CLOAK W_ARMC</span>
+
  <span id="line143">143. #define WORN_CLOAK W_ARMC</span>
  <span id="line144">144. #define WORN_HELMET W_ARMH</span>
+
  <span id="line144">144. #define WORN_HELMET W_ARMH</span>
  <span id="line145">145. #define WORN_SHIELD W_ARMS</span>
+
  <span id="line145">145. #define WORN_SHIELD W_ARMS</span>
  <span id="line146">146. #define WORN_GLOVES W_ARMG</span>
+
  <span id="line146">146. #define WORN_GLOVES W_ARMG</span>
  <span id="line147">147. #define WORN_BOOTS W_ARMF</span>
+
  <span id="line147">147. #define WORN_BOOTS W_ARMF</span>
  <span id="line148">148. #define WORN_AMUL W_AMUL</span>
+
  <span id="line148">148. #define WORN_AMUL W_AMUL</span>
  <span id="line149">149. #define WORN_BLINDF W_TOOL</span>
+
  <span id="line149">149. #define WORN_BLINDF W_TOOL</span>
  <span id="line150">150. #define WORN_SHIRT W_ARMU</span>
+
  <span id="line150">150. #define WORN_SHIRT W_ARMU</span>
  <span id="line151">151. </span>
+
  <span id="line151">151. </span>
  <span id="line152">152. #endif /* PROP_H */</span>
+
  <span id="line152">152. #endif /* PROP_H */</span>
 
[[Category:NetHack 3.6.0 source code|include/prop.h]]
 
[[Category:NetHack 3.6.0 source code|include/prop.h]]

Latest revision as of 13:36, 15 December 2015

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

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.

 /* NetHack 3.6	prop.h	$NHDT-Date: 1437877163 2015/07/26 02:19:23 $  $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */
 /* Copyright (c) 1989 Mike Threepoint				  */
 /* NetHack may be freely redistributed.  See license for details. */
 
 #ifndef PROP_H
 #define PROP_H
 
 /*** What the properties are ***/
 /* Resistances to troubles */
 #define FIRE_RES 1
 #define COLD_RES 2
 #define SLEEP_RES 3
 #define DISINT_RES 4
 #define SHOCK_RES 5
 #define POISON_RES 6
 #define ACID_RES 7
 #define STONE_RES 8
 /* note: for the first eight properties, MR_xxx == (1 << (xxx_RES - 1)) */
 #define DRAIN_RES 9
 #define SICK_RES 10
 #define INVULNERABLE 11
 #define ANTIMAGIC 12
 /* Troubles */
 #define STUNNED 13
 #define CONFUSION 14
 #define BLINDED 15
 #define DEAF 16
 #define SICK 17
 #define STONED 18
 #define STRANGLED 19
 #define VOMITING 20
 #define GLIB 21
 #define SLIMED 22
 #define HALLUC 23
 #define HALLUC_RES 24
 #define FUMBLING 25
 #define WOUNDED_LEGS 26
 #define SLEEPY 27
 #define HUNGER 28
 /* Vision and senses */
 #define SEE_INVIS 29
 #define TELEPAT 30
 #define WARNING 31
 #define WARN_OF_MON 32
 #define WARN_UNDEAD 33
 #define SEARCHING 34
 #define CLAIRVOYANT 35
 #define INFRAVISION 36
 #define DETECT_MONSTERS 37
 /* Appearance and behavior */
 #define ADORNED 38
 #define INVIS 39
 #define DISPLACED 40
 #define STEALTH 41
 #define AGGRAVATE_MONSTER 42
 #define CONFLICT 43
 /* Transportation */
 #define JUMPING 44
 #define TELEPORT 45
 #define TELEPORT_CONTROL 46
 #define LEVITATION 47
 #define FLYING 48
 #define WWALKING 49
 #define SWIMMING 50
 #define MAGICAL_BREATHING 51
 #define PASSES_WALLS 52
 /* Physical attributes */
 #define SLOW_DIGESTION 53
 #define HALF_SPDAM 54
 #define HALF_PHDAM 55
 #define REGENERATION 56
 #define ENERGY_REGENERATION 57
 #define PROTECTION 58
 #define PROT_FROM_SHAPE_CHANGERS 59
 #define POLYMORPH 60
 #define POLYMORPH_CONTROL 61
 #define UNCHANGING 62
 #define FAST 63
 #define REFLECTING 64
 #define FREE_ACTION 65
 #define FIXED_ABIL 66
 #define LIFESAVED 67
 #define LAST_PROP (LIFESAVED)
 
 /*** Where the properties come from ***/
 /* Definitions were moved here from obj.h and you.h */
 struct prop {
     /*** Properties conveyed by objects ***/
     long extrinsic;
 /* Armor */
 #define W_ARM 0x00000001L  /* Body armor */
 #define W_ARMC 0x00000002L /* Cloak */
 #define W_ARMH 0x00000004L /* Helmet/hat */
 #define W_ARMS 0x00000008L /* Shield */
 #define W_ARMG 0x00000010L /* Gloves/gauntlets */
 #define W_ARMF 0x00000020L /* Footwear */
 #define W_ARMU 0x00000040L /* Undershirt */
 #define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU)
 /* Weapons and artifacts */
 #define W_WEP 0x00000100L     /* Wielded weapon */
 #define W_QUIVER 0x00000200L  /* Quiver for (f)iring ammo */
 #define W_SWAPWEP 0x00000400L /* Secondary weapon */
 #define W_WEAPON (W_WEP | W_SWAPWEP | W_QUIVER)
 #define W_ART 0x00001000L     /* Carrying artifact (not really worn) */
 #define W_ARTI 0x00002000L    /* Invoked artifact  (not really worn) */
 /* Amulets, rings, tools, and other items */
 #define W_AMUL 0x00010000L    /* Amulet */
 #define W_RINGL 0x00020000L   /* Left ring */
 #define W_RINGR 0x00040000L   /* Right ring */
 #define W_RING (W_RINGL | W_RINGR)
 #define W_TOOL 0x00080000L   /* Eyewear */
 #define W_ACCESSORY (W_RING | W_AMUL | W_TOOL)
     /* historical note: originally in slash'em, 'worn' saddle stayed in
        hero's inventory; in nethack, it's kept in the steed's inventory */
 #define W_SADDLE 0x00100000L /* KMH -- For riding monsters */
 #define W_BALL 0x00200000L   /* Punishment ball */
 #define W_CHAIN 0x00400000L  /* Punishment chain */
 
     /*** Property is blocked by an object ***/
     long blocked; /* Same assignments as extrinsic */
 
     /*** Timeouts, permanent properties, and other flags ***/
     long intrinsic;
 /* Timed properties */
 #define TIMEOUT 0x00ffffffL     /* Up to 16 million turns */
                                 /* Permanent properties */
 #define FROMEXPER 0x01000000L   /* Gain/lose with experience, for role */
 #define FROMRACE 0x02000000L    /* Gain/lose with experience, for race */
 #define FROMOUTSIDE 0x04000000L /* By corpses, prayer, thrones, etc. */
 #define INTRINSIC (FROMOUTSIDE | FROMRACE | FROMEXPER)
 /* Control flags */
 #define FROMFORM 0x10000000L  /* Polyd; conferred by monster form */
 #define I_SPECIAL 0x20000000L /* Property is controllable */
 };
 
 /*** Definitions for backwards compatibility ***/
 #define LEFT_RING W_RINGL
 #define RIGHT_RING W_RINGR
 #define LEFT_SIDE LEFT_RING
 #define RIGHT_SIDE RIGHT_RING
 #define BOTH_SIDES (LEFT_SIDE | RIGHT_SIDE)
 #define WORN_ARMOR W_ARM
 #define WORN_CLOAK W_ARMC
 #define WORN_HELMET W_ARMH
 #define WORN_SHIELD W_ARMS
 #define WORN_GLOVES W_ARMG
 #define WORN_BOOTS W_ARMF
 #define WORN_AMUL W_AMUL
 #define WORN_BLINDF W_TOOL
 #define WORN_SHIRT W_ARMU
 
 #endif /* PROP_H */