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

From NetHackWiki
Jump to navigation Jump to search
(Created page with "__MIXEDSYNTAXHIGHLIGHT__ Below is the full text to '''trap.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 trap.h $NHDT-Date: 1432512776 2015/05/25 00:12:56 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */</span>
+
  <span id="line1">1. /* NetHack 3.6 trap.h $NHDT-Date: 1432512776 2015/05/25 00:12:56 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */</span>
  <span id="line2">2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</span>
+
  <span id="line2">2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</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.   /* note for 3.1.0 and later: no longer manipulated by 'makedefs' */</span>
+
  <span id="line5">5. /* note for 3.1.0 and later: no longer manipulated by 'makedefs' */</span>
  <span id="line6">6.   </span>
+
  <span id="line6">6. </span>
  <span id="line7">7.   #ifndef TRAP_H</span>
+
  <span id="line7">7. #ifndef TRAP_H</span>
  <span id="line8">8.   #define TRAP_H</span>
+
  <span id="line8">8. #define TRAP_H</span>
  <span id="line9">9.   </span>
+
  <span id="line9">9. </span>
  <span id="line10">10.   union vlaunchinfo {</span>
+
  <span id="line10">10. union vlaunchinfo {</span>
  <span id="line11">11.       short v_launch_otyp; /* type of object to be triggered */</span>
+
  <span id="line11">11.     short v_launch_otyp; /* type of object to be triggered */</span>
  <span id="line12">12.       coord v_launch2;    /* secondary launch point (for boulders) */</span>
+
  <span id="line12">12.     coord v_launch2;    /* secondary launch point (for boulders) */</span>
  <span id="line13">13.       uchar v_conjoined;  /* conjoined pit locations */</span>
+
  <span id="line13">13.     uchar v_conjoined;  /* conjoined pit locations */</span>
  <span id="line14">14.       short v_tnote;      /* boards: 12 notes        */</span>
+
  <span id="line14">14.     short v_tnote;      /* boards: 12 notes        */</span>
  <span id="line15">15.   };</span>
+
  <span id="line15">15. };</span>
  <span id="line16">16.   </span>
+
  <span id="line16">16. </span>
  <span id="line17">17.   struct trap {</span>
+
  <span id="line17">17. struct trap {</span>
  <span id="line18">18.       struct trap *ntrap;</span>
+
  <span id="line18">18.     struct trap *ntrap;</span>
  <span id="line19">19.       xchar tx, ty;</span>
+
  <span id="line19">19.     xchar tx, ty;</span>
  <span id="line20">20.       d_level dst; /* destination for portals */</span>
+
  <span id="line20">20.     d_level dst; /* destination for portals */</span>
  <span id="line21">21.       coord launch;</span>
+
  <span id="line21">21.     coord launch;</span>
  <span id="line22">22.       Bitfield(ttyp, 5);</span>
+
  <span id="line22">22.     Bitfield(ttyp, 5);</span>
  <span id="line23">23.       Bitfield(tseen, 1);</span>
+
  <span id="line23">23.     Bitfield(tseen, 1);</span>
  <span id="line24">24.       Bitfield(once, 1);</span>
+
  <span id="line24">24.     Bitfield(once, 1);</span>
  <span id="line25">25.       Bitfield(madeby_u, 1); /* So monsters may take offence when you trap</span>
+
  <span id="line25">25.     Bitfield(madeby_u, 1); /* So monsters may take offence when you trap</span>
  <span id="line26">26.                                 them. Recognizing who made the trap isn't</span>
+
  <span id="line26">26.                               them. Recognizing who made the trap isn't</span>
  <span id="line27">27.                                 completely unreasonable, everybody has</span>
+
  <span id="line27">27.                               completely unreasonable, everybody has</span>
  <span id="line28">28.                                 their own style.  This flag is also needed</span>
+
  <span id="line28">28.                               their own style.  This flag is also needed</span>
  <span id="line29">29.                                 when you untrap a monster.  It would be too</span>
+
  <span id="line29">29.                               when you untrap a monster.  It would be too</span>
  <span id="line30">30.                                 easy to make a monster peaceful if you could</span>
+
  <span id="line30">30.                               easy to make a monster peaceful if you could</span>
  <span id="line31">31.                                 set a trap for it and then untrap it. */</span>
+
  <span id="line31">31.                               set a trap for it and then untrap it. */</span>
  <span id="line32">32.       union vlaunchinfo vl;</span>
+
  <span id="line32">32.     union vlaunchinfo vl;</span>
  <span id="line33">33.   #define launch_otyp vl.v_launch_otyp</span>
+
  <span id="line33">33. #define launch_otyp vl.v_launch_otyp</span>
  <span id="line34">34.   #define launch2 vl.v_launch2</span>
+
  <span id="line34">34. #define launch2 vl.v_launch2</span>
  <span id="line35">35.   #define conjoined vl.v_conjoined</span>
+
  <span id="line35">35. #define conjoined vl.v_conjoined</span>
  <span id="line36">36.   #define tnote vl.v_tnote</span>
+
  <span id="line36">36. #define tnote vl.v_tnote</span>
  <span id="line37">37.   };</span>
+
  <span id="line37">37. };</span>
  <span id="line38">38.   </span>
+
  <span id="line38">38. </span>
  <span id="line39">39.   extern struct trap *ftrap;</span>
+
  <span id="line39">39. extern struct trap *ftrap;</span>
  <span id="line40">40.   #define newtrap() (struct trap *) alloc(sizeof(struct trap))</span>
+
  <span id="line40">40. #define newtrap() (struct trap *) alloc(sizeof(struct trap))</span>
  <span id="line41">41.   #define dealloc_trap(trap) free((genericptr_t)(trap))</span>
+
  <span id="line41">41. #define dealloc_trap(trap) free((genericptr_t)(trap))</span>
  <span id="line42">42.   </span>
+
  <span id="line42">42. </span>
  <span id="line43">43.   /* reasons for statue animation */</span>
+
  <span id="line43">43. /* reasons for statue animation */</span>
  <span id="line44">44.   #define ANIMATE_NORMAL 0</span>
+
  <span id="line44">44. #define ANIMATE_NORMAL 0</span>
  <span id="line45">45.   #define ANIMATE_SHATTER 1</span>
+
  <span id="line45">45. #define ANIMATE_SHATTER 1</span>
  <span id="line46">46.   #define ANIMATE_SPELL 2</span>
+
  <span id="line46">46. #define ANIMATE_SPELL 2</span>
  <span id="line47">47.   </span>
+
  <span id="line47">47. </span>
  <span id="line48">48.   /* reasons for animate_statue's failure */</span>
+
  <span id="line48">48. /* reasons for animate_statue's failure */</span>
  <span id="line49">49.   #define AS_OK 0            /* didn't fail */</span>
+
  <span id="line49">49. #define AS_OK 0            /* didn't fail */</span>
  <span id="line50">50.   #define AS_NO_MON 1        /* makemon failed */</span>
+
  <span id="line50">50. #define AS_NO_MON 1        /* makemon failed */</span>
  <span id="line51">51.   #define AS_MON_IS_UNIQUE 2 /* statue monster is unique */</span>
+
  <span id="line51">51. #define AS_MON_IS_UNIQUE 2 /* statue monster is unique */</span>
  <span id="line52">52.   </span>
+
  <span id="line52">52. </span>
  <span id="line53">53.   /* Note: if adding/removing a trap, adjust trap_engravings[] in mklev.c */</span>
+
  <span id="line53">53. /* Note: if adding/removing a trap, adjust trap_engravings[] in mklev.c */</span>
  <span id="line54">54.   </span>
+
  <span id="line54">54. </span>
  <span id="line55">55.   /* unconditional traps */</span>
+
  <span id="line55">55. /* unconditional traps */</span>
  <span id="line56">56.   #define NO_TRAP 0</span>
+
  <span id="line56">56. #define NO_TRAP 0</span>
  <span id="line57">57.   #define ARROW_TRAP 1</span>
+
  <span id="line57">57. #define ARROW_TRAP 1</span>
  <span id="line58">58.   #define DART_TRAP 2</span>
+
  <span id="line58">58. #define DART_TRAP 2</span>
  <span id="line59">59.   #define ROCKTRAP 3</span>
+
  <span id="line59">59. #define ROCKTRAP 3</span>
  <span id="line60">60.   #define SQKY_BOARD 4</span>
+
  <span id="line60">60. #define SQKY_BOARD 4</span>
  <span id="line61">61.   #define BEAR_TRAP 5</span>
+
  <span id="line61">61. #define BEAR_TRAP 5</span>
  <span id="line62">62.   #define LANDMINE 6</span>
+
  <span id="line62">62. #define LANDMINE 6</span>
  <span id="line63">63.   #define ROLLING_BOULDER_TRAP 7</span>
+
  <span id="line63">63. #define ROLLING_BOULDER_TRAP 7</span>
  <span id="line64">64.   #define SLP_GAS_TRAP 8</span>
+
  <span id="line64">64. #define SLP_GAS_TRAP 8</span>
  <span id="line65">65.   #define RUST_TRAP 9</span>
+
  <span id="line65">65. #define RUST_TRAP 9</span>
  <span id="line66">66.   #define FIRE_TRAP 10</span>
+
  <span id="line66">66. #define FIRE_TRAP 10</span>
  <span id="line67">67.   #define PIT 11</span>
+
  <span id="line67">67. #define PIT 11</span>
  <span id="line68">68.   #define SPIKED_PIT 12</span>
+
  <span id="line68">68. #define SPIKED_PIT 12</span>
  <span id="line69">69.   #define HOLE 13</span>
+
  <span id="line69">69. #define HOLE 13</span>
  <span id="line70">70.   #define TRAPDOOR 14</span>
+
  <span id="line70">70. #define TRAPDOOR 14</span>
  <span id="line71">71.   #define TELEP_TRAP 15</span>
+
  <span id="line71">71. #define TELEP_TRAP 15</span>
  <span id="line72">72.   #define LEVEL_TELEP 16</span>
+
  <span id="line72">72. #define LEVEL_TELEP 16</span>
  <span id="line73">73.   #define MAGIC_PORTAL 17</span>
+
  <span id="line73">73. #define MAGIC_PORTAL 17</span>
  <span id="line74">74.   #define WEB 18</span>
+
  <span id="line74">74. #define WEB 18</span>
  <span id="line75">75.   #define STATUE_TRAP 19</span>
+
  <span id="line75">75. #define STATUE_TRAP 19</span>
  <span id="line76">76.   #define MAGIC_TRAP 20</span>
+
  <span id="line76">76. #define MAGIC_TRAP 20</span>
  <span id="line77">77.   #define ANTI_MAGIC 21</span>
+
  <span id="line77">77. #define ANTI_MAGIC 21</span>
  <span id="line78">78.   #define POLY_TRAP 22</span>
+
  <span id="line78">78. #define POLY_TRAP 22</span>
  <span id="line79">79.   #define VIBRATING_SQUARE 23</span>
+
  <span id="line79">79. #define VIBRATING_SQUARE 23</span>
  <span id="line80">80.   #define TRAPNUM 24</span>
+
  <span id="line80">80. #define TRAPNUM 24</span>
  <span id="line81">81.   </span>
+
  <span id="line81">81. </span>
  <span id="line82">82.   #endif /* TRAP_H */</span>
+
  <span id="line82">82. #endif /* TRAP_H */</span>
 
[[Category:NetHack 3.6.0 source code|include/trap.h]]
 
[[Category:NetHack 3.6.0 source code|include/trap.h]]

Latest revision as of 13:44, 15 December 2015

Below is the full text to trap.h from the source code of NetHack 3.6.0. To link to a particular line, write [[Source:NetHack 3.6.0/include/trap.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	trap.h	$NHDT-Date: 1432512776 2015/05/25 00:12:56 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
 /* note for 3.1.0 and later: no longer manipulated by 'makedefs' */
 
 #ifndef TRAP_H
 #define TRAP_H
 
 union vlaunchinfo {
     short v_launch_otyp; /* type of object to be triggered */
     coord v_launch2;     /* secondary launch point (for boulders) */
     uchar v_conjoined;   /* conjoined pit locations */
     short v_tnote;       /* boards: 12 notes        */
 };
 
 struct trap {
     struct trap *ntrap;
     xchar tx, ty;
     d_level dst; /* destination for portals */
     coord launch;
     Bitfield(ttyp, 5);
     Bitfield(tseen, 1);
     Bitfield(once, 1);
     Bitfield(madeby_u, 1); /* So monsters may take offence when you trap
                               them.	Recognizing who made the trap isn't
                               completely unreasonable, everybody has
                               their own style.  This flag is also needed
                               when you untrap a monster.  It would be too
                               easy to make a monster peaceful if you could
                               set a trap for it and then untrap it. */
     union vlaunchinfo vl;
 #define launch_otyp vl.v_launch_otyp
 #define launch2 vl.v_launch2
 #define conjoined vl.v_conjoined
 #define tnote vl.v_tnote
 };
 
 extern struct trap *ftrap;
 #define newtrap() (struct trap *) alloc(sizeof(struct trap))
 #define dealloc_trap(trap) free((genericptr_t)(trap))
 
 /* reasons for statue animation */
 #define ANIMATE_NORMAL 0
 #define ANIMATE_SHATTER 1
 #define ANIMATE_SPELL 2
 
 /* reasons for animate_statue's failure */
 #define AS_OK 0            /* didn't fail */
 #define AS_NO_MON 1        /* makemon failed */
 #define AS_MON_IS_UNIQUE 2 /* statue monster is unique */
 
 /* Note: if adding/removing a trap, adjust trap_engravings[] in mklev.c */
 
 /* unconditional traps */
 #define NO_TRAP 0
 #define ARROW_TRAP 1
 #define DART_TRAP 2
 #define ROCKTRAP 3
 #define SQKY_BOARD 4
 #define BEAR_TRAP 5
 #define LANDMINE 6
 #define ROLLING_BOULDER_TRAP 7
 #define SLP_GAS_TRAP 8
 #define RUST_TRAP 9
 #define FIRE_TRAP 10
 #define PIT 11
 #define SPIKED_PIT 12
 #define HOLE 13
 #define TRAPDOOR 14
 #define TELEP_TRAP 15
 #define LEVEL_TELEP 16
 #define MAGIC_PORTAL 17
 #define WEB 18
 #define STATUE_TRAP 19
 #define MAGIC_TRAP 20
 #define ANTI_MAGIC 21
 #define POLY_TRAP 22
 #define VIBRATING_SQUARE 23
 #define TRAPNUM 24
 
 #endif /* TRAP_H */