home *** CD-ROM | disk | FTP | other *** search
/ Shadow Warrior / SWARRIOR.bin / data1.cab / Build_Docs / SPRITAGS.TXT < prev    next >
Text File  |  1997-08-25  |  127KB  |  2,645 lines

  1. ---------------------------------------
  2. Shadow Warrior Sprite Tagging Reference
  3. Compiled And Edited By Keith Schuler
  4. (c) 1997 3D Realms Entertainment
  5. ---------------------------------------
  6.  
  7. This document is your reference guide to using the special sprites in
  8. Shadow Warrior, including ST1, tracks, locks, switches, cracks, and so on.
  9. Examples of almost all uses of these sprites are given in EXAMPLE.MAP, so be
  10. sure to check that map out. You'll find it in the \GOODIES\TOOLS directory
  11. of your Shadow Warrior CD.
  12.  
  13. Refer to these documents in the \GOODIES\DOC directory on your Shadow
  14. Warrior CD for other important information:
  15.  
  16. ADVANCED.TXT - Brief explanations of room-over-room, sector objects, and
  17. other advanced Shadow Warrior mapping topics.
  18. EDITART.TXT  - Instructions and reference for using the EDITART program.
  19. EXAMPLE.TXT  - Documentation to accompany EXAMPLE.MAP, which includes
  20. demonstrations of almost all of Shadow Warrior's map functionality.
  21. SLABSPRI.TXT - Instructions and reference for using the SLABSPRI program.
  22. SWSOUNDS.TXT - An index of the sound effects and ambient sounds.
  23. SPRITAGS.TXT - Sprite tagging reference. Your guide to all the special
  24. sprites in Shadow Warrior and how to use them.
  25. SWBUILD.TXT  - A tutorial and reference guide to using the BUILD editor.
  26. WALLTAGS.TXT - Wall and sector tagging reference. These are all the wall and
  27. sector tags used in Shadow Warrior.
  28. -----------------------------------------------------------------------------
  29.  
  30.  
  31. --------
  32. Contents
  33. --------
  34.  
  35. The Shadow Warrior Sector Effector                      1
  36.         Meet the ST1 sprite                             1.1
  37.                 Using the ST1                           1.1.1
  38.                 ST1 functions                           1.1.2
  39.                 ST1 context sensitive help              1.1.3
  40.         The Shadow Warrior BUILD Tags                   1.2
  41.                 The 15 standard tags                    1.2.1
  42.                 The 11 Boolean Flags                    1.2.2
  43.                 TAG1 (Hitag)                            1.2.3
  44.                 TAG2 (Lotag) and match tags             1.2.4
  45.                 TAG4                                    1.2.5
  46.                 BOOL1                                   1.2.6
  47.                 BOOL11                                  1.2.7
  48.         Other Notes Regarding The ST1                   1.3
  49.                 Z-height                                1.3.1
  50.                 Color Coding Your ST1s                  1.3.2
  51.                 Brighten Your ST1s                      1.3.3
  52.         The Shadow Warrior ST1 Function Reference       1.4        
  53.                 0. SECT_SINK
  54.                 1. SECT_OPERATIONAL
  55.                 3. SECT_CURRENT
  56.                 5. SECT_NO_RIDE
  57.                 7. SECT_DIVE_AREA
  58.                 8. SECT_UNDERWATER
  59.                 9. SECT_UNDERWATER2
  60.                 16. SO_ANGLE
  61.                 19. SECT_FLOOR_PAN
  62.                 21. SECT_CEILING_PAN
  63.                 23. WALL_PAN_SPEED
  64.                 29. SECT_LOCK_DOOR
  65.                 30. SPRI_CLIMB_MARKER
  66.                 31. SECT_SO_SPRITE_OBJ
  67.                 32. SECT_SO_DONT_BOB
  68.                 33. SECT_SO_SINK_DEST
  69.                 34. SECT_SO_DONT_SINK
  70.                 37. SECT_SO_FORM_WHIRLPOOL
  71.                 38. SECT_ACTOR_BLOCK
  72.                 42. MULTI_PLAYER_START
  73.                 43. FIREBALL_TRAP
  74.                 44. BOLT_TRAP
  75.                 45. SECT_SO_DONT_ROTATE
  76.                 46. PARALLAX_LEVEL
  77.                 47. SECT_DONT_COPY_PALETTE
  78.                 48. MULTI_COOPERATIVE_START
  79.                 49. SO_SET_SPEED
  80.                 50. SO_SPIN
  81.                 51. SO_SPIN_REVERSE
  82.                 52. SO_BOB_START
  83.                 53. SO_BOB_SPEED
  84.                 55. SO_TURN_SPEED
  85.                 56. LAVA_ERUPT
  86.                 57. SECT_EXPLODING_CEIL_FLOOR
  87.                 58. SECT_COPY_DEST
  88.                 59. SECT_COPY_SOURCE
  89.                 62. SHOOT_POINT
  90.                 63. SPEAR_TRAP
  91.                 64. SO_SYNC1
  92.                 65. SO_SYNC2
  93.                 66. DEMO_CAMERA
  94.                 68. SO_LIMIT_TURN
  95.                 69. SPAWN_SPOT
  96.                 70. SO_MATCH_EVENT
  97.                 71. SO_SLOPE_FLOOR_TO_POINT
  98.                 72. SO_SLOPE_CEILING_TO_POINT
  99.                 73. SO_TORNADO
  100.                 75. SO_AMOEBA
  101.                 76. SO_MAX_DAMAGE
  102.                 77. SO_RAM_DAMAGE
  103.                 80. SO_KILLABLE
  104.                 81. SO_AUTO_TURRET
  105.                 82. SECT_DAMAGE
  106.                 84. WARP_TELEPORTER
  107.                 85. WARP_CEILING_PLANE
  108.                 86. WARP_FLOOR_PLANE
  109.                 87. WARP_COPY_SPRITE1
  110.                 88. WARP_COPY_SPRITE2
  111.                 90. PLAX_GLOB_Z_ADJUST
  112.                 92. SECT_VATOR
  113.                 97. CEILING_Z_ADJUST
  114.                 98. FLOOR_Z_ADJUST
  115.                 99. FLOOR_SLOPE_DONT_DRAW
  116.                 100. SO_SCALE_INFO
  117.                 101. SO_SCALE_POINT_INFO
  118.                 102. SO_SCALE_XY_MULTIPLY
  119.                 103. SECT_WALL_MOVE
  120.                 104. SECT_WALL_MOVE_CANSEE
  121.                 106. SECT_SPIKE
  122.                 108. LIGHTING
  123.                 109. LIGHTING_DIFFUSE
  124.                 110. VIEW_LEVEL1
  125.                 111. VIEW_LEVEL2
  126.                 120. VIEW_THRU_CEILING
  127.                 121. VIEW_THRU_FLOOR
  128.                 132. BREAKABLE
  129.                 132. BREAKABLE_SPRITE
  130.                 133. QUAKE_SPOT
  131.                 134. SOUND_SPOT
  132.                 135. SLIDE_SECTOR
  133.                 136. CEILING_FLOOR_PIC_OVERRIDE
  134.                 140. TRIGGER_SECTOR
  135.                 141. DELETE_SPRITE
  136.                 143. SECT_ROTATOR
  137.                 144. SECT_ROTATOR_PIVOT
  138.                 145. SECT_SLIDOR
  139.                 146. SECT_CHANGOR
  140.                 147. SO_DRIVABLE_ATTRIB
  141.                 148. WALL_DONT_STICK
  142.                 149. SPAWN_ITEMS
  143.                 150. STOP_SPOUND_SPOT
  144.                 202. BOUND_FLOOR_BASE_OFFSET
  145.                 203. BOUND_FLOOR_OFFSET
  146.                 500-596: SECT_SO_BOUNDING
  147.                 1000. MIRROR_CAM
  148.                 1002. AMBIENT_SOUND
  149.                 1005. ECHO_SPOT
  150.                 1006. DRIP_GENERATOR  
  151.  
  152. The Shadow Warrior Track Sprite                         2
  153.         Meet the Track sprites                          2.1
  154.         Building a track                                2.2
  155.         Tagging a track sprite                          2.3
  156.                 Lotag                                   2.3.1
  157.                 Hitag                                   2.3.2
  158.         Using a track                                   2.4
  159.                 Sector and sprite objects               2.4.1
  160.                 Actors                                  2.4.2
  161.         Tracktag function reference                     2.5
  162.                 700. TRACK_START
  163.                 701. TRACK_END
  164.                 702. TRACK_SET_SPEED         
  165.                 703. TRACK_STOP
  166.                 704. TRACK_REVERSE
  167.                 705. TRACK_SPEED_UP
  168.                 706. TRACK_SLOW_DOWN
  169.                 707. TRACK_VEL_RATE
  170.                 709. TRACK_ZUP
  171.                 710. TRACK_ZDOWN
  172.                 711. TRACK_ZRATE
  173.                 712. TRACK_ZDIFF_MODE
  174.                 715. TRACK_SPIN
  175.                 716. TRACK_SPIN_STOP
  176.                 717. TRACK_BOB_START
  177.                 718. TRACK_BOB_SPEED
  178.                 719. TRACK_BOB_STOP
  179.                 720. TRACK_SPIN_REVERSE 
  180.                 723. TRACK_SO_SINK
  181.                 724. TRACK_SO_FORM_WHIRLPOOL
  182.                 725. TRACK_MOVE_VERTICAL
  183.                 726. TRACK_WAIT_FOR_EVENT
  184.                 728. TRACK_MATCH_EVERYTHING
  185.                 729. TRACK_MATCH_EVERYTHING_ONCE
  186.                 751. TRACK_ACTOR_STOP
  187.                 752. TRACK_ACTOR_REVERSE
  188.                 753. TRACK_ACTOR_SPEED_UP
  189.                 754. TRACK_ACTOR_SLOW_DOWN
  190.                 755. TRACK_ACTOR_VEL_RATE
  191.                 771. TRACK_ACTOR_JUMP
  192.                 772. TRACK_ACTOR_CRAWL
  193.                 780. TRACK_ACTOR_CLOSE_ATTACK1
  194.                 782. TRACK_ACTOR_ATTACK1
  195.                 791. TRACK_ACTOR_OPERATE
  196.                 792. TRACK_ACTOR_CLIMB_LADDER
  197.                 799. TRACK_ACTOR_WAIT_FOR_PLAYER
  198.  
  199. Other Important Sprites                                 3
  200.         Actors                                          3.1
  201.                 Hornets (picnum 800)                    3.1.1
  202.                 Bouncing Betty (picnum 817)             3.1.2
  203.                 Accursed Head (picnum 820)              3.1.3
  204.                 Sumo Boss (picnum 1210)                 3.1.4
  205.                 Serpent Boss (picnum 1300)              3.1.5
  206.                 Coolie (picnum 1400)                    3.1.6
  207.                 Coolie Ghost (picnum 1441)              3.1.7
  208.                 Green Guardian (picnum 1469)            3.1.8
  209.                 Little Ripper (picnum 1580)             3.1.9
  210.                 Fish (picnum 3780)                      3.1.10
  211.                 Evil Ninja (picnum 4096)                3.1.11
  212.                 Crouching Evil Ninja (picnum 4162)      3.1.12
  213.                 Big Ripper (picnum 4320)                3.1.13
  214.                 Bunny (picnum 4550)                     3.1.14
  215.                 Female Warrior (picnum 5162)            3.1.15
  216.                 Zilla Boss (picnum 5426)                3.1.16
  217.                 Leaders And Followers                   3.1.17
  218.                 Spawning Actors With A Trigger          3.1.18
  219.         Cracks (TAG_SPRITE_HIT_MATCH)                   3.2
  220.                 257. TAG_SPRITE_HIT_MATCH
  221.         Switches: (picnums 551-584)                     3.3
  222.                 206. TAG_SPRITE_SWITCH_VATOR
  223.                 210. TAG_LIGHT_SWITCH
  224.                 211. TAG_SWITCH_EVERYTHING
  225.                 212. TAG_SWITCH_EVERYTHING_ONCE
  226.                 213. TAG_COMBO_SWITCH_EVERYTHING
  227.                 214. TAG_COMBO_SWITCH_EVERYTHING_ONCE
  228.                 216. TAG_SPAWN_ACTOR_SWITCH
  229.                 304. TAG_ROTATE_SO_SWITCH
  230.                 Shootable switch (picnum 577)           3.3.1
  231.                 Exit switch (picnum 2470)               3.3.2
  232.         Keys And Keyholes                               3.4
  233.                 Keys (picnums 1765-1779)                3.4.1
  234.                 Keyholes (picnums 1846, 1850, and 1852) 3.4.2
  235.         TV Monitors: (picnums 3830-3837)                3.5
  236.         QuickJump And QuickJumpDown                     3.6
  237.                 QuickJump (picnum 2309)                 3.6.1
  238.                 QuickJumpDown (picnum 2310)             3.6.2
  239.         Gratings                                        3.7
  240.         DeathFlag(tm) Capture the Flag                  3.8
  241.                 The Flag Sprite (picnum 2520)           3.8.1
  242.  
  243. -----------------------------------------------------------------------------
  244.  
  245. ------------------------------------------
  246. 1.      The Shadow Warrior Sector Effector
  247. ------------------------------------------
  248.  
  249. 1.1     Meet the ST1 sprite:
  250.  
  251. Shadow Warrior has one sector effector, the ST1 sprite. Using it, you will be
  252. able to create all of the different special effects in the game. This is how
  253. you make working doors, dynamic slopes, explosions, moving sectors, room
  254. over room, water, and everything else. For this reason, it is by far the most
  255. commonly used sprite in Shadow Warrior.
  256.  
  257.         1.1.1 Using the ST1
  258.  
  259.         An ST1 is a sprite just like any other. You can find it in the tile
  260.         set (the "V" menu in BUILD) at position 2307. The most common way to
  261.         use an ST1 is to place it in the sector you wish to be affected.
  262.         For example, if you want a sector to be a door, you would place the
  263.         ST1 in that sector, tag it properly, and then that sector would
  264.         behave like a door.
  265.  
  266.         1.1.2 ST1 functions
  267.  
  268.         There are almost 100 different functions an ST1 can perform. When you
  269.         you first place an ST1 sprite, its sign in 2D mode will probably read
  270.         "SECT_SINK." This indicates the ST1's hitag is 0, which designates
  271.         the SECT_SINK function. By changing the hitag (Alt H in 2D mode, or
  272.         ' H in 3D mode) of the sprite, you change the function it will
  273.         perform, and its sign will change to reflect that. All of the
  274.         different ST1 functions are listed below.
  275.         
  276.         1.1.3 ST1 context sensitive help
  277.  
  278.         If, in 2D mode, you point at an ST1 and press F6, context sensitive
  279.         help will be listed at the bottom of the screen. The information
  280.         provided will be based on the hitag of the ST1. If, for instance, the
  281.         ST1's hitag is 92, then F6 will give you help regarding vators. Most
  282.         of this help will be the same material you find in this document.
  283.  
  284.  
  285. 1.2     The Shadow Warrior BUILD Tags:
  286.  
  287. The Shadow Warrior tagging system was developed by a team which was not in
  288. contact with the Duke Nukem 3D team, so if you are familiar with Duke Nukem
  289. 3D mapping, then forget everything you know, because it can only confuse you
  290. here. Shadow Warrior's tagging system is very powerful, and with this power
  291. comes complexity. Stick with it, though, and you'll soon be proficient
  292. enough to set up a shootable light or a locked door without even looking at
  293. this reference.
  294.  
  295.         1.2.1 The 15 standard tags
  296.  
  297.         Every sprite in Shadow Warrior makes use of 15 different TAGS. A
  298.         tag is merely a variable that contains information regarding the
  299.         sprite. To enter a value for a tag, point to the sprite, then
  300.         press the QUOTE key plus the number of the tag. To access TAG11
  301.         through TAG15, press SHIFT+QUOTE+the number of the tag. Note that
  302.         TAG1 and TAG2 are the hitag and lotag, respectively, and so can
  303.         also be altered with the Alt-H and the Alt-T keys. The following is
  304.         a list of the 15 tags, their function, and the range of values they
  305.         can hold.
  306.  
  307.         TAG1  = hitag (-32768 to 32767)
  308.         TAG2  = lotag (-32768 to 32767)
  309.         TAG3  = clipdist (-128 to 127) - default value is 32
  310.         TAG4  = ang (-32768 to 32767)
  311.         TAG5  = xvel (-32768 to 32767)
  312.         TAG6  = yvel (-32768 to 32767)    
  313.         TAG7  = zvel 1 (-128 to 127)
  314.         TAG8  = zvel 2 (-128 to 127)   
  315.         TAG9  = owner 1 (-128 to 127)  - default is unsigned 255 or signed -1
  316.         TAG10 = owner 2 (-128 to 127) - default is unsigned 255 or signed -1
  317.         TAG11 = shade (-128 to 127)
  318.         TAG12 = pal (-128 to 127)
  319.         TAG13 = xoffset and yoffset (-32768 to 32767) 
  320.         TAG14 = xrepeat and yrepeat (-32768 to 32767)
  321.         TAG15 = z (-32768 to 32767)
  322.  
  323.         1.2.2 The 11 Boolean Flags
  324.  
  325.         A boolean flag can hold only two possible values: 0 or 1. Every
  326.         sprite in Shadow Warrior makes use of 11 boolean flags. To enter a
  327.         value for a boolean flag, press the SEMICOLON key plus the number of
  328.         the tag. To enter a value for BOOL11, press SHIFT, plus SEMICOLON,
  329.         plus the "1" key.
  330.  
  331.         1.2.3 TAG1 (Hitag)
  332.  
  333.         An ST1 sprite always uses TAG1 (the hitag) to specify which function
  334.         the sprite is to perform on the sector.
  335.  
  336.         1.2.4 TAG2 (Lotag) and match tags
  337.  
  338.         An ST1 sprite often uses TAG2 (the lotag) to specify a so-called
  339.         "match" tag. This means that the value in TAG2 is a unique and
  340.         arbitrary value designated by you, the level designer. This unique
  341.         value is used to match the ST1's function to a trigger. A trigger
  342.         can be caused by such events as operating a switch or stepping into
  343.         a trigger sector. BUILD will report the next available match tag
  344.         when you press F5 in 2D mode.
  345.  
  346.         1.2.5 TAG4
  347.  
  348.         TAG4, as you can see from the list above, is a sprite's angle. By
  349.         changing the TAG4 value of a sprite, you also change the angle it's
  350.         facing. Be very cautious of this, because a great many ST1 functions
  351.         rely on having an exact value in TAG4. If you use the ">" or "<" keys
  352.         on that sprite, the value will shift by 128, which is probably a
  353.         large enough change that the ST1 will no longer behave as you'd
  354.         expect it to. In the case of ST1 134 (SOUND_SPOT), the game will
  355.         probably quit to DOS with an error. Another pitfall to beware is
  356.         rotating Right-Alt selected groups of sectors. Since all of the
  357.         sprites within the selected group are rotated with the sectors when
  358.         you do this, their TAG4 values will often become grossly incorrect.
  359.  
  360.         1.2.6 BOOL1
  361.  
  362.         If the BOOL1 flag is set to 1 on any sprite, BUILD will cause that
  363.         individual sprite to behave as though it were an ST1 sprite. This
  364.         is generally only used to create breakable sprites.
  365.  
  366.         1.2.7 BOOL11
  367.  
  368.         BOOL11 is a flag used by all sprites in the game, not just ST1s.
  369.         If the BOOL11 flag on any sprite is set to 1, then that sprite will
  370.         remain stationary rather than ride up and down on a vator.
  371.  
  372. 1.3     Other Notes Regarding The ST1
  373.  
  374.         1.3.1 Z-height
  375.  
  376.         Many functions are affected by the height of the ST1 sprite. For
  377.         instance, a door might open to the height of the sprite, or a
  378.         teleporter might move the player to the same height as the sprite.
  379.         When calculating a height, always use the lowest point of the sprite
  380.         graphic as the reference, no matter which way the sprite is oriented.
  381.         A sprite that is placed on the floor by means of Ctrl-PgDn is at
  382.         the exact same z-coordinate as the floor, no matter how far the
  383.         graphic sticks up. A sprite that is placed against the ceiling using
  384.         Ctrl-PgUp, however, does not have the same z-height as the ceiling
  385.         because the top of the graphic is resting against the ceiling, and
  386.         not the bottom. You'll find that you will occasionally need to sink
  387.         an ST1 into the floor or into the ceiling to get a desired effect.
  388.  
  389.         1.3.2 Color Coding Your ST1s
  390.  
  391.         The only ST1 functions affected by the sprite's palette value are
  392.         LIGHTING (hitag 108) and LIGHTING_DIFFUSE (hitag 109). Since in
  393.         most cases the ST1 isn't affected by palette, you may find it useful
  394.         to assign different palette values to certain ST1 functions, so as
  395.         to more readily identify them in 3D mode. For instance, I sometimes
  396.         like to color SPAWN_SPOTs green (palette 11) and
  397.         TAG_SPRITE_HIT_MATCHes red (palette 14.) Make a habit of color
  398.         coding your ST1 sprites, and you won't regret it.
  399.  
  400.         1.3.3 Brighten Your ST1s
  401.  
  402.         No ST1 function is affected by the shade value of the sprite, so
  403.         why not make them really bright? This will make them easier to spot
  404.         in 3D editing mode.
  405.  
  406.  
  407. 1.4     The Shadow Warrior ST1 Function Reference:
  408.  
  409. Hitag 0:        SECT_SINK
  410.                 TAG2 = depth
  411.  
  412.         Place this in water, lava, or any sector with a floor surface you
  413.         want Lo Wang to sink into. He will sink to the depth specified in
  414.         TAG2. When building dive sectors (see Hitag 7: SECT_DIVE_AREA) TAG2
  415.         needs to be at least 35. You probably never want to use a value
  416.         greater than 40, or the player's view may become distorted. NOTE: If
  417.         used with a lava texture, SECT_SINK will cause Lo Wang to take damage
  418.         when stepping in the sector.
  419.         EXAMPLES: AA and BB in EXAMPLE.MAP
  420.         SEE ALSO: PLAX_GLOB_Z_ADJUST (hitag 90), CEILING_Z_ADJUST (hitag 97),
  421.                   FLOOR_Z_ADJUST (hitag 98)
  422.         
  423. Hitag 1:        SECT_OPERATIONAL
  424.  
  425.         Place this in a sector of a driveable sector object. This will be the
  426.         sector the player must stand in and press SPACE to operate the
  427.         driveable.
  428.         EXAMPLES: EE and EF in EXAMPLE.MAP
  429.  
  430. Hitag 3:        SECT_CURRENT
  431.         TAG2 = speed
  432.         TAG4 = ang
  433.  
  434.         If SECT_CURRENT is used in a sector along with either a SECT_SINK
  435.         (Hitag 0), a SECT_UNDERWATER (Hitag 8), or a SECT_UNDERWATER2 (Hitag
  436.         9), the player will be moved in the direction the SECT_CURRENT
  437.         is facing, at the speed designated in TAG2.
  438.         EXAMPLES: AA and BB in EXAMPLE.MAP
  439.         SEE ALSO: SECT_SINK (hitag 0), SECT_UNDERWATER (hitag 8),
  440.                   SECT_FLOOR_PAN (hitag 19)
  441.  
  442. Hitag 5:        SECT_NO_RIDE
  443.  
  444.         Use SECT_NO_RIDE in any sector of a moving sector object to keep the
  445.         player from moving with that sector.
  446.         EXAMPLES: EC, FC and FD in EXAMPLE.MAP
  447.  
  448. Hitag 7:    SECT_DIVE_AREA
  449.                 TAG2 = match (non zero)
  450.  
  451.         Diving area - pressing the CROUCH key when here will teleport the
  452.         player to an UNDERWATER (Hitag 8) area with a matching UNIQUE match
  453.         tag. You must also have a SECT_SINK (Hitag 0) sprite in the same
  454.         sector with a TAG2 of at least 35 for this to work. 
  455.         EXAMPLES: BA in EXAMPLE.MAP
  456.         SEE ALSO: SECT_SINK (hitag 0), SECT_UNDERWATER (hitag 8)                  
  457.                 
  458. Hitag 8:        SECT_UNDERWATER
  459.                 TAG2 = match
  460.  
  461.         Underwater area - floating to the ceiling of this area will teleport
  462.         the player to the DIVE_AREA (hitag 7) with a matching UNIQUE non
  463.         zero match tag. IMPORTANT: The over- and underwater sectors need to
  464.         have congruent shapes, and the SECT_DIVE_AREA sprite and the
  465.         SECT_UNDERWATER sprite need to be in the same relative position for
  466.         both of their respective sectors. IMPORTANT: A zero in TAG2 denotes
  467.         that this is a swim area with no matching SECT_DIVE_AREA. This can be
  468.         used for areas where the player cannot surface.
  469.         EXAMPLES: BA in EXAMPLE.MAP
  470.         SEE ALSO: SECT_DIVE_AREA (hitag 7), SECT_UNDERWATER2 (hitag 9)
  471.  
  472. Hitag 9:        SECT_UNDERWATER2
  473.                 TAG2 = match
  474.         TAG3 = type
  475.                         0/32 = surface here
  476.                         1    = can't surface here
  477.  
  478.         Secondary Underwater area - floating to the surface of this area will
  479.         teleport you to the SECT_DIVE_AREA (hitag 7) with a matching unique
  480.         match tag. SECT_UNDERWATER2 allows you to split an underwater area
  481.         into multiple sectors, while still having a single large DIVE_AREA
  482.         sector.
  483.         EXAMPLES: BA in EXAMPLE.MAP
  484.         SEE ALSO: SECT_DIVE_AREA (hitag 7), SECT_UNDERWATER (hitag 8)
  485.  
  486. Hitag 16:       SO_ANGLE
  487.         TAG4 = Angle of Sector Object
  488.  
  489.         Place this anywhere in a sector object to tell Shadow Warrior which
  490.         end is the front. This will affect the orientation of a sector
  491.         object as it follows a track or is operated by the player.
  492.         EXAMPLES: EE, EF, and FA in EXAMPLE.MAP
  493.  
  494. Hitag 19:       SECT_FLOOR_PAN
  495.                 TAG2  = speed - 0 to 16386
  496.                 TAG4  = ang
  497.                 BOOL1 = Move with speed of sector object
  498.  
  499.         This causes the floor of the sector it's in to pan in the direction
  500.         indicated by TAG4 at the rate indicated by TAG2. Set BOOL1 to "1"
  501.         if the sector is part of a sector object and you want the floor to
  502.         pan at the same speed the sector object is moving. The BOOL1 feature
  503.         is primarily used to simulate moving tank treads on driveable
  504.         sector objects.
  505.         EXAMPLES: BB in EXAMPLE.MAP
  506.         SEE ALSO: SECT_CEILING_PAN (hitag 21), WALL_PAN_SPEED (hitag 23)
  507.  
  508. Hitag 21:       SECT_CEILING_PAN
  509.                 TAG2  = speed - 0 to 16386
  510.                 TAG4  = ang
  511.                 BOOL1 = Move with speed of sector object
  512.  
  513.         This causes the ceiling of the sector it's in to pan in the direction
  514.         indicated by TAG4 at the rate indicated by TAG2. Set BOOL1 to "1"
  515.         if the sector is part of a sector object and you want the ceiling
  516.         to pan at the same speed the sector object is moving.
  517.         EXAMPLES: BB in EXAMPLE.MAP
  518.         SEE ALSO: SECT_FLOOR_PAN (hitag 19), WALL_PAN_SPEED (hitag 23)
  519.         
  520. Hitag 23:       WALL_PAN_SPEED
  521.                 TAG2  = speed - 0 to 16386
  522.                 TAG4  = point sprite at desired wall
  523.                 TAG6  = angle of panning
  524.         BOOL1 = Move with speed of sector object
  525.  
  526.         Point the sprite at the wall you want it to affect. That wall's
  527.         texture will pan in the direction indicated by TAG6 at the rate
  528.         indicated by TAG2. Set BOOL1 to "1" if the wall is part of a
  529.         sector object and you want the wall texture to pan at the same
  530.         speed the sector object is moving. This feature is usually used
  531.         to simulate tank treads on driveable sector objects.
  532.         EXAMPLES: BB in EXAMPLE.MAP
  533.         SEE ALSO: SECT_CEILING_PAN (hitag 21), SECT_FLOOR_PAN (hitag 19)
  534.         
  535. Hitag 29:       SECT_LOCK_DOOR
  536.         TAG2 = type
  537.                         1 = RED KEYCARD
  538.                         2 = BLUE KEYCARD
  539.                         3 = GREEN KEYCARD
  540.                         4 = YELLOW KEYCARD
  541.                         5 = GOLD MASTER KEY
  542.                         6 = SILVER MASTER KEY
  543.                         7 = BRONZE MASTER KEY
  544.                         8 = RED MASTER KEY
  545.  
  546.         Lock the door. Must have the correct key to open it. Works for
  547.         rotating, sliding, and all vator uses including switches. Place it in
  548.         the same sector with a SECT_VATOR (hitag 92), SECT_ROTATOR
  549.         (hitag 143), or SECT_SLIDOR (hitag 145).
  550.         EXAMPLES: EB in EXAMPLE.MAP
  551.         
  552. Hitag 30:       SPRI_CLIMB_MARKER
  553.                 TAG4 = angle
  554.  
  555.         Center this sprite on the ladder and set the angle pointing out away
  556.         from the wall. The position of the sprite is important, because that
  557.         is the (x,y) location the player sprite will be in while climbing
  558.         the ladder. Used in conjunction with TAG_WALL_CLIMB (walltag 305).
  559.         EXAMPLES: BC and DF in EXAMPLE.MAP
  560.  
  561. Hitag 31:       SECT_SO_SPRITE_OBJ
  562.  
  563.         Place this ST1 anywhere in a sector object. Makes a sector object
  564.         become a "sprite object." The sprites will move but the sectors will
  565.         not. Sprite objects can cross sector boundries, whereas regular
  566.         sector objects cannot.
  567.         EXAMPLES: EC in EXAMPLE.MAP
  568.  
  569. Hitag 32:       SECT_SO_DONT_BOB
  570.  
  571.         Mark a sector in a bobbing sector object so it will not bob with the
  572.         rest of the sector. Look at the boat in $WHIRL.MAP for an example.
  573.         SEE ALSO: SO_BOB_START (hitag 52), SO_BOB_SPEED (hitag 53)
  574.  
  575. Hitag 33:       SECT_SO_SINK_DEST
  576.                 TAG2 = offset
  577.  
  578.         Mark a sector in a sector object as the destination for sinking.
  579.         It will not sink with other sectors. TAG2 is the offset from the
  580.         sector's current floor height to use as the sinking destination.
  581.         Look at the boat in $WHIRL.MAP for an example.
  582.         SEE ALSO: SECT_SO_DONT_SINK (hitag 34)
  583.  
  584. Hitag 34:       SECT_SO_DONT_SINK
  585.  
  586.         Mark a sector in a sector object so it will not sink with other
  587.         sectors. Look at the boat in $WHIRL.MAP for an example.
  588.         SEE ALSO: SECT_SO_SINK_DEST (hitag 33)
  589.  
  590. Hitag 37:       SECT_SO_FORM_WHIRLPOOL
  591.                 TAG2 = depth
  592.  
  593.         Lower the whirlpool sectors to a 'depth' level, when the appropriate
  594.         track sprite is reached by the sector object.
  595.         (TRACK_SO_FORM_WHIRLPOOL, tracktag 724) Look at the boat in
  596.         $WHIRL.MAP for an example.
  597.         
  598. Hitag 38:       SECT_ACTOR_BLOCK
  599.  
  600.         Mark a sector to keep enemy actors from entering, but the player can
  601.         still enter. Both enemies and the player can still fire weapons
  602.         through the sector.
  603.         EXAMPLES: BC in EXAMPLE.MAP
  604.  
  605. Hitag 42:       MULTI_PLAYER_START
  606.                 TAG2 = (0 to 7) player number
  607.                 TAG4 = angle to start facing
  608.  
  609.         These mark the positions where players will spawn in WangBang games.
  610.         The players' feet will be placed at the same height as the bottom of
  611.         the ST1 sprite, so place them on the floor unless you want the player
  612.         to fall. Always be sure to include start point #0.
  613.         EXAMPLES: Any game map
  614.         SEE ALSO: MULTI_COOPERATIVE_START (hitag 48)
  615.  
  616. Hitag 43:       FIREBALL_TRAP
  617.         TAG2 = match
  618.         TAG4 = angle
  619.  
  620.         Shoots a fireball from the location of this sprite in the direction
  621.         the angle is pointing when a sector tagged TAG_TRIGGER_MISSILE_TRAP
  622.         (sector tag 43) is stepped on.
  623.         EXAMPLES: BD in EXAMPLE.MAP
  624.         SEE ALSO: BOLT_TRAP (hitag 44), SPEAR_TRAP (hitag 63)
  625.  
  626. Hitag 44:       BOLT_TRAP
  627.         TAG2 = match
  628.         TAG4 = angle
  629.  
  630.         Shoots a rocket from the location of this sprite in the direction the
  631.         angle is pointing when a sector tagged TAG_TRIGGER_MISSILE_TRAP
  632.         (sector tag 43) is stepped on.
  633.         EXAMPLES: BD in EXAMPLE.MAP
  634.         SEE ALSO: FIREBALL_TRAP (hitag 43), SPEAR_TRAP (hitag 63)
  635.         
  636. Hitag 45:       SECT_SO_DONT_ROTATE
  637.  
  638.         Causes a sector object to move without rotating as it follows its
  639.         track or is driven by the player. Place in the center sector.
  640.         EXAMPLES: FB in EXAMPLE.MAP
  641.         SEE ALSO: SO_TURN_SPEED (hitag 55), SO_LIMIT_TURN (hitag 68)
  642.         
  643. Hitag 46:       PARALLAX_LEVEL
  644.                 TAG2 = parallax sky type
  645.  
  646.         Set parallax sky type to 0, 1, or 2. This value adjusts the xrepeat
  647.         of the sky texture. You only need to place one per level in a single
  648.         sector that uses a parallax sky texture, and it will affect the whole
  649.         level. If more than one is placed in a map, the sky will usually
  650.         behave strangely.
  651.         EXAMPLES: BE in EXAMPLE.MAP
  652.                         
  653. Hitag 47:       SECT_DONT_COPY_PALETTE
  654.  
  655.         Normally any sprites or the player standing on a palette swapped
  656.         floor take on the palette of the floor. Use this ST1 on sectors where
  657.         you don't want this to happen.
  658.         EXAMPLES: BE in EXAMPLE.MAP
  659.  
  660. Hitag 48:       MULTI_COOPERATIVE_START
  661.                 TAG2 = (0 to 7) player number
  662.                 TAG4 = angle to start facing
  663.  
  664.         Spawn spots for cooperative multi-player games. The players' feet
  665.         will be placed at the same height as the bottom of the ST1 sprite,
  666.         so place them on the floor unless you want the player to fall.
  667.         Always be sure to include start point #0.
  668.         EXAMPLES: Any game map
  669.         SEE ALSO: MULTI_PLAYER_START (hitag 42)
  670.  
  671. Hitag 49:       SO_SET_SPEED
  672.                 TAG2 = speed (2 to 128)
  673.  
  674.         Sets the speed at which a sector object follows a track. This is
  675.         functionally the same as TRACK_SET_SPEED (tracktag 702).
  676.         EXAMPLES: FA in EXAMPLE.MAP
  677.  
  678. Hitag 50:       SO_SPIN
  679.                 TAG2 = speed
  680.  
  681.         Causes a sector object to spin clockwise at the rate specified in
  682.         TAG2. This is functionally the same as TRACK_SPIN (tracktag 715).
  683.         EXAMPLES: EC in EXAMPLE.MAP
  684.         SEE ALSO: SO_SPIN_REVERSE (hitag 51)
  685.  
  686. Hitag 51:       SO_SPIN_REVERSE
  687.                 TAG2 = speed
  688.  
  689.         Causes a sector object to spin counter-clockwise at the rate
  690.         specified in TAG2. This is functionally the same as
  691.         TRACK_SPIN_REVERSE (tracktag 720).
  692.         EXAMPLES: EC in EXAMPLE.MAP
  693.         SEE ALSO: SO_SPIN (hitag 50)
  694.  
  695. Hitag 52:       SO_BOB_START
  696.                 TAG2 = bobbing amount
  697.  
  698.         Causes a sector object to bob up and down continuously. TAG2
  699.         specifies how high the object will bob. This is functionally the
  700.         same as TRACK_BOB_START (tracktag 717).
  701.         EXAMPLES: $WHIRL.MAP
  702.         SEE ALSO: SO_BOB_SPEED (hitag 53), SECT_SO_DONT_BOB (hitag 32)
  703.  
  704. Hitag 53:       SO_BOB_SPEED
  705.                 TAG2 = speed
  706.  
  707.         Place in the same sector with SO_BOB_START (hitag 52). TAG2
  708.         specifies the speed at which the sector object will bob. This is
  709.         functionally the same as TRACK_BOB_SPEED (tracktag 718).
  710.         EXAMPLES: $WHIRL.MAP
  711.         SEE ALSO: SO_BOB_START (hitag 52), SECT_SO_DONT_BOB (hitag 32)
  712.  
  713. Hitag 55:       SO_TURN_SPEED
  714.                 TAG2 = speed (0 is fastest)
  715.  
  716.         Determines how fast a sector object turns to meet the new angle as it
  717.         follows a track. The default is 4. For some reason this has no track
  718.         tag functional equivalent.
  719.         EXAMPLES: FA in EXAMPLE.MAP
  720.         SEE ALSO: SECT_SO_DONT_ROTATE (hitag 45), SO_LIMIT_TURN (hitag 68)
  721.  
  722. Hitag 56:       LAVA_ERUPT
  723.                 TAG2  = (1 to 1024) The larger the number the more stuff
  724.                        erupts.
  725.                 TAG3  = type of eruption
  726.                         0 = lava shards
  727.             1 = volcano boulders
  728.                 TAG4  = angle of eruption
  729.                 TAG5  = angle delta from TAG4
  730.                 TAG6  = max x/y velocity 
  731.                 TAG7  = z velocity amount
  732.                 TAG8  = z velocity random amount - added to TAG5 value
  733.                 TAG9  = erupt for this many seconds - default 10
  734.         TAG10 = wait for this many seconds till next eruption
  735.         BOOL1 = don't spawn unless player is in TRIGGER_SECTOR
  736.  
  737.         This ST1 will spawn lava debris at its location. The lava will
  738.         constantly erupt in intervals (killing framerate) unless BOOL1 is
  739.         set to "1", in which case you will need to set up trigger sectors.
  740.         See TRIGGER_SECTOR (hitag 140.) Then the lava will only erupt while
  741.         the player is standing in those sectors.
  742.         EXAMPLES: BF in EXAMPLE.MAP
  743.  
  744. Hitag 57:       SECT_EXPLODING_CEIL_FLOOR
  745.                 TAG2 = match
  746.  
  747.         Pulls the ceiling and floor together at pre-map. The ceiling and
  748.         floor can then be explosively blown apart by shooting a
  749.         TAG_SPRITE_HIT_MATCH (lotag 257), otherwise known as a crack
  750.         sprite. The TAG_SPRITE_HIT_MATCH hitag must match TAG2 of this ST1.
  751.         EXAMPLES: CA in EXAMPLE.MAP
  752.         SEE ALSO: SECT_COPY_DEST (hitag 58), SECT_COPY_SOURCE (hitag 59)
  753.  
  754. Hitag 58:       SECT_COPY_DEST
  755.         TAG2 = match
  756.         TAG3 = sector source-dest match
  757.                 
  758.         Effectively copies all of the source sector attributes to the
  759.         destination sector when triggered. This is probably the most
  760.         powerful feature of Shadow Warrior, because it lets you do so many
  761.         cool things to a map. Examples are scattered throughout almost
  762.         every map. You can do things like blow a hole in the floor and reveal
  763.         a hidden swimmable stream, lava pool, or gettable item. It will move
  764.         sprites from the source to the destination also. It's very important
  765.         that the source and destination sectors be congruent. TAG2 is an
  766.         event match (i.e. hit a switch and the copy occurs), while TAG3
  767.         serves to identify which source sector belongs to which destination
  768.         sector when copying multiple sectors at the same time. Copy sector
  769.         58-59 tags will activate in conjuction with matching SECT_MOVE_WALL
  770.         (hitag 103) tags AFTER the copy is done. Copy sector 58-59 tags
  771.         should remove any visible sprites from the destination sector,
  772.         although this doesn't apply to gettable items. Copy sector 58-59
  773.         tags will activate in conjuction with matching SPAWN_SPOT tags
  774.         AFTER the copy is done.
  775.         EXAMPLES: CB in EXAMPLE.MAP
  776.         SEE ALSO: SECT_COPY_SOURCE (hitag 59), SECT_EXPLODING_CEIL_FLOOR
  777.                   (hitag 57)
  778.  
  779. Hitag 59:       SECT_COPY_SOURCE
  780.         TAG2 = match
  781.         TAG3 = sector source-dest match
  782.  
  783.         This is the source from which a destination sector is copied. See
  784.         SECT_COPY_DEST (hitag 58) for more information.
  785.         EXAMPLES: CB in EXAMPLE.MAP
  786.         SEE ALSO: SECT_COPY_DEST (hitag 58), SECT_EXPLODING_CEIL_FLOOR
  787.                   (hitag 57)
  788.  
  789. Hitag 62:       SHOOT_POINT
  790.                 TAG2 = match - if non 0 then it will call
  791.                        DoMatchEverything every time sector object is fired.
  792.                        Can be a one time operation with BOOL1. 
  793.                 TAG3 = ammo type
  794.             -1/255 = Do nothing shoot point - primarily to make
  795.                                  the player's weapon go away
  796.                         0      = Tank shell
  797.                         1      = Machine gun
  798.                         2      = Laser
  799.                         3      = Rail gun
  800.                         4      = Fireball
  801.                         5      = Rocket
  802.                         6      = Micro Missle Battery
  803.                 TAG4 = angle
  804.                 TAG5 = delay until next fire in 120th of a second tics
  805.                        (i.e. 60 = half a second) Defaults to 80, except
  806.                        ammo type 1, which defaults to 6.
  807.                 TAG6 = Sound Spot match - Calls SOUND_SPOT (hitag 134) with
  808.                        this match tag
  809.                 BOOL1= If "1" then TAG2 is reset to 0 after the first use.
  810.         
  811.         For operational sector objects and auto turrets. Sets the point
  812.         from which the sector object shoots. Place on the end of a gun barrel
  813.         and point the sprite in the desired shooting direction. When a shoot
  814.         point exists on an operational sector object, the player's weapon is
  815.         no longer used, otherwise the player's weapon stays up. Sometimes
  816.         TAG6 is not needed because some ammo types have default sounds.
  817.         EXAMPLES: EE and EF in EXAMPLE.MAP
  818.  
  819. Hitag 63:       SPEAR_TRAP
  820.         TAG2 = match
  821.         TAG4 = ang
  822.  
  823.         Shoots an arrow from the location of this sprite in the direction
  824.         the angle is pointing when a sector tagged TAG_TRIGGER_MISSILE_TRAP
  825.         (sector tag 43) is stepped on.
  826.         EXAMPLES: BD in EXAMPLE.MAP
  827.         SEE ALSO: FIREBALL_TRAP (hitag 43), BOLT_TRAP (hitag 44)
  828.         
  829. Hitag 64:       SO_SYNC1
  830.  
  831.         Place in a sector object. Keeps sector objects running a constant
  832.         rate so they can stay in sync better if needed. Possibly useful for
  833.         meshing gears or something. If it's rideable use SYNC1. Only use
  834.         this when you absolutely need to. (NOTE: This isn't used anywhere in
  835.         Shadow Warrior, and probably isn't even necessary.)
  836.         SEE ALSO: SO_SYNC2 (hitag 65)
  837.  
  838. Hitag 65:       SO_SYNC2
  839.  
  840.         Same as SO_SYNC1 (hitag 64), only slightly faster. If it's rideable
  841.         use SYNC1. Only use this when you absolutely need to. (NOTE: This
  842.         isn't used anywhere in Shadow Warrior, and probably isn't even
  843.         necessary.)
  844.  
  845. Hitag 66:       DEMO_CAMERA
  846.                 TAG2 = delta ang
  847.                 TAG3 = camera type (0 or 1)
  848.                 TAG4 = angle
  849.  
  850.         A third person camera view which is used when playing back demos, or
  851.         when playing with the -cam command line option. Point it in the
  852.         direction you want the camera to face. TAG2 is the amount the camera
  853.         will turn in either direction (512 = 90 degrees). If TAG3 is 1, then
  854.         a special camera will be used which orbits around the player at a
  855.         constant distance, speed, and height, until the player moves out of
  856.         the camera's view.
  857.         EXAMPLES: FD in EXAMPLE.MAP
  858.         SEE ALSO: MIRROR_CAM (hitag 1000)
  859.  
  860. Hitag 68:       SO_LIMIT_TURN
  861.                 TAG2 = delta ang
  862.  
  863.         Limit the turning of sector object. Especially useful with turrets.
  864.         Point the SO_LIMIT_TURN sprite in the center direction. TAG2 is the
  865.         amount the sector object can pivot in either direction.
  866.         (512 = 90 degrees either way, for a 180 degree total range of motion)
  867.         EXAMPLES: EE in EXAMPLE.MAP
  868.         SEE ALSO: SECT_SO_DONT_ROTATE (hitag 45), SO_TURN_SPEED (hitag 55)
  869.         
  870. Hitag 69:       SPAWN_SPOT
  871.                 TAG2 = Match
  872.                 TAG3 = Type of effect to spawn
  873.                         0  = Nothing
  874.                         1  = Breaking glass
  875.                         2  = Wood smashed
  876.                         3  = Smoke, but only used for damaged sector objects
  877.                         4  = Rice paper (silent)
  878.                         5  = Blood splat (silent)
  879.                         6  = Standard explosion
  880.                         7  = Explosion w/phosphorous
  881.                         8  = Breaking metal
  882.                         9  = Crumbling stone
  883.                         11 = Gib splat
  884.                         12 = Wood smashed
  885.                         13 = Crumbling stone
  886.                 TAG4 = Direction debris flies out in
  887.                 TAG5 = Time delay before activating in 1/8 second tics 
  888.                 TAG6 = Always set this equal to TAG3
  889.                 TAG8 = Number of shrap pieces (default value of 0 will pick a
  890.                        programmed default number) 
  891.                 TAG9 = Random Z range in pixels from ST1 z position
  892.                 TAG10= Increase size of shraps (0-255)
  893.  
  894.         Spawn some effect triggered by just about anything. This is used a
  895.         lot throughout the game for various special effects, including
  896.         crumbling ceilings, large complex explosions, and breakable sprites.
  897.         EXAMPLES: CC in EXAMPLE.MAP
  898.         SEE ALSO: SECT_EXPLODING_CEIL_FLOOR (hitag 57), SPAWN_ITEMS
  899.                   (hitag 149)
  900.  
  901. Hitag 70:       SO_MATCH_EVENT
  902.                 TAG2  = Match
  903.                 TAG3  = Spin_speed adjust - can be negative or positive
  904.                 TAG7  = Velocity adjustment
  905.                 BOOL1 = Velocity adjustment type
  906.                         0: Velocity adjust is instant
  907.                         1: Velocity adjust is approached
  908.                 BOOL2 = Direction flip
  909.                         0: False
  910.                         1: True
  911.                 BOOL3 = Toggle help only used for triggers and things that
  912.                         don't have a definite ON/OFF.
  913.                         0: Off
  914.                         1: On
  915.  
  916.         Certain sector object effects, like SO_SCALE_INFO (hitag 100) and
  917.         SO_KILLABLE (hitag 80), can be triggered by a match tag event.
  918.         This is accomplished using SO_MATCH_EVENT. The adjustment values
  919.         are added when the event is ON, and they are subtracted when the
  920.         event is OFF. You may need to experiment with this a bit, since we
  921.         didn't use it very much in the game.
  922.         EXAMPLES: EE in EXAMPLE.MAP
  923.  
  924. Hitag 71:       SO_SLOPE_FLOOR_TO_POINT
  925.                 
  926.         Aligns a sloping floor sector in a sector object to a point tagged as
  927.         TAG_WALL_ALIGN_SLOPE_TO_POINT (walltag 550). Generally used with
  928.         a spike or drill effect rising up from the floor. See also
  929.         SO_SLOPE_CEILING_TO_POINT (hitag 72).
  930.         
  931. Hitag 72:       SO_SLOPE_CEILING_TO_POINT
  932.  
  933.         Aligns a sloping floor sector in a sector object to a point tagged as
  934.         TAG_WALL_ALIGN_SLOPE_TO_POINT (walltag 550). Generally used with
  935.         a tornado or whirlpool effect coming down from the ceiling. See also
  936.         SO_SLOPE_FLOOR_TO_POINT (hitag 71).
  937.         EXAMPLES: ED in EXAMPLE.MAP
  938.  
  939. Hitag 73:       SO_TORNADO
  940.  
  941.         This sets up a sector object to behave like a tornado.
  942.         EXAMPLES: ED in EXAMPLE.MAP
  943.         SEE ALSO: SO_AMOEBA (hitag 75), SO_AUTO_TURRET (hitag 81)
  944.  
  945. Hitag 75:       SO_AMOEBA
  946.  
  947.         This sets up a sector object to behave like an amoeba.
  948.         EXAMPLES: EC in EXAMPLE.MAP
  949.         SEE ALSO: SO_TORNADO (hitag 73), SO_AUTO_TURRET (hitag 81),
  950.                   SO_SCALE_INFO (hitag 100)
  951.  
  952. Hitag 76:       SO_MAX_DAMAGE
  953.                 TAG2 = Max amount of damage a sector object can take before
  954.                        breaking
  955.                 TAG3 = Always set to 0
  956.                 TAG5 = Initial damage setting (-1 is broken) - if this value
  957.                        is 0 it is set to the value of TAG2 (full health)
  958.  
  959.         Damage for operational and auto turret sector objects. Sector objects
  960.         only take damage from explosive type weapons, not machine gun types.
  961.         Be sure to add a SPAWN_SPOT (hitag 69) with TAG3 set to 3 for the
  962.         smoke effect. When the driveable is broken, it will trigger the
  963.         smoke, and when the object is repaired, the smoke will go away again.
  964.         EXAMPLES: EE in EXAMPLE.MAP
  965.         SEE ALSO: SO_KILLABLE (hitag 80)
  966.         
  967. Hitag 77:       SO_RAM_DAMAGE
  968.                 TAG2 = Damage amount
  969.  
  970.         Damage amount done by ramming with an operational sector object.
  971.         Not needed for running over actors, since this is done by default.
  972.         This is usually used for ramming killable sector objects or other
  973.         operational sector objects.
  974.  
  975. Hitag 80:       SO_KILLABLE
  976.                 
  977.         Marks a sector object as killable. Make sure the center sector of
  978.         the sector object has a sector lotag of 95. A sector object can be
  979.         killed either when it receives enough damage, set by SO_MAX_DAMAGE
  980.         (hitag 76), or when a match event occurs, set by SO_MATCH_EVENT
  981.         (hitag 70). A killable sector object is actually completely
  982.         deleted by becoming part of the sector surrounding the sector object.
  983.         EXAMPLES: EE in EXAMPLE.MAP
  984.  
  985. Hitag 81:       SO_AUTO_TURRET
  986.  
  987.         A sector object with a SO_AUTO_TURRET ST1 will always turn to face
  988.         the player. Useful for a variety of effects, since it won't shoot the
  989.         player unless you give it a SHOOT_POINT (hitag 62). A SHOOT_POINT
  990.         on an auto turret will only fire the machine gun ammo type. The
  991.         sector object center must have a sector hitag of 96 or 98 for this to
  992.         work properly.
  993.         EXAMPLES: EE in EXAMPLE.MAP
  994.         SEE ALSO: SO_AMOEBA (hitag 75), SO_TORNADO (hitag 73)
  995.         
  996. Hitag 82:       SECT_DAMAGE
  997.                 TAG2  = Damage done per second
  998.                 BOOL1 = 0, Does damage when touching floor of sector
  999.                 BOOL1 = 1, Does damage above sector - like swimming in lava
  1000.  
  1001.         Causes a sector to do damage to players and actors.
  1002.         EXAMPLES: CD in EXAMPLE.MAP
  1003.  
  1004. Hitag 84:       WARP_TELEPORTER
  1005.                 TAG2   = Match
  1006.                 TAG3   = Type
  1007.                         0 = (default) Always teleports you to the matching
  1008.                             sprite location at the angle the sprite is facing
  1009.                         1 = (offset)  Always teleports you by the offset.
  1010.                             Does not affect the angle.
  1011.                 TAG4   = Angle
  1012.                 TAG5-8 = Random match locations in addition to TAG2
  1013.                 TAG10  = Teleport or don't
  1014.                         0 = (two-way) Teleport when you enter this sector
  1015.                         1 = (one-way) Don't teleport when you hit this sector
  1016.  
  1017.         Magic teleporter warps just about anything from one sector to
  1018.         another. If TAG3 is "0", then a magic shimmering effect and sound
  1019.         will occur. It is very important that the destination sector be at
  1020.         least as large as the source sector, or the game may quit with an
  1021.         error.
  1022.         EXAMPLES: CD in EXAMPLE.MAP
  1023.         SEE ALSO: WARP_CEILING_PLANE (hitag 85), WARP_FLOOR_PLANE (hitag 86),
  1024.                   WARP_COPY_SPRITE1 (hitag 87), WARP_COPY_SPRITE2 (hitag 88)
  1025.  
  1026. Hitag 85:       WARP_CEILING_PLANE
  1027.                 TAG2 = Match
  1028.  
  1029.         If the player's view (or a NPC Z coordinate) goes ABOVE the
  1030.         Z position of this ST1 sprite then a warp to the Z coordinate of
  1031.         the matching WARP_FLOOR_PLANE (hitag 86) will occur.
  1032.         EXAMPLES: CE in EXAMPLE.MAP
  1033.         SEE ALSO: WARP_TELEPORTER (hitag 84), WARP_FLOOR_PLANE (hitag 86),
  1034.                   WARP_COPY_SPRITE1 (hitag 87), WARP_COPY_SPRITE2 (hitag 88),
  1035.         
  1036. Hitag 86:       WARP_FLOOR_PLANE
  1037.                 TAG2 = Match
  1038.  
  1039.         If the player's view (or a NPC Z coordinate) goes BELOW the
  1040.         Z position of this ST1 sprite then a warp to the Z coordinate of the
  1041.         matching WARP_CEILING_PLANE will occur.
  1042.         EXAMPLES: CE in EXAMPLE.MAP
  1043.         SEE ALSO: WARP_CEILING_PLANE (hitag 85), WARP_TELEPORTER (hitag 84),
  1044.                   WARP_COPY_SPRITE1 (hitag 87), WARP_COPY_SPRITE2 (hitag 88)
  1045.         
  1046. Hitag 87:       WARP_COPY_SPRITE1
  1047.                 TAG2 = Match WARP_COPY_SPRITE2 tag
  1048.  
  1049.         Any sprite that enters a sector marked with WARP_COPY_SPRITE1 will
  1050.         cause a duplicate image to appear in the sector marked with a
  1051.         WARP_COPY_SPRITE2 (hitag 88) with matching TAG2.
  1052.         EXAMPLES: CE in EXAMPLE.MAP
  1053.         SEE ALSO: WARP_CEILING_PLANE (hitag 85), WARP_FLOOR_PLANE (hitag 86),
  1054.                   WARP_TELEPORTER (hitag 84), WARP_COPY_SPRITE2 (hitag 88)
  1055.                 
  1056. Hitag 88:       WARP_COPY_SPRITE2
  1057.                 TAG2 = match WARP_COPY_SPRITE1 tag
  1058.  
  1059.         Any sprite that enters a sector marked with WARP_COPY_SPRITE2 will
  1060.         cause a duplicate image to appear in the sector marked with a
  1061.         WARP_COPY_SPRITE2 (hitag 87) with matching TAG2.
  1062.         EXAMPLES: CE in EXAMPLE.MAP
  1063.         SEE ALSO: WARP_CEILING_PLANE (hitag 85), WARP_FLOOR_PLANE (hitag 86),
  1064.                   WARP_COPY_SPRITE1 (hitag 87), WARP_TELEPORTER (hitag 84)
  1065.                         
  1066. Hitag 90:       PLAX_GLOB_Z_ADJUST
  1067.                 TAG2 = Ceiling z movement in pixels 
  1068.                 TAG3 = Floor z movement in pixels 
  1069.                 
  1070.         Global parallax ceiling and floor adjustment. Default is 500 pixels.
  1071.         This affects how far past the actual surface height a sprite can
  1072.         move in sectors with parallax ceilings and floors.
  1073.         SEE ALSO: FLOOR_Z_ADJUST (hitag 98), CEILING_Z_ADJUST (hitag 97),
  1074.                   SECT_SINK (hitag 0)
  1075.  
  1076. Hitag 92:       SECT_VATOR
  1077.         TAG2 = match
  1078.         TAG3 = Type
  1079.                         0 = Manual/Switch/Trigger - Primarily used for a
  1080.                             basic manually operated door. If a manual type
  1081.                             has a match tag that is not 0 then ALL vators
  1082.                             with the same match type will be operated on.
  1083.                             Manual operation - works from either within the
  1084.                             sector or alongside of the sector.
  1085.                             Switch operation - switch resets when the vator
  1086.                             goes to default position.
  1087.                             Trigger operation - same as switch but it's a
  1088.                             floor trigger.
  1089.                         1 = Switch/Trigger Only - Cannot be operated manually
  1090.                             ALL vator types with the same matching tag get
  1091.                             operated on
  1092.                         2 = Automatic - Starts Active
  1093.                         3 = Automatic - Starts Inactive - must be turned on
  1094.                             with a switch or trigger
  1095.                 TAG4 = Speed
  1096.                 TAG5 = Acceleration at which door approaches TAG4
  1097.                 TAG6 = Match at destination - when a vator reaches its
  1098.                        destination it will trigger any event with this
  1099.                        match tag
  1100.                 TAG9 = Auto return time - 1/8th of a second resolution - if
  1101.                        non 0 then the vator will return to default position
  1102.                        after alloted time - if 0 then it will stay in the on
  1103.                        position until operated again
  1104.                 BOOL1=  0: Start in the off position
  1105.                         1: Start in the on position
  1106.                 BOOL2=  0: Toggle
  1107.                         1: Operate once only
  1108.                 BOOL3=  0: Crush player
  1109.                         1: Don't crush player
  1110.                 BOOL4 = 0: Operate in WangBang games
  1111.                         1: Not allowed to operate in WangBang games
  1112.                 BOOL5 = 0: Don't call TAG6 match when moving to OFF position
  1113.                         1: Call TAG6 match when moving to the ON or OFF
  1114.                            position
  1115.                 BOOL6 = 0: Wait until motion is complete before it can be
  1116.                            operated again
  1117.                         1: Can be operated again while sector is in motion
  1118.                 BOOL7 = 0: Actors are allowed to operate this vator
  1119.                         1: Actors can't operate this vator
  1120.                 BOOL11= 1: Displays "Single play only" message when
  1121.                            operated in WangBang. Use with BOOL4.
  1122.  
  1123. Elevators, stompers, doors, lifts and other tricks are collectively called
  1124. "vators." The "off" position is the position of the sector in BUILD, the "on"
  1125. position is the height of the ST1 sprite. Flip the ST1 sprite upside down
  1126. (by pressing "F" twice on it) to do a ceiling vator like a door or stomper.
  1127. Any vator can be locked by placing a SECT_LOCK_DOOR (hitag 29) in the same
  1128. sector. Two SECT_VATOR sprites can be placed in a sector to operate the
  1129. ceiling and floor separately.
  1130. EXAMPLES: DB in EXAMPLE.MAP
  1131. SEE ALSO: SECT_ROTATOR (hitag 143), SECT_SLIDOR (hitag 145),
  1132.           SECT_SPIKE (hitag 106)
  1133.  
  1134. Hitag 97:       CEILING_Z_ADJUST
  1135.                 TAG2 = Amount
  1136.  
  1137.         Allows the player and actors to 'sink' into the ceiling of a sector
  1138.         by the amount in TAG2. The player view will probably be strange
  1139.         unless the ceiling texture is a parallax sky.
  1140.         EXAMPLES: $VOLCANO.MAP
  1141.         SEE ALSO: PLAX_GLOB_Z_ADJUST (hitag 90), FLOOR_Z_ADJUST (hitag 98),
  1142.                   SECT_SINK (hitag 0)
  1143.                 
  1144. Hitag 98:       FLOOR_Z_ADJUST
  1145.                 TAG2 = Amount
  1146.  
  1147.         Allows the player and actors to sink into the floor of a sector
  1148.         by the amount in TAG2.
  1149.         EXAMPLES: AB and CE in EXAMPLE.MAP
  1150.         SEE ALSO: PLAX_GLOB_Z_ADJUST (hitag 90), CEILING_Z_ADJUST (hitag 97),
  1151.                   SECT_SINK (hitag 0)
  1152.  
  1153. Hitag 99:       FLOOR_SLOPE_DONT_DRAW
  1154.  
  1155.         Use this ST1 in any sector with a sloped floor and the slope angle
  1156.         will be set to 0 when the scene is drawn. The sector will still act
  1157.         like a slope for all movement purposes.
  1158.         EXAMPLES: CE in EXAMPLE.MAP
  1159.  
  1160. Hitag 100:      SO_SCALE_INFO
  1161.         TAG2 = Speed
  1162.                 TAG3 = Start position
  1163.                        0 = start at min
  1164.                        1 = start at max
  1165.                 TAG4 = Initial type
  1166.                        0 = None
  1167.                        1 = Hold
  1168.                        2 = Destination
  1169.                        3 = Random
  1170.                        4 = Cycle
  1171.                        5 = Random point
  1172.                            Needs SO_SCALE_POINT_INFO (hitag 101)
  1173.                 TAG5 = Min dist - distance from default size to scale inward
  1174.                 TAG6 = Max dist - distance from default size to scale outward
  1175.                 TAG7 = Activate type - same types as TAG4, but this what
  1176.                        happens after the sector object is activated with a
  1177.                        SO_MATCH_EVENT (hitag 70)
  1178.                 TAG8 = Random frequency (0-64) - The lower the number the
  1179.                        slower the random direction change.
  1180.  
  1181.         This allows you to scale simple sector objects. "Hold" type maintains
  1182.         the default scale. "Destination" moves either to the minimum or
  1183.         maximum scaling size. "Random" is just that - the sector object
  1184.         scales larger and smaller randomly. "Cycle" continuously scales from
  1185.         min to max and back again. "Random point" is just like a SO_AMOEBA
  1186.         (hitag 75), except that SO_SCALE_INFO gives you greater control over
  1187.         its behavior.
  1188.         EXAMPLES: EE in EXAMPLE.MAP, the amoeba in $SHRINE.MAP
  1189.         SEE ALSO: SO_AMOEBA (hitag 75), SO_SCALE_POINT_INFO (hitag 101)
  1190.  
  1191. Hitag 101:      SO_SCALE_POINT_INFO
  1192.         TAG2 = Speed
  1193.         TAG4 = Random freqency - 0 to 1024 - the lower the number
  1194.                        the slower the direction change
  1195.         TAG5 = Min dist - dist from default size to scale inward
  1196.         TAG6 = Max dist - dist from default size to scale outward
  1197.  
  1198.         SO_SCALE_POINT_INFO is used with a SO_SCALE_INFO (hitag 100) ST1 to
  1199.         provide information about how the vertices should behave. TAG5 and
  1200.         TAG6 are used to designate how far in and out the individual
  1201.         vertices should move at the speed in TAG2. Be careful; when wall
  1202.         points cross each other, strange and unpredictable sector behavior
  1203.         can occur.
  1204.         EXAMPLES: The amoeba in $SHRINE.MAP
  1205.         SEE ALSO: SO_AMOEBA (hitag 75), SO_SCALE_INFO (hitag 100)
  1206.  
  1207. Hitag 102:      SO_SCALE_XY_MULTIPLY
  1208.                 TAG5 = x multiply value; 256 is equal to 1
  1209.         TAG6 = y multiply value; 256 is equal to 1
  1210.  
  1211.         Use in conjunction with SO_SCALE_INFO (hitag 100) and
  1212.         SO_SCALE_POINT_INFO (hitag 101). Try experimenting with this to see
  1213.         what kind of effects you can achieve.
  1214.  
  1215. Hitag 103:      SECT_WALL_MOVE
  1216.                 TAG2 = Match - triggering one of these will trigger all
  1217.                        SECT_WALL_MOVE ST1's with the same matching tags.
  1218.                        This will also trigger SPAWN_SPOT ST1's.
  1219.                 TAG3 = Match with a SECT_WALL_MOVE_CANSEE (hitag 104)
  1220.                 TAG4 = Angle - point in the direction you want the wall point
  1221.                        to move
  1222.                 TAG5 = Pic 1 - Next wall texture
  1223.                 TAG6 = Pic 2 - Previous wall texture 
  1224.                 TAG7 = Shade 1 - Next wall shade
  1225.                 TAG8 = Shade 2 - Previous wall shade
  1226.                 TAG9 = Number of times the point can be shot
  1227.                 TAG10= Random angle difference - 1 to 128 - the larger the
  1228.                        number the greater the angle deviance.
  1229.                 TAG13= Distance to move point each time it's shot
  1230.                 BOOL1= 0: Can work independently
  1231.                        1: Only activated as part of a TAG3 group
  1232.  
  1233.         This creates a dentable wall. Every time the wall vertex is shot with
  1234.         an explosive weapon, it will move the distance in TAG13, up to TAG9
  1235.         times. Place the ST1 sprite on TOP of the vertex to move. One vertex
  1236.         will move. Every vertex is associated with two walls: the next wall
  1237.         and the previous wall. If TAG5 or TAG6 are non-zero, then that wall
  1238.         will take on the specified texture when the vertex is shot. If TAG7
  1239.         or TAG8 are non-zero, then that wall will take on the new shade
  1240.         value specified. This will work for sector object walls with one
  1241.         limitation: you cannot tag the outside wall loop tagged with a 504 to
  1242.         be moveable. NOTE: Changing the value of TAG13 will cause the ST1
  1243.         sprite to move strangely in 3D editing mode. Don't worry. If 2D mode
  1244.         says it's on the vertex, then it's on the vertex.
  1245.         EXAMPLES: DA in EXAMPLE.MAP
  1246.         SEE ALSO: SECT_WALL_MOVE_CANSEE (hitag 104), SPAWN_SPOT (hitag 69),
  1247.                   SECT_EXPLODING_CEIL_FLOOR (hitag 57)
  1248.  
  1249. Hitag 104:      SECT_WALL_MOVE_CANSEE
  1250.                 TAG2 = Match with TAG3 of SECT_MOVE_WALL (hitag 103)
  1251.  
  1252.         Placing sprites on wall points renders them somewhat unreliable for
  1253.         certain engine routines. If there is a problem activating a
  1254.         SECT_MOVE_WALL, set up one of these off of the wall point for the
  1255.         engine to use for detection purposes. I have never needed to use
  1256.         this.
  1257.         EXAMPLES: DA in EXAMPLE.MAP
  1258.  
  1259. Hitag 106:      SECT_SPIKE
  1260.                 TAG2 = Match
  1261.         TAG3 = Type
  1262.                         0 = Manual/Switch/Trigger - primarily used for manual
  1263.                             type. If a manual type has a match tag that is
  1264.                             not 0 then ALL spikes with the same match type
  1265.                             will be operated on. A spike can be manually
  1266.                             operated from either within the sector, or to the
  1267.                             side. With switch operation, the switch resets
  1268.                             when the spike goes to default position. With
  1269.                             trigger operation, it's the same as a switch but
  1270.                             it's a floor trigger.
  1271.                         1 = Switch/Trigger Only - cannot be operated manually
  1272.                             ALL spike types with the same matching tag get
  1273.                             operated on by the switch or trigger.
  1274.                         2 = Automatic - Starts active
  1275.                         3 = Automatic - Starts inactive, must be activated
  1276.                             with a switch or trigger.
  1277.                 TAG4 = Speed
  1278.                 TAG5 = Acceleration at which TAG4 speed is approached
  1279.                 TAG6 = Match at destination - when a spike reaches its
  1280.                        destination it will trigger any event with this
  1281.                        match tag
  1282.                 TAG7 = Sector object number to operate on. Set to -1 if the
  1283.                        SECT_SPIKE is not in a sector object.
  1284.                 TAG9 = Auto return time - 1/8th of a second resolution - if
  1285.                        non 0 then the spike will return to its default
  1286.                        position after the alloted time. If 0 then it will
  1287.                        stay in the ON position until the spike is operated
  1288.                        again.
  1289.                 BOOL1= 0: Start in the off position
  1290.                        1: Start in the on position
  1291.                 BOOL2= 0: Toggle
  1292.                        1: Operate once only
  1293.                 BOOL3= 0: Crush player
  1294.                        1: Don't crush player
  1295.                 BOOL4= 0: Operate in WangBang games
  1296.                        1: Not allowed to operate in WangBang games
  1297.                 BOOL5= 0: Don't call TAG6 match when moving to OFF position
  1298.                        1: Call TAG6 match when moving to the ON or OFF
  1299.                           position
  1300.                 BOOL6= 0: Wait until motion is complete before it can be
  1301.                           operated again
  1302.                        1: Can be operated again while sector is in motion
  1303.                 BOOL7= 0: Actors are allowed to operate this spike
  1304.                        1: Actors can't operate this spike
  1305.                 BOOL11=1: Displays "Single play only" message when
  1306.                           operated in WangBang. Use with BOOL4.
  1307.  
  1308.         A "spike" is the term for a dynamic slope in Shadow Warrior. Useful
  1309.         for tilting ramps and slides, or special ceiling effects like a
  1310.         drill. A spike behaves pretty much like a vator, except instead of
  1311.         the floor height moving to the ST1, the floor instead slopes to the
  1312.         height of the ST1. Remember that slopes always hinge on the "first
  1313.         wall" of a sector (set with Alt-F). To do a spike from the ceiling,
  1314.         flip the ST1 sprite upside down (press "F" twice on the sprite in 3D
  1315.         mode). "Off" position is the position of the sector, "on" position is
  1316.         the height of the ST1 sprite. WARNING: Don't forget to put that -1
  1317.         in TAG7! Shadow Warrior will usually crash if you forget to do this.
  1318.         EXAMPLES: DC in EXAMPLE.MAP
  1319.         SEE ALSO: SECT_ROTATOR (hitag 143), SECT_SLIDOR (hitag 145),
  1320.                   SECT_VATOR (hitag 92), SLIDE_SECTOR (hitag 135)
  1321.                 
  1322. Hitag 108:      LIGHTING
  1323.                 TAG2 = Match
  1324.                 TAG3 = Type
  1325.                         0 = Constant
  1326.                         1 = Flicker
  1327.                         2 = Fade
  1328.                         3 = Flicker ON
  1329.                         4 = Fade to ON/OFF
  1330.                 TAG4 = Timing - the smaller the number, the faster a light
  1331.                        flickers or fades
  1332.                 TAG5 = Brighten amount - This is not an actual shade amount,
  1333.                        instead, this is the value the ST1 will subtract from
  1334.                        the sector's shade value (QUOTE-S in 3D mode) when it
  1335.                        is turned on.
  1336.                 TAG6 = Darken amount - This is not an actual shade amount,
  1337.                        instead, this is the value the ST1 will add to the
  1338.                        sector's shade value when it is turned off.
  1339.                 TAG7 = Shade increment/decrement for fading lights - default
  1340.                        is 1
  1341.                 BOOL1= 0: Light is off
  1342.                        1: Light is on
  1343.                 BOOL2= 1: Don't affect floor
  1344.                 BOOL3= 1: Don't affect ceiling
  1345.                 BOOL4= 1: Don't shade walls
  1346.                 BOOL5= 1: Shade outer walls - red sectors have inner and
  1347.                           outer walls - by default LIGHTING will not shade
  1348.                           the outer walls
  1349.                 BOOL6= 1: Don't affect the palette of the sector
  1350.                 BOOL8= 1: Invert intensity. This means that the sector will
  1351.                           be brightened by TAG6 amount when the light is on,
  1352.                           and darkened by TAG5 amount when the light is off.
  1353.                           This is useful for making lights that flicker when
  1354.                           they are broken.
  1355.                 BOOL10=   Direction to start a fade
  1356.  
  1357.         The sector will have the same palette as the LIGHTING sprite, even if
  1358.         the light is turned off. All LIGHTING ST1's with the same match tags
  1359.         will operate together.
  1360.         WARNING: Every LIGHTING sprite tends to have its own independent rate
  1361.         of fade or flicker. This means that if you a have a room comprised of
  1362.         multiple sectors and you put a flickering LIGHTING ST1 in every
  1363.         sector, they will all flicker at different rates and look really bad
  1364.         even if their TAG2's match. If you want a room of uniform flickering
  1365.         or fading, you need to place a single LIGHTING sprite in one sector
  1366.         and use LIGHTING_DIFFUSE (hitag 109) in all the sectors you want to
  1367.         share that lighting effect.
  1368.         EXAMPLES: DD in EXAMPLE.MAP
  1369.         SEE ALSO: LIGHTING_DIFFUSE (hitag 109)
  1370.  
  1371. Hitag 109:      LIGHTING_DIFFUSE
  1372.                 TAG2 = Match to a LIGHTING (hitag 108) TAG2
  1373.                 TAG3 = Shade multiplier - the higher this number, the more
  1374.                        quickly the light grows dark with distance from the
  1375.                        light source
  1376.                 TAG4 = Distance - 1 to 20 for diffuse lighting - The larger
  1377.                        the number the more distant, and therefore darker the
  1378.                        shade from the source.
  1379.                 BOOL2= 1: Don't affect floor
  1380.                 BOOL3= 1: Don't affect ceiling
  1381.                 BOOL4= 1: Don't affect walls
  1382.                 BOOL5= 1: Shade outer walls - red sectors have inner and
  1383.                           outer walls - by default LIGHTING_DIFFUSE will not
  1384.                           shade outer walls
  1385.                 BOOL6= 1: Dont change palette
  1386.  
  1387.         Used with LIGHTING (hitag 108) to shade other sectors on a grade.
  1388.         Also used to copy a lighting effect (flickering, fading, palette)
  1389.         uniformly over multiple sectors. Though its difference from Duke
  1390.         Nukem's lighting may at first seem confusing, this method is
  1391.         actually more convenient. Once all the LIGHTING_DIFFUSE sprites are
  1392.         in place, you can change the lighting effect for an entire group of
  1393.         sectors just by changing the values of one sprite: the LIGHTING
  1394.         (hitag 108) ST1.
  1395.         EXAMPLES: DD in EXAMPLE.MAP
  1396.         SEE ALSO: LIGHTING (hitag 108)
  1397.  
  1398. Hitag 110:      VIEW_LEVEL1
  1399.                 TAG2 = View tag match
  1400.                 TAG4 = Point up to turn it OFF
  1401.                        Point down to turn it ON
  1402.  
  1403.         A matching VIEW_LEVEL sprite must be in both the upper and lower
  1404.         sectors of any room-over-room areas where the player can look
  1405.         through the ceiling or floor into the other area. Use VIEW_LEVEL1
  1406.         in the lower areas. See ADVANCED.TXT for guidelines to building
  1407.         room-over-room areas.
  1408.         EXAMPLES: AC, AD, and FC in EXAMPLE.MAP
  1409.         SEE ALSO: VIEW_LEVEL2 (hitag 111), VIEW_THRU_CEILING (hitag 120),
  1410.                   VIEW_THRU_FLOOR (hitag 121), BOUND_FLOOR_BASE_OFFSET
  1411.                   (hitag 202), BOUND_FLOOR_OFFSET (hitag 203)
  1412.  
  1413. Hitag 111:      VIEW_LEVEL2
  1414.                 TAG2 = View tag match
  1415.                 TAG4 = Point up to turn it OFF
  1416.                        Point down to turn it ON
  1417.  
  1418.         A matching VIEW_LEVEL sprite must be in both the upper and lower
  1419.         sectors of any room-over-room areas where the player can look
  1420.         through the ceiling or floor into the other area. Use VIEW_LEVEL2
  1421.         in the upper areas. See ADVANCED.TXT for guidelines to building
  1422.         room-over-room areas.
  1423.         EXAMPLES: AB, AE, and FE in EXAMPLE.MAP
  1424.         SEE ALSO: VIEW_LEVEL1 (hitag 110), VIEW_THRU_CEILING (hitag 120),
  1425.                   VIEW_THRU_FLOOR (hitag 121), BOUND_FLOOR_BASE_OFFSET
  1426.                   (hitag 202), BOUND_FLOOR_OFFSET (hitag 203)
  1427.         
  1428. Hitag 120:      VIEW_THRU_CEILING
  1429.                 TAG2 = View tag match
  1430.  
  1431.         Use this in a sector with a floor mirror texture on the ceiling in
  1432.         the lower half of a room-over-room area. The ST1 sprite must be in
  1433.         the same relative location in the sector as the VIEW_THRU_FLOOR
  1434.         (hitag 121) sprite in the upper sector. TAG2 will be the same as
  1435.         all the VIEW_LEVEL sprites and the VIEW_THRU_FLOOR sprite. See
  1436.         ADVANCED.TXT for guidelines to building room-over-room areas.
  1437.         EXAMPLES: AC, AD, and FC in EXAMPLE.MAP
  1438.         SEE ALSO: VIEW_LEVEL1 (hitag 110), VIEW_LEVEL2 (hitag 111),
  1439.                   VIEW_THRU_FLOOR (hitag 121), BOUND_FLOOR_BASE_OFFSET
  1440.                   (hitag 202), BOUND_FLOOR_OFFSET (hitag 203)
  1441.         
  1442. Hitag 121:      VIEW_THRU_FLOOR
  1443.                 TAG2 = View tag match
  1444.  
  1445.         Use this in a sector with a floor mirror texture on the floor in
  1446.         the upper half of a room-over-room area. The ST1 sprite must be in
  1447.         the same relative location in the sector as the VIEW_THRU_CEILING
  1448.         (hitag 120) sprite in the lower sector. TAG2 will be the same as
  1449.         all the VIEW_LEVEL sprites and the VIEW_THRU_CEILING sprite. See
  1450.         ADVANCED.TXT for guidelines to building room-over-room areas.
  1451.         EXAMPLES: AB, AE, and FE in EXAMPLE.MAP
  1452.         SEE ALSO: VIEW_LEVEL1 (hitag 110), VIEW_THRU_CEILING (hitag 120),
  1453.                   VIEW_LEVEL2 (hitag 121), BOUND_FLOOR_BASE_OFFSET
  1454.                   (hitag 202), BOUND_FLOOR_OFFSET (hitag 203)
  1455.         
  1456. Hitag 132:      BREAKABLE
  1457.                 TAG2 = Match - used to match up with BREAKABLE_SPRITE
  1458.                        (hitag 132 on a non-ST1 sprite) or TAG_BREAK_WALL
  1459.                        (walltag 307)
  1460.                 TAG5 = Picnum to change to after BROKEN
  1461.                        Not needed if TAG8 = "1"
  1462.                 TAG7 = Number of damage hits to take before a sprite or
  1463.                        wall texture is BROKEN. Note that if this is set to 2
  1464.                        or greater the picnum will increment toward TAG5 until
  1465.                        TAG5 is reached. The graphics in the art file must be
  1466.                        imported in the correct order to support this. Nothing
  1467.                        in Shadow Warrior uses this, but the functionality is
  1468.                        there for anybody who feels like importing their own
  1469.                        art.
  1470.                 TAG8 = BROKEN type: 
  1471.                        0 = Change the picnum only
  1472.                        1 = Kill sprite/wallpic when BROKEN
  1473.                            For walls this will turn off masking, blocking,
  1474.                            and 1-way.
  1475.                        2 = Turn off blocking bits when BROKEN
  1476.                            For walls this will just turn off blocking bits,
  1477.                            but leave the masking or 1-way alone. Breaking
  1478.                            an air vent grate is an example of this.
  1479.  
  1480.         Sprites and wall breaking info. There are 2 ways to use this:
  1481.         1) As ST1 sprite info for breaking a sprite, or 2) As ST1 sprite info
  1482.         for breaking a wall. NOTE: Can be re-used for many BREAKABLE_SPRITEs.
  1483.         Example: All chairs that break could use a single ST1 132 to tell
  1484.         them how to break as long as the same matching TAG2 is used.
  1485.         When hitting a wall tagged with TAG_WALL_BREAK (307) the code will
  1486.         look for a BREAKABLE_SPRITE ST1 with a matching tag and use this info
  1487.         if found.
  1488.         EXAMPLES: DE in EXAMPLE.MAP
  1489.  
  1490. Hitag 132:      BREAKABLE_SPRITE
  1491.                 (This is used with non-ST1 sprites to make them breakable)
  1492.                 TAG2 = Match - used to match up with BREAKABLE ST1's
  1493.                 TAG6 = Match - extra match value for activating ST1's like
  1494.                        SPAWN_SPOT and LIGHTING. By this method you can spawn
  1495.                        debris or turn off a light when this sprite is broken.
  1496.                 BOOL1= 1: Denotes that this is not an ST1 but is tagged like
  1497.                           one. IMPORTANT: THIS MUST BE SET TO "1". 
  1498.                 BOOL2= 1: Don't break this sprite. Use this to override
  1499.                           automatic breakables.
  1500.  
  1501.         Use this tagging on the actual sprite you want to break. TAG2 should
  1502.         match the TAG2 of the BREAKABLE (hitag 132) ST1 that tells this
  1503.         sprite how to break. NOTE: You don't actually need the ST1 132
  1504.         if you just want to kill the sprite when its broken. Giving it a
  1505.         hitag of 132 and setting BOOL1 is sufficient.
  1506.         EXAMPLES: DE in EXAMPLE.MAP
  1507.  
  1508. Hitag 133:      QUAKE_SPOT
  1509.                 TAG2 = Match
  1510.                 TAG3 = Shake Z amount - This is the amount the view moves in
  1511.                        the Z direction.
  1512.                 TAG4 = Radius of quake - distance in which quake is felt -
  1513.                        this value is multiplied by 8 internally for the
  1514.                        distance.  The code is set up so that the quake amount
  1515.                        decreases from the epicenter, but this effect can be
  1516.                        overridden by setting BOOL1 to "1"
  1517.                 TAG5 = Duration of quake in seconds
  1518.                 TAG6 = Timed quake - shake the screen every X seconds, where
  1519.                        X = TAG6 multiplied by 10.
  1520.                 TAG7 = Shake angle amount - amount the view's angle moves
  1521.                 TAG8 = Shake x,y position amount - multiplied by 8 internally
  1522.                 TAG9 = Random quake value (1 to 128). Multiplied by 4
  1523.                        internally. Used with TAG6. Instead of automatically
  1524.                        spawning a quake after time it does a random test.
  1525.                        The larger the number the greater the chance of a
  1526.                        quake. 0 is default - will not do random test.
  1527.                 BOOL1= 1: Quake does not decrease from epicenter, and will
  1528.                        basically shake the entire level.
  1529.                 BOOL2= 1: Only quake once and never again
  1530.                 BOOL3= 1: Wait for trigger before starting timed quake code.
  1531.                        This is only used for timed quakes.
  1532.  
  1533.         This is used to shake the player's view as though an earthquake were
  1534.         happening.
  1535.         EXAMPLES: DE in EXAMPLE.MAP
  1536.  
  1537. Hitag 134:      SOUND_SPOT
  1538.                 TAG2 = Match
  1539.                 TAG4 = 1st Sound #
  1540.         TAG5 = 2nd Sound #
  1541.         TAG6 = 3rd Sound #
  1542.                 BOOL1= 1: Play the sound once and only once
  1543.                 BOOL2= 1: Play the sound as a looping sound. The sound will
  1544.                        continue to loop until stopped by STOP_SOUND_SPOT
  1545.                        (hitag 150).
  1546.                        1: Also means follow sprite, and needs to be set if
  1547.                        the ST1 sprite will be moving (usually with a sector
  1548.                        object.)
  1549.                 BOOL3= 1: Random play. When the ST1 is triggered, it will
  1550.                        randomly choose between sounds 1 and 2 or between
  1551.                        sounds 1, 2, and 3.
  1552.                 BOOL4= 1: Don't pan sound. This is useful when the sound
  1553.                        is very near the player.
  1554.                 BOOL5= 1: Use doppler effect.
  1555.                 BOOL6= 0: Make sure this is always reset to "0".
  1556.                 BOOL7= 1: The sound is Lo Wang's voice, heard inside his
  1557.                        head at max volume no matter how far from the
  1558.                        SOUND_SPOT he is.
  1559.  
  1560.                 SOUND_SPOT will play the sound specified in TAG4 when the
  1561.                 match tag in TAG2 is triggered. SOUND_SPOT can also be
  1562.                 triggered by operating a vator, spike, sliding door, or
  1563.                 rotating door with the same match tag. Sound numbers can be
  1564.                 obtained from the digital sound index in SWSOUNDS.TXT. Don't
  1565.                 confuse these with ambient sounds, which are used with the
  1566.                 AMBIENT_SOUND (hitag 1002) ST1. If SOUND_SPOT is placed in a
  1567.                 sector object operational sector, the 1st sound (TAG4) will
  1568.                 be the 'idle' sound. The 2nd sound (TAG5) will be the 'drive'
  1569.                 sound. IMPORTANT: The match tag (TAG2) will still need to be
  1570.                 a unique value even though the mapper never sets up a trigger
  1571.                 for it. If you do not use a unique value then other
  1572.                 SOUND_SPOTs with the match value will do the same sound
  1573.                 processing. This could be used as a feature - drive something
  1574.                 and something else on the level makes a noise. Note that you
  1575.                 can specify 3 different sounds. Some things like vators can
  1576.                 have more than one sound attached for different operations
  1577.                 such as moving to the ON and OFF positions. Most of the time
  1578.                 only the 1st sound (TAG4) will be used.
  1579.                 EXAMPLES: DB, DC, DD, and others in EXAMPLE.MAP
  1580.                 SEE ALSO: AMBIENT_SOUND (hitag 1002)
  1581.  
  1582. Hitag 135:      SLIDE_SECTOR
  1583.                 TAG2 = Speed value. (0 is fastest, 32 is slowest)
  1584.                        Note that the angle of the slope also has an effect on
  1585.                        speed.
  1586.  
  1587.         Tag a sloped sector with this and it will cause the player to
  1588.         slide in the direction of the slope. Actors are not affected. The
  1589.         steeper the slope, and the lower the TAG2 value, the faster the
  1590.         slide. Lo Wang will slide even if he is in the air over the sector.
  1591.         Use with SECT_SPIKE (hitag 106) to create a variable speed slide.
  1592.         EXAMPLES: DF in EXAMPLE.MAP
  1593.  
  1594. Hitag 136:      CEILING_FLOOR_PIC_OVERRIDE
  1595.                 TAG2 = Picnum (from the "V" menu)
  1596.                 TAG3 =  0: Pic override on the ceiling
  1597.                         1: Pic override on the floor
  1598.                 TAG7 = Draw type
  1599.                         0 = normal
  1600.             1 = masked
  1601.             2 = translucent
  1602.                         3 = very translucent
  1603.                 BOOL1=  1: Block hitscans
  1604.  
  1605.         This is primarily used to give a floor or ceiling texture to the
  1606.         floor mirror in room-over-room areas. This is used in Shadow Warrior
  1607.         to create the translucent water, the reflective floors, and the
  1608.         masked grating in $VOLCANO.MAP. A sloped floor cannot have a masked
  1609.         or translucent texture. Use with FLOOR_Z_ADJUST (hitag 98) to keep
  1610.         the player from falling through into the lower area. Actors can
  1611.         stand on it too, but will usually fall through when they are killed.
  1612.         EXAMPLES: AB and AD in EXAMPLE.MAP
  1613.         SEE ALSO: FLOOR_Z_ADJUST (hitag 98)
  1614.         
  1615. Hitag 140:      TRIGGER_SECTOR
  1616.                 TAG2 = Match
  1617.                 TAG3 = Type
  1618.             0 = Trip Entering Sector
  1619.             1 = Trip Leaving Sector
  1620.                         2 = Continuous as long as you're standing on it
  1621.                         3 = Operated with the SPACEBAR
  1622.                 TAG4 = Angle
  1623.                 TAG5 = Trigger definition
  1624.                         0 = Remote sector object trigger
  1625.                         1 = Lava Erupt trigger
  1626.                 TAG7 = Remote sector object number
  1627.                 BOOL1= 0: Player's view follows the sector object
  1628.                        1: Player's view stays at the angle of TRIGGER_SECTOR
  1629.  
  1630.         TRIGGER_SECTOR is only used for two things: driving remote controlled
  1631.         operational sector objects, and triggering LAVA_ERUPT ST1's. BOOL1
  1632.         on the LAVA_ERUPT (hitag 56) sprite must be set to BOOL1 for this
  1633.         trigger to work.
  1634.         EXAMPLES: BF and EF in EXAMPLE.MAP
  1635.         SEE ALSO: SECT_OPERATIONAL (hitag 1), LAVA_ERUPT (hitag 56)
  1636.  
  1637. Hitag 141:      DELETE_SPRITE
  1638.                 TAG2 = Match
  1639.                 BOOL2= Move with a sector object
  1640.  
  1641.         Place a DELETE_SPRITE ST1 at the same x, y location as another
  1642.         sprite. When the TAG2 match is triggered, the sprites at the same
  1643.         x, y will be deleted. Works on most sprites but not all. Some that
  1644.         can be deleted include decoration sprites, vator ST1's, spike ST1's,
  1645.         and room-over-room view sprites.
  1646.         EXAMPLES: DF in EXAMPLE.MAP
  1647.         SEE ALSO: BREAKABLE (hitag 132)
  1648.  
  1649. Hitag 143:      SECT_ROTATOR
  1650.                 TAG2 = Match
  1651.         TAG3 = Type
  1652.                         0 = Manual/Switch/Trigger. If a manual type has a
  1653.                             TAG2 value that is not 0 then ALL rotators,
  1654.                             vators, spikes, or whatever with the same TAG2
  1655.                             will be operated on. Rotators can be manually
  1656.                             operated from on top of sector or alongside of
  1657.                             it. A switch resets when the rotator returns to
  1658.                             its default position. Trigger operation is the
  1659.                             same as a switch but its a floor trigger instead.
  1660.                         1 = Switch/Trigger Only. The rotator cannot be
  1661.                             operated manually. All rotator types with the
  1662.                             same TAG2 value get operated on.
  1663.                 TAG5 = Angle move amount (512 = 90 degrees). Use a negative
  1664.                        value to make the sector rotate counter-clockwise.                       
  1665.                 TAG6 = Match at destination. When a rotator reaches its
  1666.                        destination it will trigger any event with this
  1667.                        match tag.
  1668.                 TAG7 = Angle increment. The speed at which the sector
  1669.                        rotates. Use an unsigned value.
  1670.                 TAG9 = Auto return time in 1/8th of a second resolution.
  1671.                        If non-zero then the sector will return to its default
  1672.                        position after the allotted time. If TAG9=0 then the
  1673.                        sector will remain in the ON position until the
  1674.                        SECT_ROTATOR is operated again.
  1675.                 BOOL2= 1: Can be operated only once.
  1676.                 BOOL4= 0: Can be operated during a WangBang game.
  1677.                        1: Cannot be operated during a WangBang game.
  1678.                 BOOL5= 1: Trigger the TAG6 match when moving to the OFF
  1679.                           position as well as when moving to the ON position.
  1680.                 BOOL6= 0: SECT_ROTATOR cannot be operated again until it's
  1681.                           finished moving.
  1682.                        1: Can operate it again while it's moving.
  1683.                 BOOL11=1: Displays "Single play only" message when
  1684.                           operated in WangBang. Use with BOOL4.
  1685.  
  1686.         SECT_ROTATOR is used primarily to create rotating (swinging) doors,
  1687.         although it has many other potential uses. Any number of red
  1688.         sector walls of any shape can be rotated simultaneously around a
  1689.         single pivot point, defined by SECT_ROTATOR_PIVOT (hitag 144). 
  1690.         EXAMPLES: EA in EXAMPLE.MAP
  1691.         SEE ALSO: SECT_ROTATOR_PIVOT (hitag 144), SECT_VATOR (hitag 92),
  1692.                   SECT_SPIKE (hitag 106), SECT_SLIDOR (hitag 145).
  1693.  
  1694. Hitag 144:      SECT_ROTATOR_PIVOT
  1695.                 TAG2 = Match
  1696.  
  1697.         The CLOSEST SECT_ROTATOR (hitag 143) with same matching TAG2 will
  1698.         rotate about this sprite.
  1699.         EXAMPLES: EA in EXAMPLE.MAP
  1700.         SEE ALSO: SECT_ROTATOR (hitag 143)
  1701.  
  1702. Hitag 145:      SECT_SLIDOR
  1703.                 TAG2 = Match
  1704.         TAG3 = Type
  1705.                         0 = Manual/Switch/Trigger - primarily used for manual
  1706.                             type. If a manual type has a match tag that is
  1707.                             not 0 then ALL slidors with the same match type
  1708.                             will be operated on. A slidor can be manually
  1709.                             operated from either within the sector, or to the
  1710.                             side. With switch operation, the switch resets
  1711.                             when the slidor goes to default position. With
  1712.                             trigger operation, it's the same as a switch but
  1713.                             it's a floor trigger.
  1714.                         1 = Switch/Trigger Only - cannot be operated manually
  1715.                             ALL slidors with the same matching tag get
  1716.                             operated on by the switch or trigger.
  1717.                 TAG5 = Distance to move (largest grid square is 1024).
  1718.                 TAG6 = Match at destination. When a slidor reaches its
  1719.                        destination it will trigger any event with this
  1720.                        match tag.
  1721.                 TAG7 = Move speed
  1722.                 TAG8 = Acceleration at which slidor approaches TAG7 speed.
  1723.                 TAG9 = Auto return time - 1/8th of a second resolution - if
  1724.                        non 0 then the slidor will return to its default
  1725.                        position after the allotted time. If 0 then it will
  1726.                        stay in the ON position until the slidor is operated
  1727.                        again.
  1728.                 BOOL2= 1: Can only operate the slidor once.
  1729.                 BOOL3= 1: Don't crush the player. WARNING: Never let a white
  1730.                           walled slidor crush the player, or the game will
  1731.                           quit with an error.
  1732.                 BOOL4= 0: Slidor can be operated during a WangBang game.
  1733.                        1: Slidor cannot be operated during a WangBang game.
  1734.                 BOOL5= 1: Insta-Close(TM) feature. Tired of not being able to
  1735.                           run through sliding doors in BUILD 3D mode? Leave
  1736.                           them open and let Shadow Warrior close them for
  1737.                           you. BOOL5 uses the position of the SECT_SLIDOR
  1738.                           sprite to close the doors.
  1739.                 BOOL6= 0: Slidor cannot be operated again until it stops
  1740.                           moving.
  1741.                        1: Can operate the slidor again while it's in motion.
  1742.                 BOOL7= 1: Call the TAG6 match when moving to the OFF position
  1743.                           as well as when moving to the ON position.
  1744.                 BOOL11=1: Displays "Single play only" message when
  1745.                           operated in WangBang. Use with BOOL4.
  1746.         
  1747.         Use SECT_SLIDOR to create sliding or split doors. Several different
  1748.         types can be built, both with red walls and with white walls.
  1749.         Look to the game maps for various examples. IMPORTANT: The walls
  1750.         that form the edges of the door must be tagged properly in order for
  1751.         the slidor to work. If, in 2D mode, the door slides to the left, tag
  1752.         the wall TAG_WALL_SLIDOR_LEFT (walltag 220), if it slides to the
  1753.         right, tag the wall TAG_WALL_SLIDOR_RIGHT (walltag 221), if it slides
  1754.         upwards, tag it TAG_WALL_SLIDOR_TOP (walltag 222), and if it slides
  1755.         downwards, tag it TAG_WALL_SLIDOR_BOTTOM (walltag 223).
  1756.         EXAMPLES: EA in EXAMPLE.MAP
  1757.         SEE ALSO: SECT_ROTATOR (hitag 143), SECT_VATOR (hitag 92),
  1758.                   SECT_SPIKE (hitag 106)
  1759.  
  1760. Hitag 146:      SECT_CHANGOR
  1761.                 TAG2 = Match
  1762.                 TAG4 = New picnum
  1763.                 TAG5 = Z adjustment in pixels - can be negative
  1764.                 TAG6 = Slope adjustment       - can be negative
  1765.                 TAG7 = New shade value        - can be negative
  1766.                 TAG8 = New palette value
  1767.                 TAG9 = New visibility value   - can be negative
  1768.                 BOOL1= 0: Affect the floor
  1769.                        1: Affect the ceiling
  1770.                 BOOL2= 1: Do not kill this sprite after using once.
  1771.                           By default it is killed after one use.
  1772.  
  1773.         Change attibutes of sector when match code is called. Can be used
  1774.         to create breakable floor or ceiling textures, or other special
  1775.         effects. Most commonly used for shootable lights.
  1776.         EXAMPLES: EB in EXAMPLE.MAP
  1777.         SEE ALSO: SECT_COPY_DEST (hitag 58), SECT_COPY_SOURCE (hitag 59)
  1778.  
  1779. Hitag 147:      SO_DRIVABLE_ATTRIB
  1780.                 TAG2 = Angle speed (1 to 16384)
  1781.                        0 provides a default speed
  1782.                 TAG3 = Angle "slide" amount (1 to 100)
  1783.                 TAG5 = Match triggered when the driveable is operated with
  1784.                        the SPACEBAR.
  1785.                 TAG6 = Movement speed (1 to 16384)
  1786.                        0 provides a default speed
  1787.                 TAG7 = Movement "slide" amount (1 to 100)
  1788.                 BOOL1= 1: Don't shake the screen when running into something
  1789.                 BOOL2= 1: Trigger match tag TAG5 + 1 when the player
  1790.                           presses SPACEBAR to stop driving the sector object
  1791.                 BOOL3= 1: Sector object can only be driven from a remote
  1792.                           TRIGGER_SECTOR (hitag 140)
  1793.                 BOOL4= 1: Rectangular clipping - the outer 504 bounding
  1794.                           wall loop of the sector object serves as the
  1795.                           clipping box. The wall loop MUST be a 4 wall
  1796.                           rectangle. This is the only alternative to the
  1797.                           default clipping provided by the operational code.
  1798.                           This clipping is better behaved because it never
  1799.                           allows the sector object to cross sector lines.
  1800.  
  1801.         This ST1 provides some additional control over the behavior of
  1802.         driveable sector objects. It allows speed and angle velocities to be
  1803.         scaled, and adds momentum with TAG3 and TAG7 to make the driving
  1804.         a little more realistic. Must be placed in the center tagged
  1805.         sector of the sector object.
  1806.         EXAMPLES: EF in EXAMPLES.MAP
  1807.         SEE ALSO: SECT_OPERATIONAL (hitag 1), SECT_SO_DONT_ROTATE (hitag 45),
  1808.                   SO_LIMIT_TURN (hitag 68), SO_TURN_SPEED (hitag 55)
  1809.  
  1810. Hitag 148:      WALL_DONT_STICK
  1811.                 TAG4 = Point sprite at wall
  1812.         
  1813.         Point this at a wall, and nothing will stick to that wall. This keeps
  1814.         bullet holes, blood, sticky bombs, and so forth from landing on the
  1815.         wall.
  1816.         EXAMPLES: BB in EXAMPLE.MAP
  1817.  
  1818. Hitag 149:      SPAWN_ITEMS
  1819.                 TAG2 = Match
  1820.                 TAG3 = Item to spawn:
  1821.             0/32 = Uzi
  1822.             1 = Red Key
  1823.             2 = Blue Key
  1824.             3 = Green Key
  1825.             4 = Yellow Key
  1826.             5 = Red Card
  1827.             6 = Blue Card
  1828.             7 = Green Card
  1829.             8 = Yellow Card
  1830.                         9 = Gold Skeleton Key
  1831.                         10 = Silver Skeleton Key
  1832.                         11 = Bronze Skeleton Key
  1833.                         12 = Red Skeleton Key
  1834.             20 = Uzi for Floor
  1835.             40 = Repair Kit
  1836.                         41 = Shurikens
  1837.                         42 = Sticky Mines
  1838.             43 = Rocket Launcher
  1839.             44 = Rocket Battery
  1840.             45 = Grenade Launcher
  1841.             46 = Grenades
  1842.             47 = Rail Gun
  1843.             48 = Rail Ammo
  1844.             51 = Shotgun
  1845.             52 = Shotgun Ammo
  1846.             53 = Head
  1847.             55 = Heart
  1848.                         57 = Gray Armor (can't spawn red armor)
  1849.                         58 = Portable Medkit
  1850.                         59 = Small Medkit
  1851.             60 = Chem Bomb
  1852.             61 = Flash Bomb
  1853.             62 = Nuke
  1854.             63 = Caltrops
  1855.             64 = Cookie
  1856.             65 = Heat seeker card
  1857.             66 = Cloak
  1858.             67 = Night Vision
  1859.             90 = Boy Bunny
  1860.             91 = Girl Bunny
  1861.             92 = Random Bunny
  1862.                 TAG4 = Angle to throw the item
  1863.                 TAG7 = Velocity 0 to 255
  1864.                        Set to 0 and the item stays in place
  1865.                 TAG8 = Jump velocity 0 to 255
  1866.                 BOOL1= 0: Kill the ST1 after it's triggered
  1867.                        1: Don't kill after it's triggered
  1868.                 BOOL2= 1: Don't spawn another item if a sprite exists in
  1869.                           the exact position of the SPAWN_ITEMS sprite.
  1870.  
  1871.         This is used to spawn an item when the TAG2 match is triggered.
  1872.         Used for placing items in trash cans, dropping items from the sky,
  1873.         and any number of cool uses. Flag the ST1 as a Multiplayer only
  1874.         item (F8 menu, option 2), and the item will only spawn during a
  1875.         WangBang game.
  1876.         EXAMPLES: EB in EXAMPLE.MAP
  1877.         SEE ALSO: SPAWN_SPOT (hitag 69)
  1878.  
  1879. Hitag 150:      STOP_SPOUND_SPOT
  1880.                 TAG2 = Match
  1881.                 TAG5 = Matched sound spot to stop
  1882.  
  1883.         Use this to stop a looping sound when TAG2 is triggered. TAG5 is the
  1884.         TAG2 match tag of the SOUND_SPOT (hitag 134) to be stopped.
  1885.         EXAMPLES: EB in EXAMPLE.MAP
  1886.         SEE ALSO: SOUND_SPOT (hitag 134)
  1887.  
  1888. Hitag 202:      BOUND_FLOOR_BASE_OFFSET
  1889.                 TAG2 = Bound Floor # - First one is 0, then 1, 2, etc.
  1890.  
  1891.         All areas with this tag in them set up a new BASE OFFSET to
  1892.         move other areas to. TAG2 is the order in which they are processed.
  1893.         Consider this to be the "anchor" to which BOUND_FLOOR_OFFSET
  1894.         (hitag 203) areas are moved.
  1895.         EXAMPLES: AB, AC, FB, and FC in EXAMPLE.MAP
  1896.         SEE ALSO: BOUND_FLOOR_OFFSET (hitag 203)
  1897.  
  1898. Hitag 203:      BOUND_FLOOR_OFFSET
  1899.                 TAG2 = Bound Floor # = First one is 0, then 1, 2, etc.
  1900.  
  1901.         All bound areas with this tag in them are moved to the last
  1902.         BOUND_FLOOR_BASE_OFFSET sprite. "Bound" areas means all sectors
  1903.         that are either directly or indirectly attached to the sector
  1904.         with BOUND_FLOOR_OFFSET in it. This allows you to build stacked
  1905.         sectors separately and let Shadow Warrior overlap them for you.
  1906.         Useful mainly for room-over-room and special dive sector cases.
  1907.         If a sector object is part of a bound floor group, it can have
  1908.         a matching 504 wall loop in the bound floor base group, which
  1909.         will move and behave exactly like the sector object. This is
  1910.         incredibly useful for a variety of effects, like the bottom of a
  1911.         boat in the underwater sector stays with the boat in the upper
  1912.         sector, and so on.
  1913.         EXAMPLES: AD, AE, FE, and FF in EXAMPLE.MAP
  1914.         SEE ALSO: BOUND_FLOOR_BASE_OFFSET (hitag 202)
  1915.  
  1916. Hitags 500-596: SECT_SO_BOUNDING
  1917.  
  1918.         Bounding sprites for sector objects. Every sector object needs
  1919.         bounding sprites, one in the upper left corner (BOUND_SO_UPPER)
  1920.         and one in the lower right corner (BOUND_SO_LOWER). These two
  1921.         sprites form the opposing points of an imaginary rectangle that
  1922.         must encompass the entire sector object, plus any sprites you
  1923.         want to move with it (like a gun barrel.) You are allowed to
  1924.         have a maximum of 20 sector objects in a level. The
  1925.         BOUND_SO_UPPER sprite hitag of a sector object is calculated as
  1926.         500 + (5 * sector object #). The BOUND_SO_LOWER sprite hitag of
  1927.         a sector object is calculated as 501 + (5 * sector object #).
  1928.         So, sector object 0 uses BOUND_SO_UPPER 500 and BOUND_SO_LOWER
  1929.         501. Sector object 1 uses BOUND_SO_UPPER 505 and BOUND_SO_LOWER
  1930.         506. This goes up in increments of 5 all the way to sector
  1931.         object 19, which uses BOUND_SO_UPPER 595 and BOUND_SO_LOWER 596.
  1932.         EXAMPLES: EC, ED, EE, EF, FA, FB, and FC in EXAMPLE.MAP
  1933.  
  1934. Hitag 1000:     MIRROR_CAM
  1935.                 TAG2 = Match tag
  1936.                 TAG4 = Angle of camera
  1937.                 TAG6 = Camera maximum turn angle from 0-2048. This is the angle
  1938.                        from center that the camera will rotate back and forth.
  1939.                        (512 = 90 degrees each way for 180 degrees range
  1940.                        of motion)
  1941.                 TAG7 = Camera look up/down amount. Valid values (5-195).
  1942.                 BOOL1= 0: Draw monitor to look like a magic view into another
  1943.                           place, looks more like reality.
  1944.                        1: Draw monitor using draw to tile. This makes it look
  1945.                           like a TV screen.
  1946.                 BOOL2= 0: Don't rotate the camera.
  1947.                        1: Rotate the camera by angle specified in TAG6 from
  1948.                           current camera angle.
  1949.                 BOOL3= 0: Negative turn direction
  1950.                        1: Positive turn direction
  1951.                 BOOL11=When BOOL1 is set to "1":
  1952.                        0: Do normal TV camera view
  1953.                        1: Cycle through all players' views in 5 second
  1954.                           increments on this monitor.
  1955.  
  1956.         The camera's view can be displayed in a monitor built using a mirror.
  1957.         Tag the mirror wall with lotag 306 and a hitag equal to the
  1958.         MIRROR_CAM TAG2 match tag. NOTE: Mirrors MUST be built using one way
  1959.         walls, not masked walls or they won't operate. A TV monitor requires
  1960.         a TV monitor sprite (picnums 3830-3837) with a hitag equal to the
  1961.         MIRROR_CAM TAG2 match tag. The TV monitor sprite must be placed in
  1962.         front of a mirror.
  1963.         EXAMPLES: GB and GC in EXAMPLE.MAP
  1964.  
  1965. Hitag 1002:     AMBIENT_SOUND
  1966.                 TAG2 = Ambient sound number
  1967.     
  1968.         Plays an ambient sound. Look at the ambient sound index in
  1969.         SWSOUNDS.TXT to find the ambient sound number you want.
  1970.         EXAMPLES: EC and ED in EXAMPLE.MAP
  1971.         SEE ALSO: SOUND_SPOT (hitag 134)
  1972.  
  1973. Hitag 1005:     ECHO_SPOT
  1974.                 TAG2 = Reverb setting from 100 - 200
  1975.                 TAG4 = Radius that the reverb effect can be heard
  1976.  
  1977.         Causes all sounds in the area around the ECHO_SPOT to reverb by the
  1978.         amount set in TAG2. Note that there is no reverb available when
  1979.         using a Soundscape.
  1980.         EXAMPLES: $YAMATO.MAP, plus many other game maps
  1981.  
  1982. Hitag 1006:     DRIP_GENERATOR  
  1983.                 TAG2 = Delay in seconds. If 0, then it uses internally
  1984.                        programmed delays (quite fast), otherwise it drips
  1985.                        every TAG2 seconds.
  1986.                 BOOL1= Drip type
  1987.                        0: Blood drips
  1988.                        1: Water drips    
  1989.                 BOOL2= 0: Drips
  1990.                        1: No drips, do a bubble instead
  1991.  
  1992.         Used to create a dripping or bubbling spot. The Z height of the ST1
  1993.         is important, because that's the height where the drip or bubble will
  1994.         spawn.
  1995.         EXAMPLES: AA in EXAMPLE.MAP
  1996.  
  1997.  
  1998. ---------------------------------------
  1999. 2.      The Shadow Warrior Track Sprite
  2000. ---------------------------------------
  2001.  
  2002. Tracks are a powerful feature of Shadow Warrior. Similar to the "Locators"
  2003. in Duke Nukem 3D, tracks are a series of sprites which determine the path
  2004. certain game objects can follow. Sector objects, sprite objects, and
  2005. some actors can follow tracks.
  2006.  
  2007. 2.1     Meet the Track sprites:
  2008.  
  2009. You can find the track sprites in the tileset starting at tile 1900 and
  2010. proceeding all the way up to tile 1999. They are blue numbers counting up
  2011. from 0 to 99. A single track uses one of these tiles, (i.e. track #0 only
  2012. uses tile 1900), so this means you can have up to 100 different tracks in a
  2013. single level. In 2D mode, the sprite will have a sign that reads "T0", "T1",
  2014. or whatever depending on which track # it is.
  2015.  
  2016. 2.2     Building a track:
  2017.  
  2018. Build a track by placing track sprites all along the route you want an
  2019. object to take. All of the track sprites in a single track use the same tile
  2020. (i.e. the sprites for track #0 will all use tile 1900). When an object
  2021. follows a track, it will move in a straight line from one track sprite to the
  2022. next, then change direction and move in a straight line to the next track
  2023. sprite. It will do this around the entire track until it reaches the end, 
  2024. then it will head in a straight line back to the start and begin the process
  2025. all over again. All tracks must loop like this, and a track can never cross
  2026. its own path.
  2027.  
  2028. 2.3     Tagging a track sprite:
  2029.  
  2030. Track sprites only make use of their hitag and lotag. Not all track sprites
  2031. need a lotag, if you want the object to travel to that point, but don't want
  2032. to alter its behavior.
  2033.  
  2034.         2.3.1 Lotag
  2035.  
  2036.         The track sprite's lotag is its "tracktag." It identifies what kind
  2037.         of behavior should occur at that point when an object reaches it
  2038.         while following the track. Different tracktag values allow for
  2039.         changing speeds, bobbing, firing, waiting, and much more.
  2040.  
  2041.         2.3.2 Hitag
  2042.  
  2043.         The hitag is used to give additional information for those tracktags
  2044.         that need it. For instance, TRACK_SET_SPEED (tracktag 702) uses its
  2045.         hightag as the actual speed value.
  2046.  
  2047. 2.4     Using a track:
  2048.  
  2049. Some tracktags only work for sector object, while others only work for
  2050. actors. Most tracktags work for both sector objects and actors.
  2051.  
  2052.         2.4.1 Sector and sprite objects
  2053.  
  2054.         To make a sector object (or a sector object tagged as a sprite
  2055.         object) follow a track, just set the sector hitag of the center
  2056.         sector to the number of the track. So if you've got a track #5
  2057.         in your level, you can make a sector object follow that track by
  2058.         setting the center sector hitag to 5.
  2059.  
  2060.         2.4.2 Actors
  2061.  
  2062.         Some actors will follow a track, with varying degrees of success.
  2063.         To make an actor follow a track, give the actor sprite a lotag
  2064.         of 30000 + the track number. So to make a green guardian follow
  2065.         track #10, you would give him a lotag of 30010. Angle the actor to
  2066.         the right to make him move in the forward direction (from start to
  2067.         end) or angle the actor to the left to make him move in the backward
  2068.         direction (from end to start.)
  2069.  
  2070. 2.5     Tracktag function reference:
  2071.  
  2072. Examples of most of these can be found throughout Shadow Warrior. A few
  2073. simple tracktags are also demonstrated in EXAMPLE.MAP.
  2074.  
  2075. Lotag 700:      TRACK_START
  2076.  
  2077.         Every track needs a TRACK_START and a TRACK_END (tracktag 701).
  2078.         This is the first sprite on a track, and it marks the beginning.
  2079.  
  2080. Lotag 701:      TRACK_END
  2081.  
  2082.         Every track needs a TRACK_START (tracktag 700) and a TRACK_END.
  2083.         This is the last sprite on a track. When an object encounters this,
  2084.         it loops back to the TRACK_START.
  2085.                 
  2086. Lotag 702:      TRACK_SET_SPEED         
  2087.                 Hitag = Target speed (0 to 128)
  2088.  
  2089.         Set the target speed at this point. Setting the hitag to 0 is a good
  2090.         way to make sure the object stops moving once it reaches this
  2091.         point. (See the boat in $WHIRL.MAP)
  2092.  
  2093. Lotag 703:      TRACK_STOP
  2094.                 Hitag = Seconds to stop
  2095.  
  2096.         Object will pause at this point on the track for the number of
  2097.         seconds in the hitag.
  2098.  
  2099. Lotag 704:      TRACK_REVERSE
  2100.  
  2101.         Reverses the object's direction. It will now travel along the
  2102.         track in the opposite direction. Causes some tags to have an
  2103.         opposite effect (e.g. tracktags 705 and 706)
  2104.  
  2105. Lotag 705:      TRACK_SPEED_UP
  2106.                 Hitag = Speed offset (0 to 128)
  2107.  
  2108.         Target speed will increase by the amount in the hitag.
  2109.  
  2110. Lotag 706:      TRACK_SLOW_DOWN
  2111.                 Hitag = Speed offset (0 to 128)
  2112.  
  2113.         Target speed will decrease by the amount in the hitag.
  2114.         
  2115. Lotag 707:      TRACK_VEL_RATE
  2116.                 Hitag = Acceleration (1 to 12, default 6)
  2117.  
  2118.         The rate at which the actual speed approaches the target speed.
  2119.  
  2120. Lotag 709:      TRACK_ZUP
  2121.                 Hitag = Pixel amount
  2122.  
  2123.         Moves the floor of the object up by the number of pixels in the
  2124.         hitag.
  2125.  
  2126. Lotag 710:      TRACK_ZDOWN
  2127.                 Hitag = Pixel amount
  2128.  
  2129.         Moves the floor of the object down by the number of pixels in the
  2130.         hitag.
  2131.  
  2132. Lotag 711:      TRACK_ZRATE
  2133.                 Hitag = Rate
  2134.  
  2135.         Sets the rate at which TRACK_ZUP/TRACK_ZDOWN moves. Defaults to 256.
  2136.  
  2137. Lotag 712:      TRACK_ZDIFF_MODE
  2138.                 Hitag = Z offset
  2139.  
  2140.         Special mode where the object looks at the Z-height of the next track
  2141.         point and moves up or down to achieve the destination. In the hitag
  2142.         is a negative delta Z from the placement of the track sprites Z
  2143.         value.
  2144.  
  2145. Lotag 715:      TRACK_SPIN
  2146.                 Hitag = Spin speed
  2147.  
  2148.         Object spins clockwise as it goes along its track.
  2149.  
  2150. Lotag 716:      TRACK_SPIN_STOP
  2151.                 Hitag = Angle (0 to 2048)
  2152.  
  2153.         Object stops spinning. It will then point in the direction indicated
  2154.         by the hitag.
  2155.  
  2156. Lotag 717:      TRACK_BOB_START
  2157.                 Hitag = Pixel height to bob
  2158.  
  2159.         Causes a sector object to start bobbing up and down like a cork.
  2160.  
  2161. Lotag 718:      TRACK_BOB_SPEED
  2162.                 Hitag = Speed at which to bob
  2163.  
  2164.         Sets the speed at which a sector object will bob.
  2165.  
  2166. Lotag 719:      TRACK_BOB_STOP
  2167.  
  2168.         The sector object will stop bobbing.
  2169.  
  2170. Lotag 720:      TRACK_SPIN_REVERSE 
  2171.                 Hitag = Spin speed
  2172.  
  2173.         Object spins counter-clockwise as it goes along its track.
  2174.  
  2175. Lotag 723:      TRACK_SO_SINK
  2176.                 Hitag = Speed of sinking
  2177.  
  2178.         Start sector object sinking to ST1 SECT_SO_SINK_DEST (hitag 33).
  2179.         Will sink at the speed in the hitag. Look at the boat in $WHIRL.MAP
  2180.         for an example.
  2181.  
  2182. Lotag 724:      TRACK_SO_FORM_WHIRLPOOL
  2183.  
  2184.         Will cause a sector object to lower the sectors tagged with
  2185.         SECT_SO_FORM_WHIRLPOOL (hitag 37) ST1. Look at the boat in
  2186.         $WHIRL.MAP for an example.
  2187.  
  2188. Lotag 725:      TRACK_MOVE_VERTICAL
  2189.                 Hitag = Speed of movement - default is 256
  2190.  
  2191.         Move sprite objects (not sector objects) straight up or down in the
  2192.         Z direction to the next point's Z height then continue along the
  2193.         track.
  2194.  
  2195. Lotag 726:      TRACK_WAIT_FOR_EVENT
  2196.                 Hitag = Match
  2197.  
  2198.         Object will wait at this point on the track for a trigger or switch
  2199.         to be activated. Most types of triggers and switches with the same
  2200.         match tag can be used to free the sector object to continue. Look
  2201.         at the moving crane in $SEABASE.MAP for an example.
  2202.  
  2203. Lotag 728:      TRACK_MATCH_EVERYTHING
  2204.                 Hitag = Match
  2205.  
  2206.         When the object or actor reaches this point, it will trigger
  2207.         everything with this match tag.
  2208.  
  2209. Lotag 729:      TRACK_MATCH_EVERYTHING_ONCE
  2210.                 Hitag = Match
  2211.  
  2212.         When the object or actor reaches this point, it will trigger
  2213.         everything with this match tag once, and never again.
  2214.  
  2215. Lotag 751:      TRACK_ACTOR_STOP
  2216.                 Hitag = Seconds
  2217.  
  2218.         Causes an actor to stop for the number of seconds in the hitag.
  2219.  
  2220. Lotag 752:      TRACK_ACTOR_REVERSE
  2221.  
  2222.         Reverses the actor's direction. It will now travel along the
  2223.         track in the opposite direction. Note that tracktags 753 and
  2224.         754 will have the opposite effect when traveling the reverse
  2225.         direction
  2226.  
  2227. Lotag 753:      TRACK_ACTOR_SPEED_UP
  2228.                 Hitag = Speed offset (0 to 128)
  2229.  
  2230.         The actor's target speed will increase by the amount in the hitag.
  2231.  
  2232. Lotag 754:      TRACK_ACTOR_SLOW_DOWN
  2233.                 Hitag = Speed offset (0 to 128)
  2234.  
  2235.         The actor's target speed will decrease by the amount in the hitag.
  2236.         
  2237. Lotag 755:      TRACK_ACTOR_VEL_RATE
  2238.                 Hitag = Acceleration (1 to 12, default 6)
  2239.  
  2240.         The rate at which the actor's actual speed approaches the target
  2241.         speed.
  2242.         
  2243. Lotag 771:      TRACK_ACTOR_JUMP
  2244.                 Hitag = Height to jump (default 384)
  2245.  
  2246.         Actor will jump. Only works with actors who can jump, like evil
  2247.         ninjas, rippers, and bunnies.
  2248.  
  2249. Lotag 772:      TRACK_ACTOR_CRAWL
  2250.  
  2251.         Causes an actor to crawl. Only works with evil ninjas.
  2252.  
  2253. Lotag 780:      TRACK_ACTOR_CLOSE_ATTACK1
  2254.  
  2255.         An actor will do his close range attack, like the sword attack in the
  2256.         case of the green guardian.
  2257.  
  2258. Lotag 782:      TRACK_ACTOR_ATTACK1
  2259.  
  2260.         An actor will do his long range attack, like shooting fireballs in
  2261.         the case of the green guardian.
  2262.  
  2263. Lotag 791:      TRACK_ACTOR_OPERATE
  2264.                 
  2265.         Point the track sprite angle in the direction of the operable
  2266.         sector, wall, or switch. Actor will operate the switch, door, or
  2267.         whatever, just like a player pressing SPACEBAR. May only work in
  2268.         certain cases.
  2269.  
  2270. Lotag 792:      TRACK_ACTOR_CLIMB_LADDER
  2271.  
  2272.         The track sprite angle must be facing the ladder. Only evil ninjas
  2273.         can climb ladders.
  2274.  
  2275. Lotag 799:      TRACK_ACTOR_WAIT_FOR_PLAYER
  2276.                 Hitag = Range (Largest grid square = 1024)
  2277.  
  2278.         The actor will wait for the player to come into range before moving
  2279.         from this point. Look at the rabbit on the mountain in $SHRINE.MAP
  2280.         for an example of this.
  2281.  
  2282.  
  2283. -------------------------------
  2284. 3.      Other Important Sprites
  2285. -------------------------------
  2286.  
  2287. 3.1     Actors:
  2288.  
  2289.         3.1.1 Hornets (picnum 800)
  2290.  
  2291.         Use a sprite with picnum 800 to place a hornet in your map.
  2292.  
  2293.         3.1.2 Bouncing Betty (picnum 817)
  2294.  
  2295.         This sprite also comes in voxel (3D sprite) format. This actor is
  2296.         functionally the same as an "Accursed Head." A betty can be tagged
  2297.         to produce different effects. Set the HITAG to these values for
  2298.         the following effects:
  2299.  
  2300.         Hitag 0:        Explosion (The betty just explodes)
  2301.  
  2302.         Hitag 1:        ChemBombs
  2303.                         Lotag = # of chembombs to spawn (max 3, default 2)
  2304.  
  2305.         Hitag 2:        Caltrops
  2306.                         Lotag = # of caltrops to spawn (max 10, default 5)
  2307.  
  2308.         Hitag 3:        Flash effect (blinds the player like a FlashBomb)
  2309.                         
  2310.         Hitag 4:        Grenades
  2311.                         Lotag = # of grenades to spawn (max 10, default 5)
  2312.  
  2313.         3.1.3   Accursed Head (picnum 820)
  2314.  
  2315.         These are functionally the same as a bouncing betty and can be
  2316.         tagged similarly. (see above)
  2317.  
  2318.         3.1.4   Sumo Boss (picnum 1210)
  2319.  
  2320.         If you set the sprite's palette to 16, he will be a "mini-boss,"
  2321.         which is smaller and less powerful.
  2322.  
  2323.         3.1.5   Serpent Boss (picnum 1300)
  2324.  
  2325.         If you set the sprite's palette to 16, he will be a "mini-boss,"
  2326.         which is smaller and less powerful.
  2327.  
  2328.         3.1.6   Coolie (picnum 1400)
  2329.  
  2330.         Use a sprite with picnum 1400 to place a coolie in your map.
  2331.  
  2332.         3.1.7   Coolie Ghost (picnum 1441)
  2333.  
  2334.         Use a sprite with picnum 1441 to place a coolie ghost in your map.
  2335.  
  2336.         3.1.8   Green Guardian (picnum 1469)
  2337.  
  2338.         Use a sprite with picnum 1469 to place a guardian in your map.
  2339.  
  2340.         3.1.9   Little Ripper (picnum 1580)
  2341.  
  2342.         If you set the sprite's palette to 7, he will become a big boss
  2343.         ripper.
  2344.  
  2345.         3.1.10  Fish (picnum 3780)
  2346.  
  2347.         Use a sprite with picnum 3780 to place a fish in your map.
  2348.  
  2349.         3.1.11  Evil Ninja (picnum 4096)
  2350.  
  2351.         You can set the palette on an Evil Ninja to make him fire different
  2352.         kinds of weaponry.
  2353.  
  2354.         Palette  0: Default. His pants appear blue in BUILD, but will be
  2355.                     brown in the game. This ninja throws shurikens.
  2356.         Palette 17: Gray ninja. He's tough and fires grenades.
  2357.         Palette 19: Red ninja. He's tough and fires rockets.
  2358.         Palette 21: Shadow ninja. He's really tough and can fire two kinds
  2359.                     of napalm, plus use flash bombs.
  2360.         Palette 24: Orange ninja. Like a red ninja but fires heat seeking
  2361.                     rockets.
  2362.  
  2363.         3.1.12  Crouching Evil Ninja (picnum 4162)
  2364.  
  2365.         This type of ninja stays crouched except to fire at the player. This
  2366.         is great for ducking behind crates and whatnot. His palette can be
  2367.         set just like the regular evil ninja, and he will take on the
  2368.         toughness of that color, but he won't fire the heavy weaponry.
  2369.  
  2370.         3.1.13  Big Ripper (picnum 4320)
  2371.  
  2372.         If you set the sprite's palette to 7, he will become a big boss
  2373.         ripper.
  2374.  
  2375.         3.1.14  Bunny (picnum 4550)
  2376.  
  2377.         Bunnies come in three flavors. Set their palette to define which
  2378.         kind the actor is. You can also scale a bunny down to make it
  2379.         younger. It will grow into an adult before mating.
  2380.  
  2381.         Palette  0: Female bunny. Appears blue in BUILD but will be light
  2382.                     brown in the game.
  2383.         Palette 17: White bunny. Monty Python style killer rabbit.
  2384.         Palette 24: Male bunny. Orange-brown colored.
  2385.  
  2386.         3.1.15  Female Warrior (picnum 5162)
  2387.  
  2388.         Use a sprite with picnum 5162 to place a female warrior in your map.
  2389.  
  2390.         3.1.16  Zilla Boss (picnum 5426)
  2391.  
  2392.         Use a sprite with picnum 5426 to place a Zilla boss in your map.
  2393.         There is no mini-boss version of Zilla.
  2394.  
  2395.         3.1.17  Leaders And Followers
  2396.  
  2397.         Give an actor a hitag of 1008 and it will be part of a group
  2398.         mentality. If the actor has a lotag of 1, it will be a follower,
  2399.         while if it has a lotag of 2, it will be a leader. Followers will
  2400.         hover around the nearest leader unless the player is within range.
  2401.         This works especially well with rippers and fish.
  2402.  
  2403.         3.1.18  Spawning Actors With A Trigger
  2404.  
  2405.         Give any actor TAG_SPAWN_ACTOR (lotag 203), and it will not appear
  2406.         in the map immediately when you start out. The hitag of the actor is
  2407.         a match tag. When that match tag is triggered, with a floor trigger
  2408.         or a switch or whatever, the actor will be magically teleported in.
  2409.  
  2410. 3.2     Cracks (TAG_SPRITE_HIT_MATCH):
  2411.  
  2412. Any sprite in the game can be given a lotag of 257 and it will then become a
  2413. TAG_SPRITE_HIT_MATCH. This means that when the sprite is shot by the player,
  2414. it will trigger any event matched to the hitag of the TAG_SPRITE_HIT_MATCH
  2415. sprite. By default, the sprite will be invisible, unless it uses picnum 80,
  2416. in which case it will be visible. Picnum 188 is another crack sprite,
  2417. designed to be usable on ceilings or floors, but it will still be invisible
  2418. by default. Here's the info:
  2419.  
  2420. Lotag 257:      TAG_SPRITE_HIT_MATCH
  2421.                 Hitag = Match. Can trigger anything.
  2422.                 TAG3  = Default is 32. The larger this number, the more
  2423.                         sensitive the sprite is to explosion radius.
  2424.                 TAG7  = Reacts to ammo type:
  2425.                         0: Default. React only to explosions with radius
  2426.                            damage.
  2427.                         1: React only to a direct hit by a weapon with
  2428.                            explosive radius. (e.g. Hit it directly with a
  2429.                            rocket)
  2430.                         2: React to any explosive weapon or any hitscan
  2431.                            weapon (uzis or shotgun).
  2432.                         3: React to any weapon hit, including shurikens,
  2433.                            sword, and fist.
  2434.                         4: React only to sector object weapon fire. This
  2435.                            means any type of sector object weapon, including
  2436.                            machine gun.
  2437.                 TAG8  = This is kind of a weird tag. Add the numbers of the
  2438.                         effects you want together and put the total in TAG8:
  2439.                         +1: Force the sprite to be invisible
  2440.                         +2: Force the sprite to be visible
  2441.                         +4: Do not kill this sprite when it is hit. Can be
  2442.                             triggered over and over again
  2443.                         +8: Bouncing a grenade off of the sprite counts as a
  2444.                             hit 
  2445. EXAMPLES: Rooms CA and EB in EXAMPLE.MAP.
  2446.  
  2447. 3.3     Switches: (picnums 551-584)
  2448.  
  2449. Any sprite can be tagged as a switch, but it will only animate if it's using
  2450. one of the picnums (551-584). There are several different switch tags, used
  2451. to activate different types of events. A switch sprite's lotag identifies
  2452. what kind of switch it is, while its hitag is a match tag to the event you
  2453. wish to trigger. In most cases a switch will not make a sound. You must place
  2454. a SOUND_SPOT (hitag 134) ST1 nearby with a TAG2 that matches the switch's
  2455. hitag. I recommend sound #201 for most switches. Here is a list of the
  2456. different switch lotags you can use:
  2457.  
  2458. Lotag 206:      TAG_SPRITE_SWITCH_VATOR
  2459.                 Hitag = Match
  2460.  
  2461.         This switch is used to activate vators, spikes, rotators, and
  2462.         slidors - basically any kind of door. This is the best switch to use
  2463.         with a door because multiple switches with the same match will
  2464.         animate, and the switch pays attention to auto-closing doors, doors
  2465.         that have a player holding them open, etc. etc. When placing the
  2466.         switch in the BUILD editor, be sure to use the frame that matches
  2467.         the door's starting position. For instance, if BOOL1 is set to "1" on
  2468.         a vator, be sure to use the second frame of a switch, because that
  2469.         door considers itself to be "on." Otherwise, the switch might not
  2470.         animate the first time you operate it.
  2471.  
  2472. Lotag 210:      TAG_LIGHT_SWITCH
  2473.                 Hitag = Match
  2474.  
  2475.         This switch can only be used to activate LIGHTING (hitag 108) ST1's,
  2476.         but there's no real good reason to do this, since a
  2477.         TAG_SWITCH_EVERYTHING (lotag 211) will work just as well. It's only
  2478.         included here because you'll find it in several Shadow Warrior maps.
  2479.  
  2480. Lotag 211:      TAG_SWITCH_EVERYTHING
  2481.                 Hitag = Match
  2482.  
  2483.         This switch is the one you will use most often, because it can
  2484.         trigger any event in the game.
  2485.  
  2486. Lotag 212:      TAG_SWITCH_EVERYTHING_ONCE
  2487.                 Hitag = Match
  2488.  
  2489.         This is the same as TAG_SWITCH_EVERYTHING (lotag 211) in that it can
  2490.         be used to trigger any event, but this switch can only be activated
  2491.         once, and never again.
  2492.  
  2493. Lotag 213:      TAG_COMBO_SWITCH_EVERYTHING
  2494.                 Hitag = Match
  2495.                 TAG3  = 0: The switch must be off to trigger the event
  2496.                         1: The switch must be on to trigger the event
  2497.  
  2498.         Every COMBO switch in the level with the same hitag must be in the
  2499.         state specified by their TAG3 before the event will be triggered.
  2500.         This switch can trigger any event. COMBO switches make sound
  2501.         automatically, without a SOUND_SPOT (hitag 134) ST1.
  2502.  
  2503. Lotag 214:      TAG_COMBO_SWITCH_EVERYTHING_ONCE
  2504.                 Hitag = Match
  2505.                 TAG3  = 0: The switch must be off to trigger the event
  2506.                         1: The switch must be on to trigger the event
  2507.  
  2508.         Every COMBO switch in the level with the same hitag must be in the
  2509.         state specified by their TAG3 before the event will be triggered.
  2510.         This switch can trigger any event. COMBO switches make sound
  2511.         automatically, without a SOUND_SPOT (hitag 134) ST1. Once the combo
  2512.         is properly triggered, it can never be triggered again.
  2513.  
  2514. Lotag 216:      TAG_SPAWN_ACTOR_SWITCH
  2515.                 Hitag = Match
  2516.  
  2517.         This switch can only be used to spawn actors with a lotag of 203.
  2518.         The actors and the switch must have the same hitag.
  2519.  
  2520. Lotag 304:      TAG_ROTATE_SO_SWITCH
  2521.                 Hitag = # of the sector object to rotate
  2522.  
  2523.         Operating this switch causes a sector object to rotate smoothly
  2524.         clockwise 90 degrees. We never found a place to use this in Shadow
  2525.         Warrior, but it's a pretty cool feature nevertheless. This switch
  2526.         has an automatic sound associated with it, and is demonstrated in
  2527.         EXAMPLE.MAP, room FD.
  2528.  
  2529.         3.3.1   Shootable switch (picnum 577)
  2530.  
  2531.         Switch tile 577 is unique, because it can be shot by the player
  2532.         to activate and deactivate. Don't match this switch to a locked door,
  2533.         though, because the door can be activated by shooting the switch,
  2534.         despite its locked status.
  2535.  
  2536.         3.3.2   Exit switch (picnum 2470)
  2537.  
  2538.         An exit switch causes the level to end when the player operates it,
  2539.         and the bonus or frag screen is displayed. Any switch can be tagged
  2540.         as an exit switch, but tile 2470 is the graphic that Shadow Warrior
  2541.         usually uses. An exit switch must have a lotag of 116. The hitag
  2542.         specifies which level to go to next, but this only works if the
  2543.         map has the same filename as one of the official Shadow Warrior
  2544.         game maps. For a standard external map, a hitag of 0 will suffice.
  2545.  
  2546. 3.4     Keys And Keyholes:
  2547.  
  2548.         3.4.1   Keys (picnums 1765-1779)
  2549.  
  2550.         These are the keys used to unlock doors (ignore the little dog
  2551.         sprites.) You can mix and match key types in a level, but be
  2552.         aware that some keys will overwrite the others in the status bar
  2553.         when the player picks it up. A gold master key will overwrite
  2554.         a red keycard, a silver master key will overwrite a blue keycard,
  2555.         a bronze master key will overwrite a green keycard, and a red
  2556.         master key will overwrite a yellow keycard.
  2557.  
  2558.         3.4.2   Keyholes (picnums 1846, 1850, and 1852)
  2559.  
  2560.         These are the sprites the player operates to unlock a door with
  2561.         a key. Always set the lotag to 29. Set the hitag equal to the lotag
  2562.         of the SECT_LOCK_DOOR (hitag 29) ST1. The BUILD editor will
  2563.         automatically set the palette of the keyhole when you re-enter 3D
  2564.         mode from 2D mode. Use the correct style of keyhole to match the
  2565.         desired key.
  2566.  
  2567. 3.5     TV Monitors: (picnums 3830-3837)
  2568.  
  2569. These sprites are used in conjunction with mirrors and MIRROR_CAM
  2570. (hitag 1000) ST1. Rotate the monitor sprite flat and place it in front of the
  2571. mirror, facing out away from the wall. Give it a hitag equal to TAG2 of the
  2572. MIRROR_CAM. This is only necessary for TV monitors, not for magic monitors.
  2573. See EXAMPLE.MAP for a demonstration of how to build this.
  2574.  
  2575. 3.6     QuickJump And QuickJumpDown
  2576.  
  2577.         3.6.1   QuickJump (picnum 2309)
  2578.  
  2579.         This is a special sector effector. When an actor steps on the QJ
  2580.         sprite, he will jump in the direction the sprite is pointing. This
  2581.         is a good way to get actors to jump up onto ledges, and it looks
  2582.         pretty cool. Only jumping actors (ninjas, bunnies, and rippers) are
  2583.         affected by this.
  2584.  
  2585.         3.6.2   QuickJumpDown (picnum 2310)
  2586.  
  2587.         This is another special sector effector, similar to QuickJump.
  2588.         When an actor steps on the QJD sprite, he will jump down off a
  2589.         ledge in the direction the sprite is pointing. Make ninjas leap
  2590.         down on the player from high ledges. Only jumping actors (ninjas,
  2591.         bunnies, and rippers) are affected by this.
  2592.  
  2593. 3.7     Gratings
  2594.  
  2595.         Gratings can be tagged so the player can operate them by pressing
  2596.         the SPACEBAR on them. Point the grating sprite in the direction you
  2597.         want it to move. The lotag must be 200. The hitag is the distance
  2598.         the sprite will move, 1024 is a good distance. This feature may have
  2599.         other applications.
  2600.  
  2601. 3.8     DeathFlag(tm) Capture the Flag
  2602.  
  2603. Shadow Warrior has a pretty cool Capture the Flag facility that we didn't
  2604. really take advantage of in the game. 
  2605.  
  2606.         3.8.1   The Flag Sprite (picnum 2520)
  2607.                 HITAG= 0:    Default. Flag explodes if carried for longer
  2608.                              than 30 seconds, or if carrier dies. The flag
  2609.                              respawns every 30 seconds.
  2610.                        1003: Flag carrier must die or score before the flag
  2611.                              will respawn back at the base.
  2612.                 LOTAG= Match. When the carrier scores with this flag, this
  2613.                        match tag will be triggered. Reward a score with
  2614.                        free items, trigger a sound, whatever.
  2615.                 TAG5 = If non-zero, the match in TAG6 will be triggered when
  2616.                        this flag is scored this many times. Make a special
  2617.                        reward happen every ten points, or open a secret
  2618.                        passage to the exit when the score reaches 25.
  2619.                 TAG6 = Secondary match. Used with TAG5.
  2620.                 BOOL1= 0: The score is incremented when the carrier enters
  2621.                           the score sector.
  2622.                        1: Do not score when entering the score sector. This
  2623.                           feature can be used for a flag that you just
  2624.                           want to trigger things with, but not score. For
  2625.                           example: a map might have a red base and a blue
  2626.                           base, and a neutral yellow flag. Teams race to
  2627.                           get the yellow flag which when returned to their
  2628.                           base, causes the path to the opposing team's flag
  2629.                           to open up.
  2630.                 PAL:   16: Brown (you must set the flag's palette)
  2631.                        17: Gray
  2632.                        18: Purple
  2633.                        19: Red
  2634.                        20: Yellow
  2635.                        21: Olive
  2636.                        22: Green
  2637.                        23: Blue
  2638.  
  2639.         A level can have multiple flags of any type or color, allowing for a
  2640.         variety of possibilities, including up to eight teams. NOTE: A flag
  2641.         will automatically tag the sector it's in with a sector
  2642.         hitag 9000, and a sector lotag equal to the flag's palette. You
  2643.         can create a scoring sector anywhere in the map in addition to the
  2644.         flag's sector just by using these tags.
  2645.