========================================================================
     The Map Editing FAQ for Shadow Warrior - Version 1.5
       This File is Authored and Copyright (c) 1998 by:
                        Jonah Bishop
      Please See Section 0.10 for Licensing Information
========================================================================

*** PRINTING NOTE: SEE SECTION 0.6 BEFORE PRINTING ***

Table of Contents:

=================
0: ABOUT THIS FAQ
=================
   0.1 Who made all of this?
*  0.2 How can I contact the author?
*  0.3 What you should have gotten
*  0.4 Revision History
   0.5 Credits and Acknowledgements
   0.6 Where to get this FAQ
*  0.7 Printing Information
*  0.8 The Online Version
*  0.9 This FAQ's Home
   0.10 Licensing Information

=========================
1: INFORMATION ABOUT MAPS
=========================
   1.1 What are maps?
   1.2 What do I use to make my own map files?
     1.2.1 Can I make maps for other games with Build?
   1.3 What is so good about this version of Build?

=========================================
2: THINGS YOU SHOULD KNOW BEFORE STARTING
=========================================
   2.1 Introduction
   2.2 2D and 3D Modes
   2.3 Placing Sprites
   2.4 The Special Sprite - ST1
   2.5 The Tagging System
     2.5.1 The 15 Standard Tags
     2.5.2 The 11 BOOLEAN Flags
     2.5.3 TAG1 (The Hitag)
     2.5.4 TAG2 (The Lotag)

=================
3: BASIC TRAINING
=================
   3.1 Now that I have the editor, how do I use it?
   3.2 Making your first level
     3.2.1 Making a one-sector level
     3.2.2 Adding another sector to the level
     3.2.3 Adding textures to the walls/floors/ceilings
       3.2.3.1 Panning the texture
       3.2.3.2 Moving the texture
     3.2.4 Adding sprites to the level
            3.2.4.1 Pasting sprites to the floor, ceiling, or wall
     3.2.5 Raising and Lowering the floor/ceiling
   3.3 The Art of Shading
     3.3.1 Using shading in your level
     3.3.2 Basic shading techniques
   3.4 Level Checklist

=========================
4: MAKING ALL THE EFFECTS
=========================
------------
INTRODUCTION
------------
   4.1 Introduction
-----
DOORS
-----
   4.2 Regular DOOM-Type Doors
   4.3 Swinging Doors
   4.4 Sliding Doors
   4.5 Locked Doors

--------------
WATER AND LAVA
--------------
   4.6 Sinkable Water
   4.7 Diving Water
   4.8 Multi-Sector Diving Water
   4.9 Water Currents
   4.10 The Drip Generator
   4.11 Making Waves
   4.12 Making Lava Eruptions

---------------
TEXTURE EFFECTS
---------------
   4.13 Parallaxing Skies
   4.14 Making Textures Move

---------------
STACKED SECTORS
---------------
   4.15 Stacked Sectors
   4.16 Transparent Water

--------------
SPRITE EFFECTS
--------------
   4.17 Ladders
   4.18 Shooters
   4.19 Making Sprites Destructible (Simple)
   4.20 Making Sprites Destructible (Complex)
   4.21 Automatic Sprite Deletion

-------------
TELEPORTATION
-------------
   4.22 Teleporters
   4.23 Offset (Random) Teleporters
   4.24 "Warp Plane" Teleporters

--------------
MIRROR EFFECTS
--------------
   4.25 Making a Mirror
   4.26 "Copy-Sprite" Mirrors

----------------------------------------
ENDING THE LEVEL AND MAKING SECRET AREAS
----------------------------------------
   4.27 The End Button
   4.28 Ending Sectors
   4.29 Making a Secret Area

-------------------------------------
SECTOR OBJECTS (TANKS, TURRETS, ETC.)
-------------------------------------
   4.30 Turrets
   4.31 Automatic Turrets
   4.32 Boats
   4.33 Tanks

----------------
LIGHTING EFFECTS
----------------
   4.34 Basic Lighting
     4.34.1 Still Lighting
     4.34.2 Switchable Lighting
     4.34.3 Movement Lighting

---------------
PALETTE EFFECTS
---------------
   4.35 Fog and Haze

------------
WALL EFFECTS
------------
   4.36 Masked Walls
   4.37 One-Way Walls
   4.38 On-Demand Wall-Damage
   4.39 How To Block Actors
   4.40 Automatic Wall Deletion

--------------------
BASIC SECTOR EFFECTS
--------------------
   4.41 Invisible Ramps
   4.42 Slides
   4.43 Misc. Vators (Lifts, Pistons, Etc.)
   4.44 Earthquakes
   4.45 Slopes on Demand (Dynamic Slopes)
   4.46 Copy Sectors (Very Cool Indeed)

-------------------
FUN WITH EXPLOSIVES
-------------------
   4.47 C-9 Effects
     4.47.1 Regular Triggered Explosions
     4.47.2 Cracked Walls

-------------
MISCELLANEOUS
-------------
   4.48 Why Boss Meters Don't Work
   4.49 Respawning Objects in Multiplayer Games

======================
5: GENERAL INFORMATION
======================
   5.1 ST1 Tag List
   5.2 Sector Tag List
   5.3 Wall Tag List
   5.4 Level Credit List
   5.5 Palette List

===============================
6: UTILITIES FOR SHADOW WARRIOR
===============================
   6.1 Editart
     6.1.1 Editing Your Own Tiles
     6.1.2 Problems With Editart
   6.2 GRP Utilities
     6.2.1 Kextract
     6.2.2 Kgroup
   6.3 RTSMaker

===============
7: FINISHING UP
===============
   7.1 Map Authoring Template
   7.2 Uploading your level

=================
0: ABOUT THIS FAQ
=================

0.1 Who made all of this?

My name is Jonah Bishop and I am the maintainer of both this FAQ and the Duke Nukem 3D Map Editing FAQ.  I personally hope that this FAQ will help you to the fullest extent that it can, and I hope you have TONS of fun in making Shadow Warrior Levels.

0.2 How can I contact the author?

Being a student brings the pressures of school and homework, and it unfortunately brings the fact that I don't have much time for answering tons of Build questions.  If you do need to get in touch with me, however, just drop by Wangsdojo (http://www.wangsdojo.com) and enter into the Editing and Hacking public forum.  Then leave me a message, with something such as "To Jonah Bishop" in the subject of the message.

0.3 What you should have gotten 

In addition to this file (MPFQSW15.TXT), the following files should have been included in the MPFQSW15.ZIP file:

        LICENSE.TXT
        MAPS.ZIP
      # README.TXT
        SPTLIST.TXT
        SWSOUNDS.TXT
        TEMPLATE.TXT

In addition, the maps.zip file contains all of the tutorial maps used with the how-tos in this FAQ.  The MAPS.ZIP file should have contained the following:

        AUTOTURT.MAP
        BOAT.MAP
        C9EFFECT.MAP
        COPYSECT.MAP
        COPYSPRT.MAP
        CPLXWATR.MAP
        DRIP.MAP
        LADDER.MAP
        LAVABALL.MAP
        LOCKDOOR.MAP
        MIRROR.MAP
        PARALLAX.MAP
        RANDTELE.MAP
        REGDOOR.MAP
        SHOOTERS.MAP
        SINKWATR.MAP
        SLIDE.MAP
        SLIDOOR.MAP
        SLOPDMND.MAP
        STACKED.MAP
        SWNGDOOR.MAP
        TANKS.MAP
        TELEPORT.MAP
        TEXPAN.MAP
        TRANWATR.MAP
        TURRET.MAP
        VATORS.MAP
        WALLDMAG.MAP
        WATER.MAP
        WAVES.MAP
        WCURRENT.MAP
        WPLNTELE.MAP

# All file names above with this symbol next to them, indicate that they have either been added or updated since the last release of this FAQ.

0.4 Revision History

--- Version 1.0
The FAQ is created.  Everything is brand new.

--- Version 1.1
8 new how-tos added, one how-to renamed for convenience.  A few spelling errors corrected.

--- Version 1.2
Added 7 new maps and 10 new how-tos.  The palette list in section 5 was added, and the list of level names was updated with the filenames of the levels in the .GRP file.  Did some revisions to the TAG listings in the how-tos, by changing the dash (-) in some places to an equals sign (=), to avoid confusion with negative values.  Other minor revisions in the TAG listings as well.

--- Version 1.3
Updated all URLs pointing to Map FAQ Central.  Added 8 new how-tos to section 4.  They cover Lighting Effects, fog and haze, miscellaneous, and more.

--- Version 1.4
Updated the table of contents slightly.  Removed section 0.3.1.  Updated all sections (other than the how-to sections) to remove formatting problems (all text should now freely flow with word wrap and other features).  Added 17 how-tos to section 4.  Added the swsounds.txt file to the zip file.  Several new example maps added as well.

--- Version 1.5
Minor changes to reflect the web site change for this FAQ.  This FAQ now resides at Wangsdojo.

0.5 Credits and Acknowledgements

I would like to thank the following people for helping me with this version of the FAQ (in no particular order):

   3D-Realms     - For the *wonderful* game and the *awesome* Build program.
   Brad Wernicke - For the countless things he does.
   #3drealms     - Just go there - you'll see why I put it here.  :)

0.6 Where to get this FAQ

Well, you already have it, but in case you lose it, or would like another version, here is the most reliable place to get it:

   

0.7 Printing Information

If you want to print this FAQ for further reference when Building your levels, set your page margins to the following values before printing:

   Margins (in inches)
   Top    : 0.75
   Bottom : 0.75
   Right  : 0.75
   Left   : 0.75

Setting these properties will ensure that the FAQ prints correctly.  You can change these settings under PAGE SETUP in most text-editors.  Please follow these instructions to make sure that this FAQ prints properly.  I am sorry about any inconvenience, but I am forced to do this, as I am making this FAQ in Windows 95 and margins are required to make it look correct.

0.8 The Online Version

If you do not want to print this FAQ, or are unable to, you can look at an online HTML version of the FAQ at:

   

0.9 This FAQ's Home

This Map Editing FAQ has a new home (it is no longer at Map FAQ Central). The new home for this FAQ can be visited at:

   

0.10 Licensing Information

The file "license.txt", which is included in the Zip file this FAQ came in, outlines what you can and cannot do with this FAQ.  There was some wrongful activity occurring in previous versions of the FAQ, in which the information provided in this FAQ was changed and redistributed.  Please follow the guidelines set in this file, so that everyone can get an honest version of the Map Editing FAQ - Thanks!

=========================
1: INFORMATION ABOUT MAPS
=========================
1.1 What are Maps?

Maps are basically levels in the game.  All the sprite information, wall information, tags, and everything else in a level is kept here (with the exception of a few things).  With the Build program, you can make your own maps to distribute as you like.

1.2 What do I use to make my own map files?

To make your own map files, you must use the program Build, which comes on the Shadow Warrior CD.

1.2.1 Can I make maps for other games with Build?

The Build provided with Shadow Warrior can ONLY make maps for Shadow Warrior.  Any other Build based computer game will not work with this Build, as the program has changed to allow for different tags, formats, etc.

1.3 What is so good about this version of Build?

This version of Build is *much* better than the one that came with Duke Nukem, as well as any other game, as the game's engine has changed.  This new Build engine used for Shadow Warrior allows for the following effects:

   - "True" level over level
   - Drive tanks, forklifts, etc.
   - True 3D sprites
   - Reflective floors
   - Use gun turrets to fire at your enemy
   - Climb ladders
   - Transparent water
   - Control radio controlled cars
   - Colored lighting
   - AND TONS MORE!


=========================================
2: THINGS YOU SHOULD KNOW BEFORE STARTING
=========================================
2.1 Introduction

Well, this is it.  You're beginning your trek into the world of Shadow Warrior Build, and you're confident in your training from the world of Duke Nukem 3D.  Well, here's the bad news: You have to *FORGET* everything that you learned in Duke Nukem 3D Build.  Shadow Warrior is completely different, and it uses a very complex tagging system.  Don't feel like you will not be able to do this: It will get *much* easier as you practice making the certain effects.  Read this section before going anywhere else in the FAQ...it will answer some of the basic questions you may have.

2.2 2D and 3D Modes

There are two modes in Shadow Warrior Build, and they are exactly like the two modes used in Duke Nukem 3D Build: 2D and 3D modes.  2D is the graph layout of your level, and it is where you add sprites, draw walls, and tag the different sprites used in the game.  3D mode is where you will choose textures for your level, set heights of objects, and more.

To switch between the modes press the [ENTER] key on your numeric keypad.

2.3 Placing Sprites

Placing sprites is an extremely easy thing to do.  All you must do to add a sprite is press the [S] key in 2D mode, and at the place you wish to place the sprite.  You can also press [S] in 3D mode, but the alignment is much easier in 2D mode...especially with the grid.

2.4 The Special Sprite - ST1

Unlike DN3D, SW only has one sector effector sprite.  This sprite is known as the ST1, and it can perform *TONS* of functions...in fact it performs almost *all* of the functions in the game.  The tagging system used for this sprite is quite complex, so bear with me as I explain your new friend's language.

2.5 The Tagging System

The tagging system used in SW is very complex, and it will involve a great deal of patience and practice on your part to perfect.  There are many different tags used in the game, the descriptions of which are listed below.

2.5.1 The 15 Standard Tags

Every sprite in SW comes equipped with 15 tags that enable you to change all kinds of things with the sprite.  A tag is merely a variable that contains information regarding the sprite. To enter a value for a tag, point to the sprite, then press the ["] key plus the number of the tag. To access TAG11 through TAG15, press [SHIFT]+["]+the number of the tag.  Note that TAG1 and TAG2 are the hitag and lotag, respectively, and so can also be altered with the Alt-H and the Alt-T keys. The following is a list of the 15 tags, their function, and the range of values they can hold.  We will go into more depth about each when we come across them in the how-tos.  A few of the more important tags are described below this section.

   TAG1  = hitag (-32768 to 32767)
   TAG2  = lotag (-32768 to 32767)
   TAG3  = clipdist (-128 to 127) - default value is 32
   TAG4  = ang (-32768 to 32767)
   TAG5  = xvel (-32768 to 32767)
   TAG6  = yvel (-32768 to 32767)
   TAG7  = zvel 1 (-128 to 127)
   TAG8  = zvel 2 (-128 to 127)
   TAG9  = owner 1 (-128 to 127)  - default is unsigned 255 or signed -1
   TAG10 = owner 2 (-128 to 127) - default is unsigned 255 or signed -1
   TAG11 = shade (-128 to 127)
   TAG12 = pal (-128 to 127)
   TAG13 = xoffset and yoffset (-32768 to 32767)
   TAG14 = xrepeat and yrepeat (-32768 to 32767)
   TAG15 = z (-32768 to 32767)

2.5.2 The 11 BOOLEAN Flags

A Boolean flag can hold only two possible values: 0 or 1. Every sprite in Shadow Warrior makes use of 11 Boolean flags. To enter a value for a Boolean flag, press the SEMICOLON key plus the number of the tag. To enter a value for BOOL11, press SHIFT, plus SEMICOLON, plus the "1" key.  Again, we will cover these points when we come to them in the how-tos.  A few of the BOOLEAN tags are described below, due to their importance in use.

2.5.3 TAG1 (The Hitag)

The hitag used on a ST1 sprite tells the ST1 sprite what function to follow.  A list of all of the ST1 hitags can be found in section 5 of this FAQ.

2.5.4 TAG2 (The Lotag)
The lotag used on a ST1 sprite, is a completely random number chosen by you, the level designer.  This lotag links the current ST1 to either another ST1 or some other sprite or sector, so that certain effects can take place.  These are sometimes called "match tags".  These are best described as matching the ST1's function to a trigger, such as a switch or a trigger sector.

2.5.5 TAG4 (The Angle)

TAG4, as you can see from the list above, is a sprite's angle. By changing the TAG4 value of a sprite, you also change the angle it's facing. Be very cautious of this, because a great many ST1 functions rely on having an exact value in TAG4. If you use the ">" or "<" keys on that sprite, the value will shift by 128, which is probably a large enough change that the ST1 will no longer behave as you'd expect it to. In the case of ST1 134 (SOUND_SPOT), the game will probably quit to DOS with an error. Another pitfall to beware is rotating Right-Alt selected groups of sectors. Since all of the sprites within the selected group are rotated with the sectors when you do this, their TAG4 values will often become grossly incorrect.

2.5.6 BOOL1

If the BOOL1 flag is set to 1 on any sprite, Build will cause that individual sprite to behave as though it were an ST1 sprite. This is generally only used to create breakable sprites.

2.5.7 BOOL11

BOOL11 is a flag used by all sprites in the game, not just ST1's.  If the BOOL11 flag on any sprite is set to 1, then that sprite will remain stationary rather than ride up and down on an elevator.

=================
3: BASIC TRAINING
=================
3.1 Now that I have the editor, how do I use it?

Build is a very powerful tool, but it is also quite complex.  As you learn and get used to the commands, you will find that things become quite easy to understand, and in no time you will be Building your own very cool levels!

To start Build, you first must make sure that you have either of the following choices:

--1.  You have a copy of Build in your main SW directory, you have extracted all of the art files from the .GRP, and you have all other necessary tools in the same directory as your game.

--2.  You have created a separate directory with a copy of the *ENTIRE* game in it.  This will be your "Working" directory, so that, in the case of a mess-up, you do not corrupt your original game.

The second option is *strongly* recommended, especially if you have the necessary disk space to place an extra copy of Shadow Warrior for working purposes.

Type Build at the DOS prompt to enter the program!

3.2 Making your first level

Before you begin making your level, you need to know a couple of obvious things.  One is that your first level is going to be horrible.  It is better to build up your experience before you post your level, so it is advised to wait until you make a level you feel should be posted.  Another point is that you will not start out as a good builder.  Unless you have a SERIOUS level making background with other games similar to this, you will not make a good level for a few months.  The building process takes time, but it is worth it to be patient.  Do not feel like this is going to be too hard.  Building levels is EXTREMELY fun, and you can do some pretty neat stuff in the process.

3.2.1 Making a one-sector level

To start our first level, start the program by typing Build at the DOS command prompt.  You will be placed into 2D mode once you enter.  If it looks as if you are in the game, press the [ENTER] key on the KEYPAD.  This is how you change editing modes.  In 2D mode, you should see an arrow.  This is your current position in the level, and it shows which direction you are currently pointing in.  Press the [G] key to resize the grid.  Press it a few times until you get to the largest grid size.  We will now make a sector.  Point the mouse at a vertex and press the [SPACEBAR].  This has started the editing process, placing a vertex at the grid location you pointed to.  Move the mouse.  You will see a line following the mouse cursor.  This is a wall.  Press the space bar on another grid location, and continue to do so until you have 3 sides.  To close the object and stop drawing walls, move the cursor over the very first vertex you drew, and press [SPACEBAR].  The sector will be closed and you will have finished drawing.  A cube or rectangle shape is ideal for starting out.  Just follow the grid.  You now can press the [ENTER] key on the numeric keypad to enter 3D mode.  Your level is now started!  The walls should look pretty boring right now, but we will change this quite soon.

3.2.2 Adding another sector to the level

Go back into 2D mode and draw another sector, inside the one you just drew.  If you enter the level now, there will be a solid wall blocking your way.  We need to make this sector valid player space, so that we can walk into it.  In 2D mode press [ALT]+[S] (read as: the alt key and the s key) on the sector (move the mouse over the inside sector and press the above keys).  The sector should turn red.  Go back into 3D mode and you will see that the sector that was blocking you has disappeared.  It is still there, but you are now able to walk through it.  In just a moment we will raise the ceiling height of this sector to make it a light.

3.2.3 Adding textures to the walls/floors/ceilings

In 3D mode, press [V] on one of the walls, floors, or ceilings.  The screen will show the tile that is currently in your level.  Press [V] a second time to go to the tile selection screen.  You now can use [PGUP], [PGDN], or the arrow keys to scroll through the tiles.  Once you have selected the tile you want to use, press enter on it.  The wall will have changed to that texture!  You do the exact same procedure for floors and ceilings.  If you want to use the same texture you just chose for one of the surfaces on another surface, just press [V] once, scroll over to the tile you chose, and press [ENTER].  When you press [V] once on a wall, floor, or ceiling tile it shows all the tiles you are currently using in your level, and you can choose directly from this.  Now we will change what the texture looks like on the wall.

3.2.3.1 Panning the texture

After you place the texture you want where you want, it might look as if the whole thing is not showing up.  To "squish" the texture to your liking, you must use the 2,4,6,8 keys on the numeric keypad.  If you press and hold down the 5 key in combination with one of the above, the texture will squish by a larger amount.

You cannot "squish" floor textures and ceiling textures.  To change between 2 sizes (small and large), press the [E] key on the floor or ceiling you wish to change.

3.2.3.2 Moving the texture

If you do not wish to squish the texture, but you just want to move it (or you have squished the texture and want to move it) press and hold down the right [SHIFT] key and press 2,4,6,8 at the same time.  The texture will shift instead of squish.

3.2.4 Adding sprites to the level

Adding sprites is quite an easy process.  Simply enter 2D mode, and press the [S] key on a grid location.  A little circle with a tail and possibly some numbers will show up.  The tail indicates the directions the sprite is facing, but it usually does not matter which way the sprite points (enter 3D mode to take a look at it.  If it looks weird, just rotate it with the [,] and [.] keys).  Press the [V] key on the sprite and choose a sprite just like you did to choose textures.  Remember to press [V] twice to get to all of the tiles, unless the sprite you want to use is already in the level (which will put it on the first page).

3.2.4.1 Pasting sprites to the floor, ceiling, or wall

To make a sprite look as if it is hanging from the wall or lying on the floor (or stuck to the ceiling), press the [R] key on the sprite.  The first time you press it, the sprite will lie flat on the wall (according to the direction of the sprite).  The second time you press [R] on the sprite, it will lie on the floor or the ceiling for that matter, which ever you choose.

3.2.5 Raising and Lowering the floor/ceiling

Remember that sector we made a while ago that turned into red lines?  Enter 3D mode and point at the ceiling.  Press the [PGUP] key on the ceiling (roughly where the sector we made is), and the ceiling will raise up.  To lower the ceiling press [PGDN] on it.  The same can be done to floors.  Make the inside sector a light and in a little while we will shade the sectors in the room.

3.3 The Art of Shading

Shading is the most important object for you to use in making your level!  A level without shading is *very* boring, and it shows a lack of interest from the level designer.  When used properly, shading can be what makes the level.  I have personally played levels that use intense shading techniques, and I was very happy with the way that things turned out!  It should be noted that shading is a *very* difficult thing to master, and you should spend a great deal of time on shading the level (besides choosing textures, shading is the most time consuming portion of level building).

3.3.1 Using shading in your level

There are a few things that you must remember before learning to shade.  Light travels in a STRAIGHT line!  Also, opposite sides of a room will be shaded differently.  For example:

   +XXXXXXXX+
   I        I
   I        I
   +XXXXXXXX+

In this sample room, the walls made with X's would be slightly darker than the walls with I's (or vice versa...it's your choice).  This allows the eye to clearly tell the brain where the corner of the room is.  Try it if you don't understand.  If two walls meet in a corner, and both are the same shade, you will have a much harder time figuring out where the corner of the room is.  But if one of the walls is a little darker (five units darker is what I usually use), you will be able to see the corner much more clearly.

3.3.2 Basic shading techniques

There are a few ways that you can shade objects in the level.  All of these keystrokes must be made in 3D mode.

[+] and [-] : Use the keys that appear on the keypad.  This changes the shade by 1.

['] and [S] : Use this to enter a number to shade with.  Just point at the object to shade, press these keys, and type in a number.  The larger the number, the darker.

3.4 Checklist

Here is a checklist of things that might be good to do before making your very first complex level.

Before starting on your level:
   [ ] I am comfortable with the editor I am using
   [ ] I have made my first level: Yes it is horrible!
   [ ] I have a good theme for my level
   [ ] I have planned my level out
   [ ] I understand everything talked about in sections 2 and 3
        
Before Uploading your level:
   [ ] I have filled out a MAP authoring template
   [ ] I have a story line
   [ ] I have gone through every part of my level extensively
   [ ] I have had other people test my level
   [ ] I have tested my level using multiplayer

=========================
4: MAKING ALL THE EFFECTS
=========================

------------
INTRODUCTION
------------

4.1 Introduction
      Welcome to the hard stuff!  In this section, we will explore the many
      effects and cool things that we can do with the SW Build engine.  The
      following effects in this section will take some time to master, but
      they *can* be done (or they wouldn't be in the game, now would they?).

      All you need for this section is a little bit of time, and some
      patience as well.  And you'll be Building your SW levels in no time!

-----
DOORS
-----

4.2 Regular DOOM Type Doors
    Map Name: REGDOOR.MAP

      This type of door structure is extremely easy to make, and it will be
      the most commonly used door in the entire level-making process (on
      average that is).  Just follow these simple instructions and you're
      on your way!

  STEP 1: Make your door sector.  It should look like this:
       __ __ __
      :  :  :  :
      :  :  :  :
      :  :  :  :
      : C: A: B:
      :  :  :  :
      :__:__:__:

          Sector A is the door itself, and sectors B and C are the "door
          frame" sectors.  Choose the appropriate textures.  LEAVE THE
          DOOR SECTOR AT THE CEILING...I.E. - DO NOT LOWER IT TO THE FLOOR!
  STEP 2: Place an ST1 sprite in the door sector.  Give the sprite a hitag
          of 92, and a unique lotag.  Give TAG4 a value other than 0 (I think
          it has to be something other than 0...I'm not sure about this
          though).  This will determine the speed of the door.
  STEP 3: Enter 3D mode and press the [F] key on the ST1 sprite twice.  This
          flips the sprite over, and tells the ST1 to use the function on the
          ceiling, not the floor.
  STEP 4: Give the ST1 sprite a BOOL1 Flag value of 1.  This places the ST1
          in the "ON" position, so that it is closed during at the start of
          the game.
  STEP 5: For sound effects, place another ST1 sprite in the door sector (or
          near the sector) and give it a TAG1 of 134, a TAG2 with the exact
          same value of the other ST1's TAG2 value, and give TAG4 the same
          number as the sound you want to play (check out the SWSOUNDS.TXT
          for a list of all the sounds and their tags).

  OPTIONAL STEPS

  STEP 6: Give the ST1 sprite a BOOL3 Flag of 1.  This keeps the door from
          crushing the player.  
  STEP 7: Give the ST1 sprite a BOOL6 Flag value of 1.  This keeps the player
          from operating the door while the door is in motion.
  STEP 8: Give the ST1 sprite a BOOL7 Flag value of 1.  This allows other
          actors to operate the door.

          Take a look at SPRITAGS.TXT for a complete list of all of the tags
          available for this function (it's number 92).

4.3 Swinging Doors
    Map Name: SWNGDOOR.MAP

      I AM ASSUMING YOU HAVE MADE A SWINGING DOOR IN ANOTHER BUILD BASED GAME,
      SUCH AS DUKE NUKEM 3D.  I AM *NOT* EXPLAINING HOW TO MAKE THE DOOR
      ITSELF HERE, BUT AM RELAYING THE NECESSARY TAGS THAT ARE REQUIRED TO
      MAKE THIS TYPE OF DOOR.  Throughout this how-to, I will be assuming that
      you are making *TWO* doors, one above the other (with respect to 2D
      mode...one door is "north" of the other).

  STEP 1: Make your swinging doors using the standard Building procedure.  If
          you have no idea how to make these sectors, check out the
          EXAMPLE.MAP that comes with the Build program, and look at column E
          row A.  It's kind of hard at first, but you'll figure it out.  Or you
          can take a look at SWNGDOOR.MAP.
  STEP 2: Place an ST1 sprite in each door sector. The upper door ST1 should
          have the following tags:
            TAG1 = 143
            TAG2 = Unique Number
            TAG4 = 1536
            TAG5 = 512 (this tells the door to open clockwise, 90 degrees)
            TAG7 = 35 (the speed that the door will open)
   Optional TAG9 = Delay for Auto Close (you specify the delay-35 is typical)
   Optional BOOL6 = 1 : (can't be operated again until movement stops)
  STEP 3: The lower door should be given these tags:
            TAG1 = Exact Same Value As Step 2
            TAG2 = Exact Same Value As Step 2
            TAG4 = 512
            TAG5 = Exact Same Value As Step 2
   Optional TAG7 = Exact Same Value As Step 2
   Optional TAG9 = Exact Same Value As Step 2
            BOOL6 = Exact Same Value As Step 2
  STEP 4: Place two ST1 sprites at the place in the door sector where you want
          the door to PIVOT (this is usually extremely close to the corner of
          the door itself).  Give each one the following tags:
            TAG1 = 144
            TAG2 = Exact Same Value As Step 2
            TAG4 = 1536
  STEP 5: For sound effects, place a ST1 Sprite near the swinging doors, and
          give it the following tags:
            TAG1 = 134
            TAG2 = Exact Same Value As Step 2
            TAG4 = Sound Number To Play (Number 170 is a typical sound)

4.4 Sliding Doors
    Map Name: SLIDOOR.MAP

      The construction process for this effect is easy, but quite difficult
      to explain using words.  Take a look at SLIDOOR.MAP to see how it was
      constructed (there is a step by step in the map itself).  Here are the
      tags that can be put on the ST1 sprite that should be in the doorway:

      TAG1 = 145
      TAG2 = Unique Number
      TAG3 = Type of door
             0 : Manual/Switch/Trigger
             1 : Switch/Trigger Only (Cannot be operated manually)
      TAG5 = Distance to move (Largest grid square is 1024)
      TAG6 = Match At Destination (when a sliding door reaches its destination
             it will trigger any event with this tag...use a unique number)
      TAG7 = Move Speed
      TAG8 = Acceleration at which door approaches TAG7 speed
      TAG9 = Auto-Close Time
      BOOL2 = 1 : Can only operate the door once
      BOOL3 = 1 : Don't crush the player (NEVER LET A WHITE WALLED SLIDOOR
                  CRUSH THE PLAYER...THIS CAN CAUSE ERRORS)
      BOOL4 = 0 : Can be operated during WangBang
              1 : Cannot be operated during WangBang
      BOOL5 = 1 : Insta-Close (TM) Feature.  This allows Build to close the
                  door for you (I used it in the SLIDOOR.MAP...take a look at
                  the map to see what it does).
      BOOL6 = 0 : Cannot operate door when in motion
              1 : Can operate when in motion
      BOOL7 = 1 : Call the TAG6 match when moving to the OFF position as well
                  as moving to the ON position.
      BOOL11 = 1 : Displays "Single Play Only" Message when operated in
                   WangBang.  Use with BOOL4.

4.5 Locked Doors
    Map Name: LOCKDOOR.MAP

      This is a very simple effect to make, so follow along.

  STEP 1: Make the door you wish to lock.
  STEP 2: Place one ST1 sprite in the door sector, and give it the following
          tags:
            TAG1 = 29
            TAG2 = Type of locked door
                   1 : Red Keycard
                   2 : Blue Keycard
                   3 : Green Keycard
                   4 : Yellow Keycard
                   5 : Gold Master Key
                   6 : Silver Master Key
                   7 : Bronze Master Key
                   8 : Red Master Key
  STEP 3: Place a door lock sprite on both sides of the door (somewhere near
          the door on the wall).  You don't need to have two locks, but it is
          convenient for opening the door from both sides.  Give both the
          following tags:
            TAG1 = Same value as TAG2 in Step 2.
            TAG2 = 29
  STEP 4: Place the correct color key somewhere in the level.  This is
          important, because the right color key is needed to open the door.
          YOU DO NOT NEED TO CHANGE THE PALETTE OF THE LOCK...THIS IS
          AUTOMATICALLY DONE BY THE BUILD PROGRAM.

-----
WATER
-----
4.6 Sinkable Water
    Map Name: SINKWATR.MAP

      This effect allows the player to "sink" into the water sector, making
      the impression that the player is actually in water.  To make this work,
      following the few steps provided.

  STEP 1: Make your water sector.  Texture it anyway you want (water tile on
          the floor of the sector).
  STEP 2: Place a ST1 sprite in your sector and give it the following tags:
            TAG1 = 0
            TAG2 = Depth Player Should Sink

  NOTE: TAG2 should not be greater than 40, or the player's view will become
        distorted.  The most common numbers used are 15, 25, and 35.

4.7 Diving Water
    Map Name: WATER.MAP

      This effect allows the player to travel under the water, just as in Duke
      Nukem 3D.  This effect is quite easy to make as well.

  STEP 1: Make your above water sector.  Give it the appropriate textures.
  STEP 2: Make your underwater sector.  IT SHOULD BE THE EXACT SAME SHAPE AND
          SIZE AS THE ABOVE WATER SECTOR!  Give it the appropriate textures
          (the water texture should be on the ceiling this time).
  STEP 3: Place one ST1 sprite in BOTH the above and below water sectors.
          THEY SHOULD BE IN THE EXACT SAME PLACE IN BOTH THE ABOVE AND BELOW
          WATER SECTORS!  Give the ST1 in the ABOVE water sector the following
          tags:
            TAG1 = 7
            TAG2 = Unique Number
          Give the ST1 in the BELOW water sector the following tags:
            TAG1 = 8
            TAG2 = Exact same number used in TAG2 in the ABOVE water sector
  STEP 4: Place one ST1 sprite in the above water sector.  Give it the
          following tags:
            TAG1 = 0
            TAG2 = 35
  STEP 5: YOU'RE DONE!  See WATER.MAP if you do not understand.

4.8 Multi-Sector Diving Water
    Map Name: CPLXWATR.MAP

      This effect allows there to be multiple sectors in the underwater
      sector, while there is only one above water sector.  You can use this
      effect to make all kinds of things underwater (boxes, ships, etc.),
      WITHOUT having to make the EXACT same sectors above water.

  STEP 1: Make your two water sectors (see section 4.5 on how to do this).
  STEP 2: Make the sectors you wish to have in the underwater sector.  I
          made a rectangular sector in my level for a box.
  STEP 3: Place one ST1 sprite anywhere in the sectors you have added
          underwater and give it the following tags:
            TAG1 = 9
            TAG2 = Exact same number used in TAG2 of the above water sector
   OPTIONAL TAG3 = If you give this a value of 1, you will not be able to
                   surface in the sector this sprite is in.

4.9 Water Currents
    Map Name: WCURRENT.MAP

      This effect makes a current in a water sector, so that when the player
      enters the sector, he is taken with the flow of the water automatically.

  STEP 1: Make your water sector to be affected.
  STEP 2: Put one ST1 sprite in the sector and give it the following tags:
            TAG1 = 0
            TAG2 = Depth player should sink
  STEP 3: Put another ST1 sprite in this sector.  Point the sprite in the
          direction you wish the player to travel.  Give it the following
          tags:
            TAG1 = 3
            TAG2 = Speed of current

4.10 The Drip Generator
    Map Name: DRIP.MAP

      This effect causes a drop of water to fall from the ceiling of the
      sector to the water below, and it also makes a sound.

  STEP 1: Make the water sector to be affected.
  STEP 2: Put one ST1 sprite in the sector and give it the following tags:
            TAG1 = 1006
            TAG2 = Delay in between drops.  If 0, the effect uses the internal
                   settings (which are quite fast).  The delay is in seconds.
            BOOL1 = Drip Type
                    0 : Blood drops
                    1 : Water drops
            BOOL2 = Type of effect to make
                    0 : Drips
                    1 : No Drips; Makes a bubble instead (for a bubble spawner
                        in underwater areas)
  STEP 3: Raise the ST1 sprite all the way to the ceiling (if you are making
          drops that is).

4.11 Making Waves
    Map Name: WAVES.MAP

      This effect allows you to create waves in water.  The waves can be
      very smooth, or can be very blocky (see WAVES.MAP to see what I mean).

  STEP 1: Make several FOUR SIDED sectors (all are valid player space), and
          give them the appropriate textures.
  STEP 2: Give each sector a SECTOR LOTAG.  The tags should increment by 1,
          so the first sector lotag would be 400 (for example), the next
          would be 401, and so on.  The sector lotags should correspond to the
          following information:

          For waves on the floor: USE SECTOR LOTAGS 400-419
          For waves on the ceiling : USE SECTOR LOTAGS 420-439
          For waves on both floor and ceiling: USE SECTOR LOTAGS 440-459

  NOTE: You can only have 5 sets of waves in any one map.  You do *NOT* have
        to use all the tags in one set, so don't feel like you have to have
        20 sectors for waves (your tags may only go up to 405 or 406).

        Look at WAVES.MAP if you don't understand, or if you want to learn
        how to make a current and sinkable set of waves.  Very easy stuff.

4.12 Making Lava Eruptions
     Map Name: LAVABALL.MAP

       This effect allows you to create eruptions that spew either lava balls,
       or small bits of lava itself.

  STEP 1: Make the sectors that will have something erupt from them.  Give
          the sectors appropriate textures.
  STEP 2: Place ST1 sprites in each sector where you want lava to erupt from.
          Give the ST1 sprites the following tags:
            TAG1 = 56
            TAG2 = (1 to 1024) The larger the number, the more stuff erupts.
            TAG3 = Type of Eruption
                   0 : Lava Shards
                   1 : Volcano Boulders
            TAG4 = Angle of Eruption
            TAG5 = Angle Delta from TAG4 (Usage?)
            TAG6 = Max x/y velocity
            TAG7 = z velocity amount
            TAG8 = z velocity random amount - added to TAG5 value
            TAG9 = erupt for this many seconds
            TAG10 = wait this many seconds until next eruption
            BOOL1 = 1 : Don't spawn unless player is in Trigger Sector
  STEP 3: If you gave the ST1 sprites a BOOL1 tag of 1, you need to place
          an ST1 sprite in all of the sectors that you want the player to
          be in to cause an eruption (i.e. - this works like a "touchplate").
          Give these sprites the following tags:
            TAG1 = 140
            TAG2 = Unique Number
            TAG3 = 2
            TAG4 = Angle
            TAG5 = 1

---------------
TEXTURE EFFECTS
---------------
4.13 Parallaxing Skies
     Map Name: PARALLAX.MAP

       Parallaxed skies are done quite differently from Duke Nukem 3D.  This
       is really easy to.

  STEP 1: Place the texture you want to parallax on the ceiling of the sector
          you want to have the parallaxed sky in.  Press the [P] key on the
          ceiling in 3D mode to parallax the sky.  It may look weird at first,
          but it *will* look correct in the game.
  STEP 2: Place one ST1 sprite in ANY parallaxed sector.  YOU ONLY NEED TO
          HAVE ONE OF THESE SPRITES IN A PARALLAXED SECTOR SOMEWHERE IN THE
          LEVEL, BUT YOU DO NEED TO HAVE IT!  Give it the following tags:
            TAG1 = 46
            TAG2 = 0, 1, or 2
                   These values are the xrepeat of the sky texture.
  STEP 3: Make sure you only have one of the above sprites, or the sky may
          behave strangely.

4.14 Making Textures Move
     Map Name: TEXPAN.MAP

       This effect allows you to make the textures on either a wall, floor, or
       ceiling move, which in turn can create some neat effects.

  FOR FLOORS AND CEILINGS...
  STEP 1: Make the sectors that you wish to affect.  Place one ST1 sprite in
          the sector, and give it the following tags:
            TAG1 = 19 (Floor) or 21 (Ceiling)
            TAG2 = speed of movement
            TAG4 = Angle of movement (0 doesn't seem to work...)
   OPTIONAL BOOL1 = 1 : Move with speed of sector object

  FOR WALLS...
  STEP 1: Make the wall that you wish to affect.  Place one ST1 sprite *NEAR*
          the wall to affect (not on the wall itself), and make sure that the
          sprite is pointing at the wall to affect.  Give it the following
          tags:
            TAG1 = 23
            TAG2 = Speed of movement
            TAG4 = Point sprite at desired wall
            TAG6 = Angle of panning
   OPTIONAL BOOL1 = 1: Move with speed of sector object

---------------
STACKED SECTORS
---------------
4.15 Stacked Sectors
     Map Name: STACKED.MAP

       This effect is most definitely one of the coolest effects in the entire
       game itself.  Stacked sectors are the technical term for "True Level
       over level", and it allows you to make some cool looking areas.  This
       effect is a little challenging to make at first, but it's not too hard.

       Throughout this how-to, I will be assuming that the player will come to
       this "level over level" area from the top floor; i.e. - the player will
       look down to the floor below.  See STACKED.MAP to understand what I am
       talking about (the player starts on the 2nd floor).

  STEP 1: Make the upper level of the "level over level area".  Make sure that
          you have a valid player space sector somewhere in this upper level,
          a place where the player can drop down to the lower level when in
          the game.  Lower this sector's floor to wherever you like it (you
          don't even have to lower it if you do not wish to do so), and change
          the floor texture of this sector to texture #341.  This is the
          "Floor Mirror" texture, and it is needed to make the effect work
          properly.
  STEP 2: Make the lower level of the "level over level area".  Again, make
          sure that you have a valid player space sector somewhere in this
          lower level.  THIS SECTOR SHOULD BE THE EXACT SAME SIZE AND SHAPE
          AS THE VALID PLAYER SPACE SECTOR MADE IN STEP 1.  Change the ceiling
          texture of this sector to texture #341.  Raise the ceiling to where
          you want it to be.
  STEP 3: Level 1 and level 2 must be constructed with proper Z heights,
          because Shadow Warrior won't do it for you. By this I mean that the
          floor of level 2 must actually be higher than the ceiling of level
          1.  The difference between the two is called the "overlap." At least
          some overlap is necessary for room over room to behave correctly.
          To build overlap correctly, follow these guidelines:

          1: The height of the floor mirror (on the ceiling) in level 1
             must be the exact same as the height of the -floor- (not
             the floor mirror) in level 2.
          2: The height of the floor mirror in level 2 must be the
             same as the height of the -ceiling- (not the floor mirror)
             in level 1.
  STEP 4: Place one ST1 sprite in the valid player space sector of the lower
          level, and place another ST1 sprite in the valid player space sector
          of the upper level.  Make sure that these sprites are in the exact
          same position in relation to their sectors; i.e. - if the sectors
          were overlapped, the two ST1 sprites should also overlap each other.
          Give these ST1 sprites the following tags:

          UPPER LEVEL ST1
            TAG1 = 121
            TAG2 = Unique Number

          LOWER LEVEL ST1
            TAG1 = 120
            TAG2 = Same Unique Number as Upper Level
  STEP 5: Place one more ST1 sprite in each valid space sector; one in the
          upper level, and one in the lower level.  THESE TWO SPRITES DO
          NOT NEED TO BE IN THE SAME PLACE IN RELATION TO THEIR SECTORS.
          If the upper and lower level sectors were overlapped, these sprites
          would not need to overlap as well.  Give these sprites the following
          tags:

          UPPER LEVEL ST1
            TAG1 = 111
            TAG2 = Same Unique Number As In Step 4
            TAG4 = Point up to turn it OFF
                   Point down to turn it ON

          LOWER LEVEL ST1
            TAG1 = 110
            TAG2 = Same Unique Number As In Step 4
            TAG4 = Point up to turn it OFF
                   Point down to turn it ON
  STEP 6: The sprites that you placed in the above step now need to be placed
          in every single sector that the player will be able to see the other
          level from.  For example: If I were standing in a hallway in the
          upper level, and I could see through the floor in the adjoining room
          to the lower level, I would need to have the exact same sprites as I
          placed in STEP 5 in the hallway.  Give the sprite the exact same
          tags as you gave them in STEP 5.
  STEP 7: You need to place the BOUND_FLOOR_BASE_OFFSET and BOUND_FLOOR_OFFSET
          sprites in their correct position.  These two ST1's (hitags 202 and
          203, respectively) are used to drag groups of sectors over top of
          each other at premap. The BASE_OFFSET serves as an "anchor point."
          The next OFFSET processed is moved to the same x,y location as the
          BASE_OFFSET, dragging every sector connected to it along for the
          ride.  So place two ST1 sprites, one on the lower level and one
          in the upper level, in the exact same position in relation to their
          sectors.  Give the sprites the following tags:

          UPPER LEVEL ST1
            TAG1 = 202
            TAG2 = 0

          LOWER LEVEL ST1
            TAG1 = 203
            TAG2 = 1
  STEP 8: Remember the floor and ceiling with texture #341?  Go into 3D mode
          and press the [P] key on both the floor and the ceiling with this
          texture, so that you Parallax the texture.  I'm not 100% sure if
          this is needed or not, but it is used in all of the level over
          level situations in the game.  You're all done!  Take a look at
          STACKED.MAP if you still do not understand something, and just
          pull it all apart.

4.16 Transparent Water
     Map Name: TRANWATR.MAP

       This effect is a bit harder to understand, but it follows the exact
       same concepts as the stacked sectors how-to above.

  STEP 1: Make your stacked sectors just as we did in the how-to above
          (section 4.14).
  STEP 2: Place one ST1 sprite in *ALL* of the sectors that are to be under-
          water, and give each a TAG1 value of 8.
  STEP 3: Place one ST1 sprite in the sector underwater where the player
          will be able to surface.  Give it the following tags:
            TAG1 = 136
            TAG2 = Picture Number (From the [V] menu.  The water texture most
                   commonly used is 780)
            TAG3 = 0
            TAG7 = 0 : normal
                   1 : masked
                   2 : translucent
                   3 : very translucent (this is the most common for water)
  STEP 4: Place one ST1 sprite in the sector above the water where the player
          will submerge into the water itself.  Give it the following tags:
            TAG1 = 136
            TAG2 = Picture Number (From the [V] menu.  The water texture most
                   commonly used is 780)
            TAG3 = 1
            TAG7 = 0 : normal
                   1 : masked
                   2 : translucent
                   3 : very translucent (this is the most common for water)
  STEP 5: Place another ST1 sprite in the sector above the water where the
          player will submerge into the water itself.  Give this sprite the
          following tags:
            TAG1 = 98
            TAG2 = Amount player should sink into the floor.  40 is the most
                   commonly used value, so I recommend using it. (DO NOT USE
                   ANY VALUE OVER 40.  THIS MAY CAUSE SOME PROBLEMS WITH
                   THE PLAYERS VIEW!)

--------------
SPRITE EFFECTS
--------------
4.17 Ladders
     Map Name: LADDER.MAP

       This effect allows you to create areas on a wall that the player can
       climb up while in the game.  A very easy effect to make.

  STEP 1: Create the area you wish to be your ladder.  THE LADDER IS REQUIRED
          TO BE PLACED ON A RED LINE!  DO NOT PLACE THIS ON A WHITE LINE IN
          2-D MODE, OR IT WILL NOT WORK!  To make it look like a ladder,
          place some sprites on the wall, make them point away from the wall,
          and press the [R] key on them once.  Change their texture to
          something that resembles a ladder.  These sprite are not needed,
          as you can just change the texture on the wall to look like the
          ladder, or you can have the wall look nothing like the ladder at
          all (you could make hidden ladders with that idea...).
  STEP 2: Enter 3D mode.  Face the wall that will be your ladder, and
          move the mouse cursor over the wall itself (NOT ON THE SPRITES
          THAT ARE ON THE WALL).  Press [']+[T].  In the upper left hand
          corner of the screen, you should see the words "WALL LOTAG : 0".
          Change this value to 305 (just type in 305).
  STEP 3: Place one ST1 sprite near the wall to climb, BUT NOT ON THE WALL
          ITSELF!  The position of the sprite itself is very important,
          because it is the location at which the player sprite will start
          to climb.  Give it the following tags:
           TAG1 = 30
           TAG4 = Angle (The sprite should point directly away from the wall
                  that it will be affecting)

          You should also make sure that this sprite is centered with the
          ladder that the player will climb.

4.18 Shooters
     Map Name: SHOOTERS.MAP

       This effect allows you to create shooters.

  STEP 1: Place one ST1 sprite on the wall.  Change the angle to face directly
          away from the wall, and raise it up on the wall a good bit.  This is
          where the shots fired will spawn from.  Give the ST1 sprite the
          following tags:
            TAG1 = 43 (For Fireballs)
                   44 (For Missiles)
                   63 (For Arrows)
            TAG2 = Unique Number
            TAG4 = Angle; I recommend facing it directly away from the wall
  STEP 2: Now that you have these shooters, you need some way to activate
          them.  The way to do this is through an "activation sector".  Just
          give the sector that you wish to have activate the shooters the
          following tags:
            Sector Lotag = 43
            Sector Hitag = Same Unique Number as TAG2 in ST1 sprite

4.19 Making Sprites Destructible (Simple)
     Map Name: NONE

     This effect simply allows you to make most non-ST1 sprites destructible.

  STEP 1: Create the sprite that you want to destroy.
  STEP 2: Give the sprite the following tags:
            TAG1 = 132
            BOOL1 = 1

4.20 Making Sprites Destructible (Complex)
     Map Name: NONE

     This effect is a more complex way of making sprites (including ST1's)
     destructible.

  STEP 1: Create the sprite that you want to destroy.
  STEP 2: Place an ST1 sprite somewhere on your map, and give it the following
          tags:
            TAG1 = 132
            TAG2 = Unique Number
            TAG5 = Tile Number to switch to when broken (this is not needed
                   if TAG8 is 1)
            TAG7 = Number of damage hits to take before a sprite or wall
                   texture is BROKEN. Note that if this is set to 2 or
                   greater the picnum will increment toward TAG5 until
                   TAG5 is reached. The graphics in the art file must be
                   imported in the correct order to support this. Nothing
                   in Shadow Warrior uses this, but the functionality is
                   there for anybody who feels like importing their own
                   art.
            TAG8 = BROKEN type: 
                   0 : Change the picnum only
                   1 : Kill sprite when BROKEN
  STEP 3: Now give the sprite that you created in step 1 the following tags:
            TAG1 = 132
            TAG2 = Same Unique Number as above
            TAG6 = Match - extra match value for activating ST1's like
                   SPAWN_SPOT and LIGHTING. By this method you can spawn
                   debris or turn off a light when this sprite is broken.
            BOOL1= 1
            BOOL2= 1 : Don't break this sprite. Use this to override
                       automatic breakables.

4.21 Automatic Sprite Deletion
     Map Name: NONE

     This allows you to delete almost any sprite you wish from the game by
     means of a trigger action (a switch or touchplate).  The sprites you
     can delete are decoration sprites, vator ST1's, room over room view
     sprites, and spike ST1's.

  STEP 1: Place the sprites you wish to delete upon triggering.
  STEP 2: Place 1 ST1 sprite *exactly* on top of each sprite you wish
          to delete upon triggering.  Give each ST1 the following tags:
            TAG1 = 141
            TAG2 = Unique Number
            BOOL2 = 0 : Stay stationary
                    1 : Move with a sector object.
  STEP 3: Place either a switch or a trigger sector somewhere in your map.
          Give the switch or sector a hitag that matches the TAG2 value in
          step 2 exactly, and a lotag of 211.

-------------
TELEPORTATION
-------------
4.22 Teleporters
     Map Name: TELEPORT.MAP

       This allows you to create teleporters in the game.  Extremely easy to
       do.

  STEP 1: Make a "source sector".  This will be the sector that the player
          has to enter in order to get teleported somewhere.  Make a
          "destination sector" elsewhere on your map.  This will be the
          place in the level where the player will be teleported to.  The
          destination sector does not have to be the exact same size as the
          source sector, but it must not be smaller than the source sector.
  STEP 2: Place one ST1 sprite in both the source and destination sectors.
          Change the angle of both to the direction you wish the player to
          face when he comes out of the teleporter.  Give each sprite the
          following tags:
            TAG1 = 84
            TAG2 = Unique Number (Both numbers should be the same number:
                   i.e. - if you have a TAG2 value of 223 in the source
                   sector ST1, you should also have a TAG2 value of 223
                   in the destination sector ST1)
            TAG3 = 0
            TAG4 = Point in the direction you wish the player to face when
                   coming out of the teleporter
            TAG10 = 0 : (Two-Way) Teleport when you enter this sector
                    1 : (One-Way) Don't teleport when you enter this sector

4.23 Offset (Random) Teleporters
     Map Name: RANDTELE.MAP

     This effect allows you to randomly teleport through a series of
     teleporters.  Take a look at the included map if you don't quite
     understand (it is a little hard to explain).

  STEP 1: Make a "source sector".  This will be the sector that the player
          has to enter in order to get teleported somewhere.  Make several
          "destination sectors" (up to 4) elsewhere on your map.  These will
          be the places in the level where the player will be teleported to.
          The destination sectors do not have to be the exact same size as the
          source sector, but they must be smaller than the source sector.
  STEP 2: Place one ST1 sprite in the source and destination sectors.
          Change the angle of these ST1's to the direction you wish the
          player to face when he comes out of the teleporter.  Give each
          sprite the following tags:
            TAG1 = 84
            TAG2 = Unique Number (Give the source sector ST1 a unique number,
                   and give one of the destination sectors the exact same
                   number.  Now give the other destination sectors a TAG2
                   value of the unique number plus 1.  For example, if I have
                   4 teleporters, I give the source sector ST1 a TAG2 value
                   of 20, and one of the destination sectors the exact same
                   TAG2 value.  Now I give the other teleport ST1 sprites
                   TAG2 values of 21 and 22, respectfully).
            TAG3 = 1
            TAG4 = Point in the direction you wish the player to face when
                   coming out of the teleporter
            TAG5 = TAG2 value plus 1 (if more than 1 teleporter)
            TAG6 = TAG2 value plus 2 (if more than 2 teleporters)
            TAG7 = TAG2 value plus 3 (if more than 3 teleporters)
            TAG8 = TAG2 value plus 4 (if using exactly 4 teleporters)
            TAG10 = 0

4.24 "Warp Plane" Teleporters
     Map Name: WPLNTELE.MAP

     This effect warps you to the opposite Z plane when your view goes above
     or below the Z plane in question.  Take a look at the included map if you
     don't quite understand.

  STEP 1: Make the start and end teleporter sectors.  Raise one of the
          sector's ceilings a little ways up, and lower the other's floor
          a little ways down.
  STEP 2: Place one ST1 sprite in each sector.  Give the ST1 in the lowered
          sector the following tags:
            TAG1 = 86
            TAG2 = Unique Number
  STEP 3: Give the ST1 in the raised sector the following tags:
            TAG1 = 85
            TAG2 = Same Unique Number as in step 2.
  STEP 4: Raise the ST1 sprite in the raised sector as far up as you wish the
          player to teleport from or to.  Also, lower the ST1 in the lowered
          sector to as low as you want the player's view to pass by in order
          to teleport from or to the other sector.

--------------
MIRROR EFFECTS
--------------
4.25 Making a Mirror
     Map Name: MIRROR.MAP

       This is a very easy effect to make, but it is quite hard to explain
       through the use of words.  Take a look at MIRROR.MAP if you don't
       understand.

  STEP 1: Making a mirror is a little bit like making a mirror in Duke Nukem
          3D, but there are some differences.  Create the sectors for your
          mirror, but DO NOT CREATE A LARGE ROOM BEHIND THE MIRROR...THIS IS
          NOT NEEDED IN SW AS IT WAS IN DUKE3D!
  STEP 2: Place a 1-Way wall where the mirror should go by pressing the [1]
          key on the floor near the place the mirror should be in 3D mode.
          Give it a texture of #340.
  STEP 3: To make Lo Wang say something when you look into the mirror and
          press space, give the red wall in front of the mirror (in 2D mode)
          a wall lotag of the sound number to play, and a hitag of 900.

4.26 "Copy-Sprite" Mirrors
     Map Name: COPYSPRT.MAP

     This effect reproduces sprites upon entry into a sector containing the
     proper ST1 sprite.  Take a look at the included map to check out this
     cool effect.

  STEP 1: Create two sectors that will mirror each other.  Take a look at
          the map to see what kind of sectors I used.
  STEP 2: Place one ST1 in each sector.  Give one of the ST1 sprites the
          following tags:
            TAG1 = 87
            TAG2 = Unique Number
  STEP 3: Now give the other ST1 the following tags:
            TAG1 = 88
            TAG2 = Unique Number

     Now you will find that when you enter the sectors in the game, a copy
     of your sprite will appear in the other sector that you tagged.  Now
     go into the other sector.  Same thing - A 2-way mirror!  Cool!

----------------------------------------
ENDING THE LEVEL AND MAKING SECRET AREAS
----------------------------------------
4.27 The End Button
     Map Name: NONE

  STEP 1: Place a sprite on a wall where you want the end button to be.  In
          2D mode, change the angle so that the sprite faces away from the
          wall.  Now go into 3D mode and press the [R] key on the sprite.
          Give it a texture of 2470.
  STEP 2: Give the sprite the following tags:
            TAG1 = Number of level to go to.  This should only be used if
                   the map name has the exact same name as one of the
                   official SW game levels.
            TAG2 = 116

4.28 Ending Sectors
     Map Name: NONE

  STEP 1: Make a sector that the player must step in to end the level.  Give
          this sector a sector lotag of 116 by pressing the [T] key in the
          sector in 2D mode.

4.29 Making a Secret Area
     Map Name: NONE

  STEP 1: Make the sector you wish to be the secret area.  Give it a sector
          lotag of 217.

-------------------------------------
SECTOR OBJECTS (TANKS, TURRETS, ETC.)
-------------------------------------
4.30 Turrets
     Map Name: TURRET.MAP

       This effect allows you to create player controlled turrets, which can
       be set to fire many different things through the use of different
       tag values in the ST1 sprites.  This effect is quite simple in nature
       but it is quite an involved building process.

  STEP 1: Make your turret sectors.  Raise them to the appropriate heights
          in 3D mode, and give them appropriate textures.  Now enter 2D mode
          and turn off the grid.  Move the cursor to the OUTSIDE of one of the
          OUTERMOST walls and press [ALT]+[T].  This allows you to enter the
          lotag on this side of the red wall.  Give it a value of 504, telling
          the game that this is the outermost area of the turret.  You need
          only to do this on one wall, BUT MAKE SURE IT IS THE OUTSIDE OF ONE
          OF THE OUTERMOST WALLS.
  STEP 2: Press the [H] key inside the center sector, and enter in the value
          of 96.  This tells the program that this type of sector object is
          a turret.
  STEP 3: Place one ST1 sprite just above and to the left of the top left of
          the turret.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   500 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 500, sector
                   object 2 would have a TAG1 value of 505, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 595.
          Now place one ST1 sprite just below and to the right of the lower
          right of the turret.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   501 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 501, sector
                   object 2 would have a TAG1 value of 506, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 596.
          These two sprites are called the "bound_so_upper" and
          "bound_so_lower" sprites, and they form an invisible rectangle that
          the program uses to know just exactly what sectors and sprites to
          rotate when the turret is in operation.  Now press the [T] key
          inside the center sector, and give it the same value as you gave
          the TAG1 value of the "bound_so_lower" sprite.
  STEP 4: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 1.  This tells the program that this sector is the sector the
          player must be in to activate the turret.
  STEP 5: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 16.  Now point the sprite towards the front of the turret.  This
          tells the program in which direction the front of the turret is.
  STEP 6: Although optional, you can place one ST1 sprite in the center sector
          with a TAG1 value of 68.  This tells the game that the turret can
          only turn a certain amount of degrees in either direction, which
          you specify with the TAG2 value.  A TAG2 value give you a rotation
          limit of 90 degrees on each side (180 degrees total).
  STEP 7: Place one ST1 sprite in the center sector and give it a TAG1 value
          of 134.  This is the sound effect sprite.  Turrets only need one
          operational sound, so give it a TAG4 value of the sound number you
          want to play (149 is the most common value...use this for now).
          Now change the BOOL2 value to 1.  This allows the sound to stop
          when the turret is not in use.
  STEP 8: Place one ST1 sprite in the center sector and give it a TAG1 value
          of 76.  This tells the game that this turret can be destroyed (this
          is an optional sprite).  The TAG2 value is the damage the turret can
          take before breaking, and a good value for this is from about 500 to
          1000.  Change the TAG 5 value to either -1 (to start the turret out
          broken), or leave it as 0 (to make the turret start with "full
          health").  Now place one ST1 sprite where you want the smoke to
          spawn when the turret is broken.  Give it a TAG1 value of 69, a TAG3
          value of 3, a TAG6 value of 3, and give it a unique TAG2 value.
  STEP 9: Place one ST1 sprite somewhere in the turret, and give it a TAG1
          value of 134.  Give it the same TAG2 value you gave the sprite in
          step 8, and change the TAG4 value to 276.
  STEP 10: Place one ST1 sprite near where you want the shots to come out
           of the turret at.  Raise it up in 3D mode to be at the height you
           want it to be, and get back into 2D mode.  Give the sprite a TAG1
           value of 62.  To change the ammunition type of the turret, change
           the TAG3 value to one of the following:
             0 : Tank Shell
             1 : Machine Gun
             2 : Laser
             3 : Rail Gun
             4 : Fireball
             5 : Rocket
             6 : Micro Missile Battery (Lots of missiles at once)
  STEP 11: Enter 3D mode and press the [R] key on the floor of every sector.
           This prevents the floor from moving around while the turret is
           being rotated.
  STEP 12: If you do not want enemies to enter the turret, place an ST1 sprite
           in every sector of the turret and give it a TAG1 value of 38.
           YOU'RE DONE!!!  Look at TURRET.MAP if you need help understanding
           something.

4.31 Automatic Turrets
     Map Name: AUTOTURT.MAP

       This effect creates a turret that follows the players movement and,
       if told to do so, will shoot at the player.  Again, this effect is
       simple in nature, but it involves a good bit of work to create.

  STEP 1: Make your turret sectors.  Raise them to the appropriate heights
          in 3D mode, and give them appropriate textures.  Now enter 2D mode
          and turn off the grid.  Move the cursor to the OUTSIDE of one of the
          OUTERMOST walls and press [ALT]+[T].  This allows you to enter the
          lotag on this side of the red wall.  Give it a value of 504, telling
          the game that this is the outermost area of the turret.  You need
          only to do this on one wall, BUT MAKE SURE IT IS THE OUTSIDE OF ONE
          OF THE OUTERMOST WALLS.
  STEP 2: Press the [H] key inside the center sector, and enter in the value
          of 96.  This tells the program that this type of sector object is
          a turret.
  STEP 3: Place one ST1 sprite just above and to the left of the top left of
          the turret.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   500 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 500, sector
                   object 2 would have a TAG1 value of 505, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 595.
          Now place one ST1 sprite just below and to the right of the lower
          right of the turret.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   501 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 501, sector
                   object 2 would have a TAG1 value of 506, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 596.
          These two sprites are called the "bound_so_upper" and
          "bound_so_lower" sprites, and they form an invisible rectangle that
          the program uses to know just exactly what sectors and sprites to
          rotate when the turret is in operation.  Now press the [T] key
          inside the center sector, and give it the same value as you gave
          the TAG1 value of the "bound_so_lower" sprite.
  STEP 4: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 16.  Now point the sprite towards the front of the turret.  This
          tells the program in which direction the front of the turret is.
  STEP 5: Although optional, you can place one ST1 sprite in the center sector
          with a TAG1 value of 68.  This tells the game that the turret can
          only turn a certain amount of degrees in either direction, which
          you specify with the TAG2 value.  A TAG2 value give you a rotation
          limit of 90 degrees on each side (180 degrees total).
  STEP 6: Place one ST1 sprite in the center sector and give it a TAG1 value
          of 81.  This tells the game that this is an automatic turret that
          follows the players movements.
  STEP 7: Place one ST1 sprite in the center sector and give it a TAG1 value
          of 76.  This tells the game that this turret can be destroyed (this
          is an optional sprite).  The TAG2 value is the damage the turret can
          take before breaking, and a good value for this is from about 500 to
          1000.  Now place one ST1 sprite where you want the smoke to spawn
          when the turret is broken.  Give it a TAG1 value of 69, a TAG3 value
          of 3, a TAG6 value of 3, and give it a unique TAG2 value.
  STEP 8: Place one ST1 sprite somewhere in the turret, and give it a TAG1
          value of 134.  Give it the same TAG2 value you gave the sprite in
          step 7, and change the TAG4 value to 276.
  STEP 9: Place one ST1 sprite near where you want the shots to come out
          of the turret at.  Raise it up in 3D mode to be at the height you
          want it to be, and get back into 2D mode.  Give the sprite a TAG1
          value of 62.  To change the ammunition type of the turret, change
          the TAG3 value to one of the following:
            0 : Tank Shell
            1 : Machine Gun
            2 : Laser
            3 : Rail Gun
            4 : Fireball
            5 : Rocket
            6 : Micro Missile Battery (Lots of missiles at once)
  STEP 10: Enter 3D mode and press the [R] key on the floor of every sector.
           This prevents the floor from moving around while the turret is
           being rotated.  YOU'RE DONE!!!  Look at AUTOTURT.MAP if you need
           help understanding something.

4.32 Boats
     Map Name: BOAT.MAP

       Making boats is quite a bit simpler effect to make than making tanks,
       which will be explained in the next how-to.  This, as are the turrets,
       is quite a lengthy building process, but it is a very straight forward
       effect to make.

  STEP 1: Make a rectangle sector that will surround your boat by just a
          little bit (it should be a little larger than your boat will be
          in other words).  Make sure that you make this sector valid
          player space.  Now enter 2D mode and turn off the grid.  Move the
          cursor to the OUTSIDE of one of the OUTERMOST walls of this
          rectangle, and press [ALT]+[T].  This allows you to enter the lotag
          on this side of the red wall.  Give it a value of 504, telling the
          game that this is the outermost area of the boat.  You need only to
          do this on one wall, BUT MAKE SURE IT IS THE OUTSIDE OF ONE OF THE
          OUTERMOST WALLS.
  STEP 2: Make your boat sectors.  They should all be valid player space.
          THEY ALSO CANNOT BE IN ANY WAY CONNECTED TO THE RECTANGLE SECTOR
          THAT SURROUNDS THEM!  Raise the sectors to the appropriate heights,
          and give them appropriate textures.  Now give the center sector
          (the sector the player must be in to activate the boat) a sector
          hitag (press the [H] key in the sector in 2D mode) of 98.
  STEP 3: Place one ST1 sprite just above and to the left of the top left of
          the outer rectangle sector.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   500 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 500, sector
                   object 2 would have a TAG1 value of 505, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 595.
          Now place one ST1 sprite just below and to the right of the lower
          right of the outer rectangle sector.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   501 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 501, sector
                   object 2 would have a TAG1 value of 506, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 596.
          These two sprites are called the "bound_so_upper" and
          "bound_so_lower" sprites, and they form an invisible rectangle that
          the program uses to know just exactly what sectors and sprites to
          rotate when the boat is in operation.  Now press the [T] key
          inside the center sector, and give it the same value as you gave
          the TAG1 value of the "bound_so_lower" sprite.
  STEP 4: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 1.  This tells the program that this sector is the sector the
          player must be in to activate the boat.
  STEP 5: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 16.  Now point the sprite towards the front of the boat.  This
          tells the program in which direction the front of the boat is.
  STEP 6: Place one ST1 sprite in the center sector and give it the following
          tag values:
            TAG1 = 147
            TAG2 = Angle speed (From 1 to 16384) (600 is a typical value)
            TAG3 = Angle "slide" amount (From 1 to 100) (I left this as 32,
                   which is the default value)
            TAG6 = Movement speed (From 1 to 16384) (9000 is a typical value)
            TAG7 = Movement "slide" amount (From 1 to 100) (25 is a typical
                   value)
            BOOL1 = 1 : Don't shake the screen when running into something
                        (this value is recommended for boats)
            BOOL4 = 1 : Rectangular clipping; Difficult to fully understand
                        usage, but this value is *HIGHLY* recommended.
  STEP 7: Place one ST1 sprite in the center sector and give it a TAG1
          value of 134.  Vehicles are usually suited best with two sounds,
          an idle sound and an operation sound.  Set TAG4 to the sound you
          want to play, and TAG5 to the second sound.  For a slowly idling
          boat, give TAG4 a value of 511 and TAG5 a value of 510.  For a 
          fast idling boat give TAG4 a value of 510 and TAG5 a value of
          143.  Give this sprite a unique value for TAG2.  Make sure that
          the BOOL2 value is 1.
  STEP 8: Place one ST1 sprite in the center sector.  Give it a TAG1 value
          of 76.  The TAG2 value is the amount of damage the boat can
          take before it breaks.  A typical number for this is anywhere
          from 200 to 400.  Change the TAG 5 value to either -1 (to start the
          boat out broken), or leave it as 0 (to make the boat start with
          "full health").  
  STEP 9: Place one ST1 sprite near the back of the boat, and give it a
          TAG1 value of 134.  Give this sprite a unique TAG2 value, and a
          TAG4 value of 276.
  STEP 10: Place one ST1 sprite where you want smoke to come out of when
           the boat is broken.  Give it a TAG1 value of 69, and a TAG3
           value of 3.  Give this sprite the same value for TAG2 as you
           gave the ST1 sprite in Step 9.
  STEP 11: Go into 2D mode and, if you already have not, make some sectors
           that look like raised guns (this is optional).  You can give
           these sectors nice textures, and raise them to the height that
           you desire.
  STEP 12: Place ST1 sprites at the end of each gun, and raise it so that it
           is the height that you want the shots to originate from.  Give
           these sprites a TAG1 value of 62.  Now change the TAG3 value to
           the type of ammunition you want.  Here are the choices:
             0 : Tank Shell
             1 : Machine Gun
             2 : Laser
             3 : Rail Gun
             4 : Fireball
             5 : Rocket
             6 : Micro Missile Battery (Lots of missiles at once)
  STEP 13: Enter 3D mode and press the [R] key on all the floors of the boat,
           BUT NOT THE RECTANGLE SECTOR SURROUNDING THE BOAT.  This will stop
           the floors from moving while the boat is moving.

4.33 Tanks
     Map Name: TANKS.MAP

       Tanks are the exact same effect as boats, but they are a much more
       complex effect to get to work properly (making the tank treads move
       with the tank itself is quite a pain to get right).  But, with time,
       this can be an effect that you can make in no time at all.

  STEP 1: Make a rectangle sector that will surround your tank by just a
          little bit (it should be a little larger than your tank will be
          in other words).  Make sure that you make this sector valid
          player space.  Now enter 2D mode and turn off the grid.  Move the
          cursor to the OUTSIDE of one of the OUTERMOST walls of this
          rectangle, and press [ALT]+[T].  This allows you to enter the lotag
          on this side of the red wall.  Give it a value of 504, telling the
          game that this is the outermost area of the tank.  You need only to
          do this on one wall, BUT MAKE SURE IT IS THE OUTSIDE OF ONE OF THE
          OUTERMOST WALLS.
  STEP 2: Make your tank sectors.  They should all be valid player space.
          THEY ALSO CANNOT BE IN ANY WAY CONNECTED TO THE RECTANGLE SECTOR
          THAT SURROUNDS THEM!  Raise the sectors to the appropriate heights,
          and give them appropriate textures.  Now give the center sector
          (the sector the player must be in to activate the tank) a sector
          hitag (press the [H] key in the sector in 2D mode) of 98.
  STEP 3: Place one ST1 sprite just above and to the left of the top left of
          the outer rectangle sector.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   500 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 500, sector
                   object 2 would have a TAG1 value of 505, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 595.
          Now place one ST1 sprite just below and to the right of the lower
          right of the outer rectangle sector.  Give it the following tags:
            TAG1 = You can have 20 of these sprites in any one level.  The
                   value for this tag is calculated as follows:
                   501 + (5 * sector object #)
                   Sector object 1 would have a TAG1 value of 501, sector
                   object 2 would have a TAG1 value of 506, and so on, all
                   the way up to sector object 19, which has a TAG1 value
                   of 596.
          These two sprites are called the "bound_so_upper" and
          "bound_so_lower" sprites, and they form an invisible rectangle that
          the program uses to know just exactly what sectors and sprites to
          rotate when the tank is in operation.  Make sure that these sprites
          include the turret sprite, so that it too can move with the tank.
          Now press the [T] key inside the center sector, and give it the same
          value as you gave the TAG1 value of the "bound_so_lower" sprite.
  STEP 4: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 1.  This tells the program that this sector is the sector the
          player must be in to activate the tank.
  STEP 5: Place one ST1 sprite in the center sector, and give it a TAG1 value
          of 16.  Now point the sprite towards the front of the tank.  This
          tells the program in which direction the front of the tank is.
  STEP 6: Place one ST1 sprite in the center sector and give it the following
          tag values:
            TAG1 = 147
            TAG2 = Angle speed (From 1 to 16384) (600 is a typical value)
            TAG3 = Angle "slide" amount (From 1 to 100) (I left this as 32,
                   which is the default value)
            TAG6 = Movement speed (From 1 to 16384) (9000 is a typical value)
            TAG7 = Movement "slide" amount (From 1 to 100) (25 is a typical
                   value)
            BOOL1 = 1 : (Optional) Don't shake the screen when running into
                        something
            BOOL4 = 1 : Rectangular clipping; Difficult to fully understand
                        usage, but this value is *HIGHLY* recommended.
  STEP 7: Place one ST1 sprite in the center sector and give it a TAG1
          value of 134.  Vehicles are usually suited best with two sounds,
          an idle sound and an operation sound.  Set TAG4 to the sound you
          want to play, and TAG5 to the second sound.  The best values for a
          tank are a TAG4 value of 149, and a TAG5 value of 147.  Make sure
          that BOOL2 has a value of 1.
  STEP 8: Place one ST1 sprite in the center sector.  Give it a TAG1 value
          of 76.  The TAG2 value is the amount of damage the tank can
          take before it breaks.  A typical number for this is anywhere
          from 400 to 700.  Change the TAG 5 value to either -1 (to start the
          tank out broken), or leave it as 0 (to make the tank start with
          "full health").  
  STEP 9: Place one ST1 sprite near the back of the tank, and give it a
          TAG1 value of 134.  Give this sprite a unique TAG2 value, and a
          TAG4 value of 276.
  STEP 10: Place one ST1 sprite where you want smoke to come out of when
           the tank is broken.  Give it a TAG1 value of 69, and a TAG3
           value of 3.  Give this sprite the same value for TAG2 as you
           gave the ST1 sprite in Step 9.
  STEP 11: Go into 2D mode and, if you already have not, place a turret sprite
           where you want the gun turret to be (Tile #764).  Raise it to the
           appropriate height.
  STEP 12: Place one ST1 sprite at the end of the gun, and raise it up so that
           it is the height that you want the shots to originate from (right
           at the same height of the gun is ideal).  Make sure that this
           sprite isn't exactly at the end of the gun, but a little ways out
           beyond the end of the gun (Look at TANKS.MAP to fully understand).
           Give this sprite a TAG1 value of 62.  Now change the TAG3 value to
           the type of ammunition you want.  Here are the choices:
             0 : Tank Shell
             1 : Machine Gun
             2 : Laser
             3 : Rail Gun
             4 : Fireball
             5 : Rocket
             6 : Micro Missile Battery (Lots of missiles at once)
  STEP 13: Enter 3D mode and press the [R] key on all the floors of the tank,
           BUT NOT THE RECTANGLE SECTOR SURROUNDING THE TANK.  This will stop
           the floors from moving while the tank is moving.
  STEP 14: Now for the tank treads.  This is probably the hardest thing to
           get exactly right, but it is possible to do.  Make sure that the
           floor relative is set to the "on" setting in the tank tread
           sectors (press the [R] key in 3D mode).  Place one ST1 sprite in
           each tread sector, and give them the following tags:
             TAG1 = 19
             TAG2 = Speed (Use 100...it's a typical value)
             TAG4 = Point the sprite towards the front of the tank
             BOOL1 = 1
  STEP 15: Place sprites near the wall sections of the treads (where the
           tread wraps around), and point each at the red wall to be affected
           (the tread wall in this case).  Give them the following tags:
             TAG1 = 23
             TAG2 = Speed (Use 100...it's a typical value)
             TAG4 = Point the sprite towards the wall to be affected
             TAG6 = Use the exact same value as in TAG4
             BOOL1 = 1
      You're all done with your tank!  Take a look at TANKS.MAP if you need
      help understanding something...just pull it all apart and you should
      get it.

----------------
LIGHTING EFFECTS
----------------
4.34 Basic Lighting Effects
     Map Name: NONE

       Basic lighting effects include a number of things, the first of which
       we will cover being regular lighting effects (known as "still
       lighting").

  4.34.1 Still Lighting
         Map Name: NONE

           Still lighting is the lighting you see around the levels that
           doesn't flicker or move in any way.  This lighting is set by you,
           and is accomplished by pressing the [']+[S] keys on the desired
           floor, wall, ceiling, or sprite in 3D mode, and entering a value.
           Shading is what makes or breaks a level, so use it throughout.

  4.34.2 Switchable Lighting
         Map Name: NONE

           Switchable lights are very cool, and make the level very user
           friendly, and it creates the effect of a true location.  To make
           a switchable light, do the following:
    STEP 1: Place a switch somewhere, where you will control the light.  Give
            the switch the following tags:
              TAG1 = Unique Number
              TAG2 = 211
    STEP 2: Create the light(s) to be turned on or off.  Shade everything
            in Build to look when the light is to be off.
    STEP 3: Place one ST1 sprite to be used for your lighting, and give it
            the following tags:
              TAG1 = 108
              TAG2 = Same unique number as TAG1 on switch
              TAG3 = Type of effect
                     0 = Still Lighting (Just turns on and off)
                     1 = Flicker
                     2 = Fade
                     3 = Flicker ON (flickers on, turns off regularly)
                     4 = Fade ON or OFF (fades on and off)
              TAG4 = Timing - the smaller the number, the faster the light
                     flickers or fades
              TAG5 = Brighten Amount - how much the light brightens; the
                     value is how much will be subtracted from the current
                     shading value
              TAG6 = Darken amount - same as TAG5 but it adds to the current
                     shading amount
              TAG7 = Shade increment/decrement for fading lights- default is 1
             BOOL1 = 0: Light is off
                     1: Light is on
             BOOL2 = 1: Don't affect the floor
             BOOL3 = 1: Don't affect the ceiling
             BOOL4 = 1: Don't shade the walls
             BOOL5 = 1: Shade the outer walls - red lines have both inner
                        and outer walls; by default the lighting will not
                        shade the outer walls
             BOOL6 = 1: Don't affect the palette of the sector
             BOOL8 = 1: Inverse intensity.  The sector is brightened by TAG6
                        and darkened by TAG5 when this is on.
             BOOL10 = 1: Direction to start a fade (when using multiple
                         sectors)
    STEP 4: Repeat the above procedures for different lights or for multiple
            sectors in lighting.

  4.34.3 Movement Lighting
         Map Name: NONE

           Movement lighting is lighting which flickers or fades in or out.
    STEP 1: Create your light to be used.
    STEP 2: Place one ST1 sprite in the light sector, and give it the
            following tags:
              TAG1 = 108
              TAG3 = Type of effect
                     0 = Still Lighting
                     1 = Flicker
                     2 = Fade
              TAG4 = Timing - the smaller the number, the faster the light
                     flickers or fades
              TAG5 = Brighten Amount - how much the light brightens; the
                     value is how much will be subtracted from the current
                     shading value
              TAG6 = Darken amount - same as TAG5 but it adds to the current
                     shading amount
              TAG7 = Shade increment/decrement for fading lights- default is 1
             BOOL1 = 0: Light is off
                     1: Light is on
             BOOL2 = 1: Don't affect the floor
             BOOL3 = 1: Don't affect the ceiling
             BOOL4 = 1: Don't shade the walls
             BOOL5 = 1: Shade the outer walls - red lines have both inner
                        and outer walls; by default the lighting will not
                        shade the outer walls
             BOOL6 = 1: Don't affect the palette of the sector
             BOOL8 = 1: Inverse intensity.  The sector is brightened by TAG6
                        and darkened by TAG5 when this is on.
             BOOL10 = 1: Direction to start a fade (when using multiple
                         sectors)
    STEP 3: You're all done!  Use these effects in your level, but don't
            put too many in one area; it looks kind of bad having tons of
            flickering lights in one area.

---------------
PALETTE EFFECTS
---------------
4.35 Fog and Haze
     Map Name: NONE

       To make fog or haze, you must set the palette of every wall, floor,
       and ceiling to the type of haze you wish to have.  This can be
       accomplished by pressing the [ALT]+[P] keys on the desired objects
       in 3D mode.  Here is the list of "appropriate" colors (you can use
       whatever value you want):

       1 - White (Used for Fog)
       5 - Red (Used for Red Haze)
       9 - Blue (Used for Blue Haze)

------------
WALL EFFECTS
------------
4.36 Masked Walls
     Map Name: NONE

       To make a masked wall, enter 3D mode and point to the red line that
       you wish to make a masked wall (they only go on red lines).  Press
       the [M] key on that area, and there you go!

4.37 One-Way Walls
     Map Name: NONE

       To make a one-way wall, enter 3D mode and point to the red line that
       you wish to make a masked wall (they only go on red lines).  Press
       the [1] key on that area, and there you go!

4.38 On-Demand Wall-Damage
     Map Name: WALLDMAG.MAP

     This effect allows you to make walls that move when hit with an
     explosive weapon (this allows you to make things that could possibly
     show "battle-damage").

  STEP 1: Make the walls that you wish to move when hit.  Keep in mind that
          it will be the *vertices* that move, not the wall lines themselves.
  STEP 2: Place one ST1 sprite over each vertex you wish to move.  Give each
          sprite the following tags:
            TAG2 = Unique Number (this controls which vertices will move
                   when one of them is hit.  For example, if I have 4
                   vertices I want to move on one wall, and I gave them all
                   the same TAG2 value, when one of them gets hit, all 4
                   vertices would move).
            TAG4 = Angle - point in the direction you want the wall point
                   to move
            TAG5 = Pic 1 - Next wall texture
            TAG6 = Pic 2 - Previous wall texture 
            TAG7 = Shade 1 - Next wall shade
            TAG8 = Shade 2 - Previous wall shade
            TAG9 = Number of times the point can be shot
            TAG10= Random angle difference - 1 to 128 - the larger the
                   number the greater the angle deviance.
            TAG13= Distance to move point each time it's shot

        "This creates a dentable wall. Every time the wall vertex is shot with
        an explosive weapon, it will move the distance in TAG13, up to TAG9
        times. Place the ST1 sprite on TOP of the vertex to move. One vertex
        will move. Every vertex is associated with two walls: the next wall
        and the previous wall. If TAG5 or TAG6 are non-zero, then that wall
        will take on the specified texture when the vertex is shot. If TAG7
        or TAG8 are non-zero, then that wall will take on the new shade
        value specified. This will work for sector object walls with one
        limitation: you cannot tag the outside wall loop tagged with a 504 to
        be moveable. NOTE: Changing the value of TAG13 will cause the ST1
        sprite to move strangely in 3D editing mode. Don't worry. If 2D mode
        says it's on the vertex, then it's on the vertex."

4.39 How To Block Actors
     Map Name: NONE

     This effect allows you to create sectors that enemy actors cannot enter
     physically.  The player can still enter these areas, and enemies can
     shoot into this sector.  Useful to do when making turrets, boats, etc.

  STEP 1: Create the sector(s) you wish enemies to stay out of.
  STEP 2: Place one ST1 sprite in each sector and give it a TAG1 value of 38.

4.40 Automatic Wall Deletion
     Map Name: NONE

     This effect is an interesting way of making two sided walls (red
     lines in 2D mode) destructible.

  STEP 1: Create the masked, 1-way, or blocking wall that you want to destroy.
  STEP 2: Give the wall you wish to destroy a lotag of 307, and a unique
          hitag.
  STEP 3: Place an ST1 sprite somewhere on your map, and give it the following
          tags:
            TAG1 = 132
            TAG2 = Same unique number as wall hitag.
            TAG5 = Tile Number to switch to when broken (this is not needed
                   if TAG8 is 1)
            TAG7 = Number of damage hits to take before a sprite or wall
                   texture is BROKEN. Note that if this is set to 2 or
                   greater the picnum will increment toward TAG5 until
                   TAG5 is reached. The graphics in the art file must be
                   imported in the correct order to support this. Nothing
                   in Shadow Warrior uses this, but the functionality is
                   there for anybody who feels like importing their own
                   art.
            TAG8 = BROKEN type: 
                   0 : Change the picnum only
                   1 : Kill sprite/wallpic when BROKEN
                       For walls this will turn off masking, blocking,
                       and 1-way.
                   2 : Turn off blocking bits when BROKEN
                       For walls this will just turn off blocking bits,
                       but leave the masking or 1-way alone. Breaking
                       an air vent grate is an example of this.

--------------------
BASIC SECTOR EFFECTS
--------------------
4.41 Invisible Ramps
     Map Name: NONE

      This effect allows you to create "invisible ramps" on which the player
      can walk up or down in the game.

  STEP 1: Create the ramp in BUILD, just as it would look if it were visible.
  STEP 2: Place one ST1 sprite in the ramp sector, and give it a TAG1 value
          of 99.  Upon playing the game, the ramp will not appear (it will
          actually "level out"), but all movement still acts as if the ramp
          is there.

4.42 Slides
     Map Name: SLIDE.MAP

     Using this effect, you can make slides that the player travels down,
     regardless of whether he touches the slide or not (i.e. - Lo Wang will
     still slide down, even when in mid-air over the sector).  Actors other
     than the player are not affected by this effect.

  STEP 1: Create the slide sectors.
  STEP 2: Place one ST1 in the sectors you will slide down, and give them
          the following tags:
            TAG1 = 135
            TAG2 = Speed Value (0 is fastest, 32 is slowest)
                   Note that the angle of the slope also has an effect on
                   the sliding speed.

4.43 Misc. Vators (Lifts, Pistons, Etc.)
     Map Name: VATORS.MAP

     Vators are basically sectors that move vertically.  Doors, lifts,
     pistons, crushers, and more can be made using vators.  This is why
     these effects are probably the most used out of all the effects in
     Shadow Warrior.  This section will cover miscellaneous vators, such
     as lifts, pistons, and other types (doors are covered at the beginning
     of section 4).  Note: This effect is quite complex in nature, so take
     your time when making these.

  STEP 1: Create the sector you wish to be a vator.
  STEP 2: Place one ST1 sprite in this sector, and give it the following
          tags:
		TAG2 = Unique Number
		TAG3 = Type
                        0 = Manual/Switch/Trigger - Primarily used for a
                            basic manually operated door. If a manual type
                            has a TAG2 value that is not 0 then ALL vators
                            with the same TAG2 value will be operated on.
                            Manual operation - works from either within the
                            sector or alongside of the sector.
                            Switch operation - switch resets when the vator
                            goes to default position.
                            Trigger operation - same as switch but it's a
                            floor trigger.
                        1 = Switch/Trigger Only - Cannot be operated manually
                            ALL vator types with the same TAG2 value get
                            operated on
                        2 = Automatic - Starts Active
                        3 = Automatic - Starts Inactive - must be turned on
                            with a switch or trigger
                TAG4 = Speed
                TAG5 = Acceleration at which door approaches TAG4
                TAG6 = Match at destination - when a vator reaches its
                       destination it will trigger any event with this
                       tag value
                TAG9 = Auto return time - 1/8th of a second resolution - if
                       non 0 then the vator will return to default position
                       after allotted time - if 0 then it will stay in the on
                       position until operated again
                BOOL1=  0: Start in the off position
                        1: Start in the on position
                BOOL2=  0: Toggle
                        1: Operate once only
                BOOL3=  0: Crush player
                        1: Don't crush player
                BOOL4 = 0: Operate in WangBang games
                        1: Not allowed to operate in WangBang games
                BOOL5 = 0: Don't call TAG6 match when moving to OFF position
                        1: Call TAG6 match when moving to the ON or OFF
                           position
                BOOL6 = 0: Wait until motion is complete before it can be
                           operated again
                        1: Can be operated again while sector is in motion
                BOOL7 = 0: Actors are allowed to operate this vator
                        1: Actors can't operate this vator
                BOOL11= 1: Displays "Single play only" message when
                           operated in WangBang. Use with BOOL4.
  STEP 3: Raise the ST1 sprite to the height that you want the vator to be
          when it is at it's highest position.  If you want it to start
          at it's highest position, set the BOOL1 tag to 1.  Otherwise, set
          the BOOL1 tag to 0.  If you are tilting the ceiling of a sector,
          make sure that you flip the ST1 sprite over (so that it is upside
          down).
  STEP 4: If the vator is switch or trigger activated, place a trigger
          somewhere in your level.  Give it a hitag value equal to step 2,
          TAG2.  Take a look at the example map if you don't quite understand.

The "off" position is the position of the sector as it looks in BUILD.  The
"on" position is the height of the ST1 sprite.  Flip the ST1 sprite upside
down (by pressing [F] twice on it) to do a ceiling vator like a door or
crusher.  Any vator can be locked by placing one ST1 sprite in the same
sector, and giving it a TAG1 value of 29.  Two SECT_VATOR sprites can be
placed in a sector to operate the ceiling and floor separately.

4.44 Earthquakes
     Map Name: NONE

     This effect allows you to create earthquakes.  The earthquakes available
     here are much more powerful and useful than in Duke Nukem 3D.

  STEP 1: Create a sector in which you want the earthquake to be triggered.
          Give that sector the following tags:
            Hitag (TAG1) = Unique Number
            Lotag (TAG2) = 211
  STEP 2: Place one ST1 sprite in this sector, and give it the following tag
          values:
            TAG2 = Same Unique Number as sector hitag
            TAG3 = Shake Z amount - This is the amount the view moves in
                   the Z direction.
            TAG4 = Radius of quake - distance in which quake is felt -
                   this value is multiplied by 8 internally for the
                   distance.  The code is set up so that the quake amount
                   decreases from the epicenter, but this effect can be
                   overridden by setting BOOL1 to "1"
            TAG5 = Duration of quake in seconds
            TAG6 = Timed quake - shake the screen every X seconds, where
                   X = TAG6 multiplied by 10.
            TAG7 = Shake angle amount - amount the view's angle moves
            TAG8 = Shake x,y position amount - multiplied by 8 internally
            TAG9 = Random quake value (1 to 128). Multiplied by 4
                   internally. Used with TAG6. Instead of automatically
                   spawning a quake after time it does a random test.
                   The larger the number the greater the chance of a
                   quake. 0 is default - will not do random test.
            BOOL1= 1: Quake does not decrease from epicenter, and will
                   basically shake the entire level.
            BOOL2= 1: Only quake once and never again
            BOOL3= 1: Wait for trigger before starting timed quake code.
                   This is only used for timed quakes.

4.45 Slopes on Demand (Dynamic Slopes)
     Map Name: SLOPDMND.MAP

     This effect allows you to make a sector slope up or down when triggered
     by a switch or touchplate.  This can be very useful for creating slides
     while playing a level, or making areas accessible that once were not.
     Dynamic slopes act much like vators do, but instead of the floor height
     rising to the ST1 height, the floor slopes to the ST1 height.

  STEP 1: Make the sector that you wish to be tilted when triggered.  Make
          sure that the floor will slope the way you want it to by setting
          the first wall on the sector.  The first wall is the "hinge" that
          the sector will rotate upon.  To change this, press [ALT]+[F] in
          either 2D or 3D mode on the wall that you wish to be the first
          wall.
  STEP 2: Place one ST1 sprite in the sector you wish to be tilted.  Give it
          the following tags:
            TAG2 = Unique Number
		TAG3 = Type
                   0 = Manual/Switch/Trigger - primarily used for manual
                       type. If a manual type has a TAG2 value that is
                       not 0 then ALL spikes with the same TAG2 value
                       will be operated on. A spike can be manually
                       operated from either within the sector, or to the
                       side. With switch operation, the switch resets
                       when the spike goes to default position. With
                       trigger operation, it's the same as a switch but
                       it's a floor trigger.
                   1 = Switch/Trigger Only - cannot be operated manually
                       ALL spike types with the same TAG2 value get
                       operated on by the switch or trigger.
                   2 = Automatic - Starts active
                   3 = Automatic - Starts inactive, must be activated
                       with a switch or trigger.
            TAG4 = Speed
            TAG5 = Acceleration at which TAG4 speed is approached
            TAG6 = Unique Number 2 for destination - when a spike reaches its
                   destination it will trigger any event with this
                   value in the event's TAG2 slot
            TAG7 = This must be a value of -1, unless the sector is part
                   of a sector object.  If it is a part of a sector object,
                   this must be the sector object's number.
            TAG9 = Auto return time - 1/8th of a second resolution - if
                   non 0 then the spike will return to its default
                   position after the allotted time. If 0 then it will
                   stay in the ON position until the spike is operated
                   again.
            BOOL1= 0: Start in the off position
                   1: Start in the on position
            BOOL2= 0: Toggle
                   1: Operate once only
            BOOL3= 0: Crush player
                   1: Don't crush player
            BOOL4= 0: Operate in WangBang games
                   1: Not allowed to operate in WangBang games
            BOOL5= 0: Don't call TAG6 match when moving to OFF position
                   1: Call TAG6 match when moving to the ON or OFF
                      position
            BOOL6= 0: Wait until motion is complete before it can be
                      operated again
                   1: Can be operated again while sector is in motion
            BOOL7= 0: Actors are allowed to operate this spike
                   1: Actors can't operate this spike
            BOOL11=1: Displays "Single play only" message when
                      operated in WangBang. Use with BOOL4.
  STEP 3: Raise the ST1 sprite to the height that you want the slope to be
          when it is at it's highest position.  If you want it to start
          at it's highest position, set the BOOL1 tag to 1.  Otherwise, set
          the BOOL1 tag to 0.  If you are tilting the ceiling of a sector,
          make sure that you flip the ST1 sprite over (so that it is upside
          down).
  STEP 4: Place a trigger somewhere in your level.  Give it a hitag value
          equal to step 2, TAG2.  Take a look at the example map if you
          don't quite understand.

4.46 Copy Sectors (Very Cool Indeed)
     Map Name: COPYSECT.MAP

     This is the single most powerful effect that the map designer has access
     to in Shadow Warrior.  This effect was used numerous times on almost
     every level made by 3D Realms.  What this effect allows you to do is
     quite impressive.  Once a trigger of some sort is triggered, the
     sectors that you designate to do so, will be replaced by exact replicas
     of those sectors, with minor alterations.  Here is an example of this
     effect, as it appeared in Shadow Warrior.  You have a room that has
     glass along one wall, and this glass has a crack on it.  On one side of
     the glass is a ton of water, and the inside is dry.  When you blow up
     the glass with a rocket or other explosive, you want the inside to become
     filled with water (making it an underwater area).  You would use this
     effect to create that scenario.  Take a look at the included map for this
     how-to, so you can see exactly how this effect is accomplished.

  STEP 1: Create the sectors you will want to change.  These sectors will be
          known as your "destination sectors".  Now you can either select
          these sectors, copy them, and move them to another location, or you
          can create the sectors over again from scratch.  Make this second
          set of sectors the way you want your area to look after you set off
          some sort of trigger.  These sectors are known as your "source
          sectors".  It is *very* important that your source and destination
          sectors be congruent.  This effect might cause big problems if they
          are not congruent.
  STEP 2: Place one ST1 sprite in each sector of the first set of sectors that
          you created.  Give each sprite the following tags:
            TAG1 = 58
            TAG2 = Unique Number (See STEP 4 for explanation on this)
            TAG3 = Another Unique Number (See STEP 4 for explanation on this)
  STEP 3: Now place one ST1 sprite in each sector of the second set of sectors
          that you created (the way it looks after the trigger is set off).
          Give each sprite the following tags:
            TAG1 = 59
            TAG2 = Same unique number as Step 2, TAG2
            TAG3 = Same unique number as Step 2, TAG3
  STEP 4: Here are some special notes pertaining to the TAG2 and TAG3 values.
          TAG2 is an event number (flip a switch and the copy occurs), so it
          is used to separate different sector copies that you have in your
          level (several of the 3D Realms levels had up to 6 or 7 different
          sector copies).  TAG3 serves to identify which source sector belongs
          to which destination sector when copying multiple sectors at the
          same time.  Take a look at these values in the included map if you
          don't understand.
  STEP 5: Place a trigger of some sort somewhere in your level (we will use
          a switch for right now - you can change it later).  Give the switch
          a TAG2 value of 211, and a TAG1 value of the same unique number
          used in step 2, TAG2.  Now when you enter your level, and you flip
          the switch, the sectors should copy themselves almost instantly.
          Take a look at the example map if you are having trouble, and just
          pull it apart (I use a crack sprite for the trigger in that map).

-------------------
FUN WITH EXPLOSIVES
-------------------
4.47 C-9 Effects

     C-9 is one of the coolest effects available in Shadow Warrior.  C-9,
     just like in Duke Nukem 3D, is what makes things blow up.  Choreographed
     explosions are always fun to make, as are cracked walls.

4.47.1 Regular Triggered Explosions
       Map Name: C9EFFECT.MAP

       This effect is just what it says it is: making regular explosions
       spawn when you want them to (choreographed explosions).

  STEP 1: Place ST1 sprites in every location you want an explosion to spawn
          from.  Give each sprite the following tags:
            TAG1 = 69
            TAG2 = Unique Number
            TAG3 = Type of Explosion
                   6: Standard explosion
                   7: Explosion with phosphorous (little balls of fire that
                      bounce around and sometimes spawn a flame)
            TAG5 = Time delay before activating in 1/8 second tics (A value
                   of 8 equals 1 second)
            TAG6 = Always set this equal to TAG3
  STEP 2: Place a trigger somewhere (we'll use a switch).  Give the switch
          a TAG1 value equal to step 1, TAG2.  Also give the switch a TAG2
          value of 211.  Now when you flip the switch, the explosions will
          go off.  Cool stuff.

4.47.2 Cracked Walls
       Map Name: C9EFFECT.MAP

       This effect allows you to create cracked walls that, when blown up,
       leave a hole in the wall.

  STEP 1: Create the hole in the wall itself, making it look just like you
          want it to when the wall has been blown up.  Several sectors, with
          slopes on the floors and ceilings can be used to your liking (there
          are basically no restrictions on how the hole must look).
  STEP 2: Place one ST1 sprite in each sector that is a part of the hole.
          Give these sprites the following tags:
            TAG1 = 57
            TAG2 = Unique Number
  STEP 3: Place a crack sprite (#80) over the hole on the wall.  Make sure
          that it appears on the correct side of the wall.  This means that
          you should be able to lower this sprite down in 3D mode (by pressing
          [PGDN]), and it should *not disappear* as it travels down the wall.
          If you aren't sure about this, play your level, and if the crack
          sprite doesn't appear in the game, it's on the wrong side of the
          wall.  To place it on the correct side, press [CTRL]+[PGDN] on the
          sprite in 3D mode, then press the [O] key (the letter o, *not* the
          number zero) on the sprite.  You then can raise it up to the
          desired position (be sure to save your work after doing this).
  STEP 4: Give the crack sprite a TAG1 equal to the ST1 sprite's TAG2 value
          (from step 2), and give it a TAG2 value of 257.  You're all done!
          Take a look at the example map for some variations on this effect,
          and if you don't fully understand how to make this effect.

-------------
MISCELLANEOUS
-------------
4.48 Why Boss Meters Don't Work
     Map Name: NONE

       The Boss Meters that appear in the registered version of the game,
       were preprogrammed to appear in those levels only.  Unless you name
       your level the exact same as the levels that include the bosses in
       the game, the boss meter will not appear.

4.49 Respawning Objects in Multiplayer Games
     Map Name: NONE

       To respawn objects in multiplayer games, follow these simple
       instructions:

  STEP 1: Place an ST1 sprite where you want to spawn the object, and
          give it the following tags:
                TAG1 = 149
                TAG2 = Unique Number
                TAG3 = Item to spawn:
			0/32 = Uzi
			1 = Red Key
			2 = Blue Key
			3 = Green Key
			4 = Yellow Key
			5 = Red Card
			6 = Blue Card
			7 = Green Card
			8 = Yellow Card
                  9 = Gold Skeleton Key
                  10 = Silver Skeleton Key
                  11 = Bronze Skeleton Key
                  12 = Red Skeleton Key
			20 = Uzi for Floor
			40 = Repair Kit
                  41 = Shurikens
                  42 = Sticky Mines
			43 = Rocket Launcher
			44 = Rocket Battery
			45 = Grenade Launcher
			46 = Grenades
			47 = Rail Gun
			48 = Rail Ammo
			51 = Shotgun
			52 = Shotgun Ammo
			53 = Head
			55 = Heart
                  57 = Gray Armor (can't spawn red armor)
                  58 = Portable Medkit
                  59 = Small Medkit
			60 = Chem Bomb
			61 = Flash Bomb
			62 = Nuke
			63 = Caltrops
			64 = Cookie
			65 = Heat seeker card
			66 = Cloak
			67 = Night Vision
			90 = Boy Bunny
			91 = Girl Bunny
			92 = Random Bunny
                TAG4 = Angle to throw the item
                TAG7 = Velocity 0 to 255
                       Set to 0 and the item stays in place
                TAG8 = Jump velocity 0 to 255
                BOOL1= 0: Kill the ST1 after it's triggered
                       1: Don't kill after it's triggered
                BOOL2= 1: Don't spawn another item if a sprite exists in
                          the exact position of the SPAWN_ITEMS sprite.

        Flag the ST1 as a Multiplayer only item (F8 menu, option 2), and the
        item will only spawn during a WangBang game.

==============
5: INFORMATION
==============
5.1 ST1 Tag List

Here is a complete list of all the ST1 Tags.  This list only shows the different functions that are available, not the different flags for each function.

   0. SECT_SINK
   1. SECT_OPERATIONAL
   3. SECT_CURRENT
   5. SECT_NO_RIDE
   7. SECT_DIVE_AREA
   8. SECT_UNDERWATER
   9. SECT_UNDERWATER2
   16. SO_ANGLE
   19. SECT_FLOOR_PAN
   21. SECT_CEILING_PAN
   23. WALL_PAN_SPEED
   29. SECT_LOCK_DOOR
   30. SPRI_CLIMB_MARKER
   31. SECT_SO_SPRITE_OBJ
   32. SECT_SO_DONT_BOB
   33. SECT_SO_SINK_DEST
   34. SECT_SO_DONT_SINK
   37. SECT_SO_FORM_WHIRLPOOL
   38. SECT_ACTOR_BLOCK
   42. MULTI_PLAYER_START
   43. FIREBALL_TRAP
   44. BOLT_TRAP
   45. SECT_SO_DONT_ROTATE
   46. PARALLAX_LEVEL
   47. SECT_DONT_COPY_PALETTE
   48. MULTI_COOPERATIVE_START
   49. SO_SET_SPEED
   50. SO_SPIN
   51. SO_SPIN_REVERSE
   52. SO_BOB_START
   53. SO_BOB_SPEED
   55. SO_TURN_SPEED
   56. LAVA_ERUPT
   57. SECT_EXPLODING_CEIL_FLOOR
   58. SECT_COPY_DEST
   59. SECT_COPY_SOURCE
   62. SHOOT_POINT
   63. SPEAR_TRAP
   64. SO_SYNC1
   65. SO_SYNC2
   66. DEMO_CAMERA
   68. SO_LIMIT_TURN
   69. SPAWN_SPOT
   70. SO_MATCH_EVENT
   71. SO_SLOPE_FLOOR_TO_POINT
   72. SO_SLOPE_CEILING_TO_POINT
   73. SO_TORNADO
   75. SO_AMOEBA
   76. SO_MAX_DAMAGE
   77. SO_RAM_DAMAGE
   80. SO_KILLABLE
   81. SO_AUTO_TURRET
   82. SECT_DAMAGE
   84. WARP_TELEPORTER
   85. WARP_CEILING_PLANE
   86. WARP_FLOOR_PLANE
   87. WARP_COPY_SPRITE1
   88. WARP_COPY_SPRITE2
   90. PLAX_GLOB_Z_ADJUST
   92. SECT_VATOR
   97. CEILING_Z_ADJUST
   98. FLOOR_Z_ADJUST
   99. FLOOR_SLOPE_DONT_DRAW
   100. SO_SCALE_INFO
   101. SO_SCALE_POINT_INFO
   102. SO_SCALE_XY_MULTIPLY
   103. SECT_WALL_MOVE
   104. SECT_WALL_MOVE_CANSEE
   106. SECT_SPIKE
   108. LIGHTING
   109. LIGHTING_DIFFUSE
   110. VIEW_LEVEL1
   111. VIEW_LEVEL2
   120. VIEW_THRU_CEILING
   121. VIEW_THRU_FLOOR
   132. BREAKABLE
   132. BREAKABLE_SPRITE
   133. QUAKE_SPOT
   134. SOUND_SPOT
   135. SLIDE_SECTOR
   136. CEILING_FLOOR_PIC_OVERRIDE
   140. TRIGGER_SECTOR
   141. DELETE_SPRITE
   143. SECT_ROTATOR
   144. SECT_ROTATOR_PIVOT
   145. SECT_SLIDOR
   146. SECT_CHANGOR
   147. SO_DRIVABLE_ATTRIB
   148. WALL_DONT_STICK
   149. SPAWN_ITEMS
   150. STOP_SPOUND_SPOT
   202. BOUND_FLOOR_BASE_OFFSET
   203. BOUND_FLOOR_OFFSET
   500-596: SECT_SO_BOUNDING
   1000. MIRROR_CAM
   1002. AMBIENT_SOUND
   1005. ECHO_SPOT
   1006. DRIP_GENERATOR  

5.2 Sector Tag List

Here is a list of the sector tags used in the game:

   Sector Triggers
     43. TAG_TRIGGER_MISSILE_TRAP
     116. TAG_LEVEL_EXIT_SWITCH
     206. TAG_SECTOR_TRIGGER_VATOR
     210. TAG_LIGHT_TRIGGER
     211. TAG_TRIGGER_EVERYTHING
     212. TAG_TRIGGER_EVERYTHING_ONCE
     216. TAG_SPAWN_ACTOR_TRIGGER
     217. TAG_SECRET_AREA_TRIGGER
     240. TAG_SPRING_BOARD
   Sine wave floor or ceiling
     400. TAG_SINE_WAVE_FLOOR
     420. TAG_SINE_WAVE_CEILING
     440. TAG_SINE_WAVE_BOTH
   Sector Object Tags
     501. TAG_OBJECT_CENTER

5.3 Wall Tag List

Here is a short list of the Wall Tags that are used in the game:

   Sine wave wall effect
     300. TAG_WALL_SINE_Y_BEGIN
     301. TAG_WALL_SINE_X_BEGIN
     302. TAG_WALL_SINE_Y_END
     303. TAG_WALL_SINE_X_END
   Other Wall Tags
     305. TAG_WALL_CLIMB
     306. TV_CAMERA_SCREEN
     307. TAG_WALL_BREAK
     900. TAG_WALL_PLAY_SOUND
   Sector Object Wall Tags
     500. TAG_WALL_LOOP_DONT_SPIN
     501. TAG_WALL_LOOP_REVERSE_SPIN
     502. TAG_WALL_LOOP_SPIN_2X
     503. TAG_WALL_LOOP_SPIN_4X
     504. TAG_WALL_LOOP_OUTER
     507. TAG_WALL_LOOP_DONT_SCALE
     508. TAG_WALL_LOOP_OUTER_SECONDARY
     550. TAG_WALL_ALIGN_SLOPE_TO_POINT

5.4 Level Credit List

This is a list of every level in the registered version of Shadow Warrior, and the credits for the level designers.

    1. Seppuku Station
       Finished/Modified by Stephen Cole
       Started by Randy Pitchford
       FILENAME: $bullet.map

    2. Zilla Construction 
       By Stephen Cole
       FILENAME: $dozer.map

    3. Master Leep's Temple
       By Keith Schuler
       FILENAME: $shrine.map

    4. Dark Woods of the Serpent
       Finished/Modified by Keith Schuler
       Started by Randy Pitchford
       FILENAME: $woods.map

    5. Rising Son
       By Keith Schuler
       FILENAME: $whirl.map

    6. Killing Fields
       By Stephen Cole
       FILENAME: $tank.map

    7. Hara-Kiri Harbor
       By Stephen Cole
       FILENAME: $boat.map

    8. Zilla's Villa
       By Stephen Cole
       FILENAME: $garden.map

    9. Monastery
       By Stephen Cole
       FILENAME: $outpost.map

    10. Raider of the Lost Wang
        By Stephen Cole
        FILENAME: $hidtemp.map

    11. Sumo Sky Palace
        Finished/Modified by George Broussard
        Started by Randy Pitchford
        FILENAME: $plax1.map

    12. Bath House
        By Keith Schuler
        FILENAME: $bath.map

    13. Unfriendly Skies
        Finished/Modified by Keith Schuler
        Started by Jim Norwood
        FILENAME: $airport.map

    14. Crude Oil
        Finished/Modified by Stephen Cole
        Started by Eric Reuter
        FILENAME: $refiner.map

    15. Coolie Mines
        Finished/Modified by Keith Schuler
        Started by Eric Reuter
        FILENAME: $newmine.map

    16. Subpen 7
        Finished/Modified by Stephen Cole
        Started by Eric Reuter
        FILENAME: $subbase.map

    17. The Great Escape
        Finished/Modified by Keith Schuler
        Started by Eric Reuter
        FILENAME: $rock.map

    18. Floating Fortress
        Finished/Modified by Keith Schuler
        Started by Jim Norwood
        FILENAME: $yamato.map

    19. Water Torture
        By Keith Schuler
        FILENAME: $seabase.map

    20. Stone Rain
        Finished/Modified by Keith Schuler
        Started by Jim Norwood
        FILENAME: $volcano.map

    21. Shanghai Shipwreck
        Finished/Modified by George Broussard
        Started by Randy Pitchford
        FILENAME: $shore.map

    22. Auto Maul
        By Keith Schuler
        FILENAME: $auto.map

    23. Heavy Metal [DM]
        By Stephen Cole
        FILENAME: tank.map

    24. Ripper Valley [DM]
        By Keith Schuler
        FILENAME: $dmwoods.map

    25. House of Wang [DM]
        By Keith Schuler
        FILENAME: $dmshrin.map

    26. Lo Wang Rally [DM]
        By Stephen Cole
        FILENAME: $rush.map

    27. Ruins of the Ronin [CTF]
        By Stephen Cole
        FILENAME: shotgun.map

    28. Killing Fields [CTF]
        By Stephen Cole
        FILENAME: $dmdrop.map

5.4 Palette Listing

    0  Default (no palette adjustment)
    1  Fog (White) Haze
    4  Dark Gray
    5  Heat (Red) Haze
    7  Gray Swap - Brown
    9  Water (Blue) Haze 
    11 Green
    13 Blue
    14 Red
    16 Blue Swap - Tan
    17 Blue Swap - Gray
    18 Blue Swap - Purple
    19 Blue Swap - Cool Red
    20 Blue Swap - Yellow
    21 Blue Swap - Olive
    22 Blue Swap - Green    
    24 Blue Swap - Orange/Brown
    25 Blue Swap - Warm Red
    26 Blue Swap - Dark Gray
    27 Blue Swap - Avocado
    28 Blue Swap - Deep Blue
    29 Blue Swap - Bright Orange
    32 Night Vision

===============================
6: UTILITIES FOR SHADOW WARRIOR
===============================
The Utilities described in this section, allow you to change all kinds of things in Shadow Warrior.

6.1 Editart

Editart can be found on the Shadow Warrior CD under the /GOODIES/BUILD directory.  Editart must be installed into a directory with all of the .ART files extracted from the .GRP file.  There are a total of 25 .ART files (TILES000.ART-TILES024.ART), and they take up about 25 MB of disk space, so make sure you have enough space to place them in your directory!

6.1.1 Editing Your Own Tiles

At first, Editart can seem to be quite impossible to understand, and quite confusing to navigate around in.  But after some use with it, you will find that it is quite easy to use.

        Editing Existing Tiles
        ----------------------
        To edit existing tiles, start up Editart and go to the tile you want
        to change.  You can do this by either pressing [G] and entering the
        number of the tile, pressing [PGUP] or [PGDN] to get to your tile, or
        by pressing [V] and choosing the tile you want to edit by means of a
        tile selection screen (just like in Build).  Once the tile you want to
        change has been selected, you can press [F12] to take a screenshot of
        the tile, or you can edit it within Editart itself.

      * If you choose to take a screenshot:
        Edit the tile in your favorite painting program, save it, enter
        Editart once again, select the tile you edited, press [U], select the
        file you saved your tile as (.pcx or .bmp only I think) and select the
        tile with the mouse and press [Enter].  The tile will now be updated
        with your new artwork.

      * If you choose to edit the tile in Editart:
        Select the tile to be edited.  Edit the tile to your liking (please
        look at BUILDHLP.EXE for the keys to Editart).  Now when you change
        tiles, it will ask you if you want to save the current tile.  If you
        like your changes, press [Y], but if you do not want to save your
        work, press [N].

6.2 GRP Utilities
      These utilities can be found on your SW CD under /GOODIES/BUILD.  They
      allow you to extract things from the SW.GRP file (kextract) and put
      together your own .GRP file (kgroup).

6.2.1 Kextract

Kextract is a nice little program that will bring out every object in the SW.GRP file.  This includes all of the .art files, .map files, .voc files, .mid files, and there are some more.  I would not suggest you use kextract to extract all of the files.  It takes up a TON of disk space and it puts about 2000 (If I remember correctly) files on your disk.  If you want to fool around with that many files and that much disk space having been wasted, go right ahead.  But all I usually extract is the .map files (for reference when making my own levels) and the .art files (for use in Editart).  The usage for this program is this:
 
   Kextract sw.grp [files you want to extract]

This program must be in the same directory as SW.GRP in order to work properly.

6.2.2 Kgroup

Kgroup is also a nice little program that compiles your own .grp files for future use or distribution.  The usage for this program is this:

   Kgroup [grouped file] [@file or filespec...]

6.3 RTSMaker

With this utility, it is possible to make your own Remote-Ridicule sounds for use in game play.  All you have to do is follow a couple of steps and you can have your own sounds ready for taunting your enemies in Wang-Bang!

This program, as well as a sample script file, can be found in /GOODIES/RTSMAKER on your SW CD.  The usage for this program is this:

   RTSMAKER [nameofscriptfile] - This compiles an RTS file
   RTSMAKER -u [nameofscriptfile] - This unpacks an RTS file

The script file format is as follows:
   <Name of RTS file>
   <VOC or WAV file 1>
           .
           .
           .
   <VOC or WAV file 10>

You can make such script files in any text-editor.  Look at sample.txt for an example of how to do this.

===============        
7: FINISHING UP
===============
7.1 MAP Authoring Template

The map authoring template is a small text file that tells others about your map, what the story line is (if any), whether there is new art, music, SFX, or effects (by editing the .CON files), and other useful information.  One has been included with this ZIP file, under the name TEMPLATE.TXT.  Fill this out before sending your level to any site for uploading!  It is very useful!

7.2 Uploading Your Level

The final step is to upload your level.  Upload your level to Wangsdojo:

 

 

=======================
SPRITE LIST V1.0
WRITTEN BY: SILENCER
EDITED BY: JONAH BISHOP
=======================

NOTE: This file is copyright 1998 by Jonah Bishop.  This file may not be
changed or altered by anyone other than the author.

V1.0 - Everything is new.

TEXTURES:
   Parallaxable Skies: 88, 89, 95, 183, 184, 187, 189
   Mirror Texture: 340
   Floor Mirror Texture: 341
   Water: 300, 320, 780, 890
   Glass: 282
   Cracks: 80, 188
   Lava: 175, 179

SPRITES:
   Switches: 551-584
   Key Pads/Key Holes: 1846, 1850, 1852
   Fire: 3143, 3157, 3212
   Anime Girls: 4590, 4594, 4600, 4604, 4606, 5021, 5023, 5032, 5100, 5104
   ST1: 2307
   ST2: 2308 
   QJ: 2309
   QJD: 2310
   QSJ: 2311
   QSCN: 2312
   QEXIT: 2313
   QOP: 2314
   QDUK: 2315
   QDEF: 2316
   "Track Numbers": 1900-1999
   Exit Switch: 2470
   CTF Flags: 2520
   Pachinko Machines: 5080, 5083, 5086, 5089
   Rabbit: 4550

ITEMS:
   Keys: 1765-1779
   Shuryukens: 1793
   Shotgun: 1794
   Uzi ("standing"): 1797
   Uzi Clip: 1799
   Rocket Launcher Ammo: 1800
   Medkit: 1802
   Portable Medkit: 1803
   Smoke Bomb: 1804
   Flash Bomb: 1805
   Uzi ("laying"): 1807
   Gas Grenade: 1808
   Nuclear Warhead: 1809
   Fortune Cookie: 1810
   Rail Gun: 1811
   Rail Gun Ammo: 1812
   Repair Kit: 1813
   Guardian Head: 1814
   Armor: 3030
   Grenade Launcher: 1817
   Rocket Launcher: 1818
   Heat-Seeker Card: 1819
   Shotgun Ammo: 1823
   Ripper Heart: 1824
   Caltrops: 1829
   Grenade Launcher Ammo: 1831
   Sticky Bombs: 1842

ENEMIES:
   Bee: 800
   Floating Head (Bouncing Betty): 820
   Sumo Boss: 1210
   Snake Boss: 1300
   Coolie: 1400
   Coolie Ghost: 1441
   Guardian: 1469
   Baby Ripper: 1580
   Fish: 3780
   Ninja: 4096
   Ninja (ducking): 4162
   Ripper: 4320
   Crossbow Woman: 5162
   Zilla: 5426

 

 

----------------------------------------------
Shadow Warrior Digital And Ambient Sound Index
Compiled And Edited By Keith Schuler
(c) 1997 3D Realms Entertainment
----------------------------------------------

This document lists all the sound effects used in Shadow Warrior, and then
some. You can use this as a reference for digital sound entry numbers to
use in order to generate different sounds in your levels. This document
contains two parts. The first part is the digital sound list, which
provides entry numbers to be used with the SOUND_SPOT (hitag 134) ST1.
The second part provides entry numbers to be used with the AMBIENT_SOUND
(hitag 1002) ST1.

Here are the other documents included with this package:

ADVANCED.TXT - Brief explanations of room-over-room, sector objects, and
other advanced Shadow Warrior mapping topics.
EDITART.TXT  - Instructions and reference for using the EDITART program.
EXAMPLE.TXT  - Documentation to accompany EXAMPLE.MAP, which includes
demonstrations of almost all of Shadow Warrior's map functionality.
INSTALL.TXT  - How to get the necessary utilities off the Shadow Warrior CD
so you can start creating your own art and levels
SLABSPRI.TXT - Instructions and reference for using the SLABSPRI program.
SWSOUNDS.TXT - An index of the sound effects and ambient sounds.
SPRITAGS.TXT - Sprite tagging reference. Your guide to all the special
sprites in Shadow Warrior and how to use them.
SWBUILD.TXT  - A tutorial and reference guide to using the BUILD editor.
WALLTAGS.TXT - Wall and sector tagging reference. These are all the wall and
sector tags used in Shadow Warrior.
-----------------------------------------------------------------------------

---------------------------
1.      Digital Sound Index
---------------------------

This section is arranged in four columns. The first column is the actual
filename of the sound .VOC as it appears in the .GRP file. The second
column lists an identifying label that the programmers used, but we left
it in the list to help you identify the sound more easily. The third
column is the actual sound entry number. This is the number you use in
TAG4, TAG5, or TAG6 of the SOUND_SPOT (hitag 134) ST1. You can also use this
number in the lotag of a wall that is hitagged TAG_WALL_PLAY_SOUND
(walltag 900). Do NOT use these numbers with AMBIENT_SOUND (hitag 1002)
ST1's! It won't work properly. Sound numbers to use with AMBIENT_SOUND are
listed in the second part of this document. The fourth and final column might
contain a descriptive comment.

NOTE: A lot of these sounds are not used in the game. Some that I am not
      sure were used I marked with a (?). If you can't find a .VOC file
      listed here in the .GRP file, then feel free to use your own custom
      sound by copying it into the game directory using the same
      filename. You can then use that entry's sound number to hear your
      custom sound in the game.
      
+--------------+-----------------------+-------+-----------------+
|FILENAME      |IDENTITY               |ENTRY  |COMMENTS         |
+--------------+-----------------------+-------+-----------------+

"NULL.VOC"      DIGI_NULL               0       Don't change this

"SWRDSTR1.VOC"  DIGI_SWORDSWOOSH        1       Sword

"THROW.VOC"     DIGI_STAR               2       Shuriken sounds
"STRCLNK.VOC"   DIGI_STARCLINK          3
"STRWIZ.VOC"    DIGI_STARWIZ            4

"UZIFIRE1.VOC"  DIGI_UZIFIRE            5       Uzi sounds
"RICH1.VOC"     DIGI_RICHOCHET1         6
"RICH2.VOC"     DIGI_RICHOCHET2         7
"RMVCLIP.VOC"   DIGI_REMOVECLIP         8
"RPLCLIP.VOC"   DIGI_REPLACECLIP        9

"SHELL.VOC"     DIGI_SHELL              10      Spent shell

"RIOTFIR1.VOC"  DIGI_RIOTFIRE           11      Riot shotgun sounds
"SHOTGUN.VOC"   DIGI_RIOTFIRE2          12
"RIOTRLD.VOC"   DIGI_RIOTRELOAD         13
"EXPMED.VOC"    DIGI_BOLTEXPLODE        14
"RIOTWIZ.VOC"   DIGI_BOLTWIZ            15

"40MMFIR2.VOC"  DIGI_30MMFIRE           16      Grenade launcher
"RIOTRLD.VOC"   DIGI_30MMRELOAD         17
"40MMEXP2.VOC"  DIGI_30MMEXPLODE        18
"RIOTWIZ.VOC"   DIGI_30MMWIZ            19

"GHFIR1.VOC"    DIGI_HEADFIRE           20      Guardian head
"GHWIZ.VOC"     DIGI_HEADSHOTWIZ        21
"EXPSML.VOC"    DIGI_HEADSHOTHIT        22

"THROW.VOC"     DIGI_MINETHROW          23      Sticky mines
"PHITGRND.VOC"  DIGI_MINEBOUNCE         24
"EXPLRG.VOC"    DIGI_MINEBLOW           25
"STSCAN2.VOC"   DIGI_MINEBEEP           26

"HBLOOP1.VOC"   DIGI_HEARTBEAT          27      Heart attack
"HSQUEEZ1.VOC"  DIGI_HEARTFIRE          28
"HRTWIZ.VOC"    DIGI_HEARTWIZ           29

"RIOTFIR1.VOC"  DIGI_MISSLFIRE          30      Missile launcher
"EXPMED.VOC"    DIGI_MISSLEXP           31

"RFWIZ.VOC"     DIGI_RFWIZ              32      Ring of Fire

"NAPFIRE.VOC"   DIGI_NAPFIRE            33      Napalm
"NAPTWIZ.VOC"   DIGI_NAPWIZ             34
"NAPPUFF.VOC"   DIGI_NAPPUFF            35

"MMFIRE.VOC"    DIGI_MIRVFIRE           36      Magic mirv spell
"MMWIZ.VOC"     DIGI_MIRVWIZ            37

"SPRLFIRE.VOC"  DIGI_SPIRALFIRE         38      Spiral spell (?)
"SPRLWIZ.VOC"   DIGI_SPIRALWIZ          39

"MAGIC1.VOC"    DIGI_MAGIC1             40      General magic sounds
"MAGIC2.VOC"    DIGI_MAGIC2             41
"MAGIC3.VOC"    DIGI_MAGIC3             42
"MAGIC4.VOC"    DIGI_MAGIC4             43
"MAGIC5.VOC"    DIGI_MAGIC5             44
"MAGIC6.VOC"    DIGI_MAGIC6             45
"MAGIC7.VOC"    DIGI_MAGIC7             46

"SWSPELL.VOC"   DIGI_SWCLOAKUNCLOAK     47      Cloaking bomb

"DHVOMIT.VOC"   DIGI_DHVOMIT            48      Vomiting dead head
"DHCLUNK.VOC"   DIGI_DHCLUNK            49
"DHSQSH.VOC"    DIGI_DHSQUISH           50

"LAVAHIT.VOC"   DIGI_PROJECTILELAVAHIT  51      Weapon fire hits lava
"STSPL01.VOC"   DIGI_PROJECTILEWATERHIT 52      or water

"KEY.VOC"       DIGI_KEY                53      Pick up item sounds
"ITEM5A.VOC"    DIGI_ITEM               54
"ITEMBIG2.VOC"  DIGI_BIGITEM            55

"BODY9.VOC"     DIGI_BODYFALL1          56      Pain and death sounds
"PHITGRND.VOC"  DIGI_HITGROUND          57
"BODY2.VOC"     DIGI_BODYSQUISH1        58
"BURN1.VOC"     DIGI_BODYBURN           59
"BURNSCRM.VOC"  DIGI_BODYBURNSCREAM     60
"BODY3.VOC"     DIGI_BODYCRUSHED1       61
"BODY4.VOC"     DIGI_BODYHACKED1        62
"BURN2.VOC"     DIGI_BODYSINGED         63
"DROWN1.VOC"    DIGI_DROWN              64
"SCREAM1.VOC"   DIGI_SCREAM1            65
"SCREAM2.VOC"   DIGI_SCREAM2            66
"SCREAM3.VOC"   DIGI_SCREAM3            67
"HIT1.VOC"      DIGI_HIT1               68
"ELECTRC1.VOC"  DIGI_ELECTRICUTE1       69
"SWDIE02.VOC"   DIGI_REMOVEME           70
"IMPALE1.VOC"   DIGI_IMPALED            71
"OOF1.VOC"      DIGI_OOF1               72

"BODY1.VOC"     DIGI_ACTORBODYFALL1     73      Player sounds that actors
"HITGRND.VOC"   DIGI_ACTORHITGROUND     74      also use

"COLEXP.VOC"    DIGI_COOLIEEXPLODE      75      Coolie
"COLSCRM.VOC"   DIGI_COOLIESCREAM       76
"COLALRT.VOC"   DIGI_COOLIEALERT        77
"COLAMB.VOC"    DIGI_COOLIEAMBIENT      78
"COLPAIN.VOC"   DIGI_COOLIEPAIN         79

"CGMAT.VOC"     DIGI_CGMATERIALIZE      80      Coolie Ghost
"CGALRT.VOC"    DIGI_CGALERT            81
"CGWHACK.VOC"   DIGI_CGTHIGHBONE        82
"CGAMB.VOC"     DIGI_CGAMBIENT          83
"CGPAIN.VOC"    DIGI_CGPAIN             84
"CGSHOOT.VOC"   DIGI_CGMAGIC            85
"CGHIT.VOC"     DIGI_CGMAGICHIT         86
"CGSCRM.VOC"    DIGI_CGSCREAM           87

"NINAMB.VOC"    DIGI_NINJAAMBIENT       88      Evil Ninja
"NINSTAR.VOC"   DIGI_NINJASTAR          89
"NINPAIN.VOC"   DIGI_NINJAPAIN          90
"NINSCRM.VOC"   DIGI_NINJASCREAM        91
"NINALRT.VOC"   DIGI_NINJAALERT         92
"NINSHOOT.VOC"  DIGI_NINJAUZIATTACK     93
"RIOTFIR1.VOC"  DIGI_NINJARIOTATTACK    94

"RIPAMB.VOC"    DIGI_RIPPERAMBIENT      95      Ripper
"RIPALRT.VOC"   DIGI_RIPPERALERT        96
"RIPATCK.VOC"   DIGI_RIPPERATTACK       97
"RIPPAIN.VOC"   DIGI_RIPPERPAIN         98
"RIPSCRM.VOC"   DIGI_RIPPERSCREAM       99
"RIPHRT.VOC"    DIGI_RIPPERHEARTOUT     100

"GRDAMB.VOC"    DIGI_GRDAMBIENT         101     Guardian
"GRDALRT.VOC"   DIGI_GRDALERT           102
"GRDPAIN.VOC"   DIGI_GRDPAIN            103
"GRDSCRM.VOC"   DIGI_GRDSCREAM          104
"GRDFIR.VOC"    DIGI_GRDFIREBALL        105
"GRDAXE.VOC"    DIGI_GRDSWINGAXE        106
"GRDAXHT.VOC"   DIGI_GRDAXEHIT          107

"SPAMB.VOC"     DIGI_SPAMBIENT          108     Skeletor Priest (?)
"SPALRT.VOC"    DIGI_SPALERT            109
"SPPAIN.VOC"    DIGI_SPPAIN             110
"SPSCRM.VOC"    DIGI_SPSCREAM           111
"SPBLADE.VOC"   DIGI_SPBLADE            112
"SPELEC.VOC"    DIGI_SPELEC             113
"SPTLPRT.VOC"   DIGI_SPTELEPORT         114

"AHAMB.VOC"     DIGI_AHAMBIENT          115     Accursed Head
"AHSCRM.VOC"    DIGI_AHSCREAM           116
"AHEXP.VOC"     DIGI_AHEXPLODE          117
"AHSHWSH.VOC"   DIGI_AHSWOOSH           118

"HBUZZ.VOC"     DIGI_HORNETBUZZ         119      Hornet
"HSTING.VOC"    DIGI_HORNETSTING        120
"HPAIN.VOC"     DIGI_HORNETPAIN         121
"HDEATH.VOC"    DIGI_HORNETDEATH        122

"SGAMB.VOC"     DIGI_SERPAMBIENT        123      Serpent Boss
"SGALRT.VOC"    DIGI_SERPALERT          124
"SGPAIN.VOC"    DIGI_SERPPAIN           125
"SGSCRM.VOC"    DIGI_SERPSCREAM         126
"SGDETH.VOC"    DIGI_SERPDEATHEXPLODE   127
"SGSWORD.VOC"   DIGI_SERPSWORDATTACK    128
"SGMAGIC.VOC"   DIGI_SERPMAGICLAUNCH    129
"SGHEADS.VOC"   DIGI_SERPSUMMONHEADS    130
"SGTAUNT.VOC"   DIGI_SERPTAUNTYOU       131

"LVAMB.VOC"     DIGI_LAVABOSSAMBIENT    132      Lava Boss (?)
"LVSWIM.VOC"    DIGI_LAVABOSSSWIM       133
"LVRISE.VOC"    DIGI_LAVABOSSRISE       134
"LVALRT.VOC"    DIGI_LAVABOSSALERT      135
"LVFLAME.VOC"   DIGI_LAVABOSSFLAME      136
"LVMETEOR.VOC"  DIGI_LAVABOSSMETEOR     137
"LVMETEXP.VOC"  DIGI_LAVABOSSMETEXP     138
"LVPAIN.VOC"    DIGI_LAVABOSSPAIN       139
"LVSIZZLE.VOC"  DIGI_LAVABOSSSIZZLE     140
"LVEXPL.VOC"    DIGI_LAVABOSSEXPLODE    141

"BTSTRT.VOC"    DIGI_BOATSTART          142      Motor Boat
"BTRUN01.VOC"   DIGI_BOATRUN            143
"BTSTOP.VOC"    DIGI_BOATSTOP           144
"BTFIRE.VOC"    DIGI_BOATFIRE           145

"TNKSTRT.VOC"   DIGI_TANKSTART          146      Army Tank
"TNKRUN.VOC"    DIGI_TANKRUN            147
"TNKSTOP.VOC"   DIGI_TANKSTOP           148
"TNKIDLE.VOC"   DIGI_TANKIDLE           149
"TNKFIRE.VOC"   DIGI_TANKFIRE           150

"TRUKRUN.VOC"   DIGI_TRUKRUN            151      Army Truck (?)
"TRUKIDLE.VOC"  DIGI_TRUKIDLE           152

"SUBRUN.VOC"    DIGI_SUBRUN             153      Submarine (?)
"SUBIDLE.VOC"   DIGI_SUBIDLE            154
"SUBDOOR.VOC"   DIGI_SUBDOOR            155

"BMBFLY.VOC"    DIGI_BOMBRFLYING        156      Bomber Plane (?)
"BMBDROP.VOC"   DIGI_BOMBRDROPBOMB      157

"BUBBLE.VOC"    DIGI_BUBBLES            158      Bubbles

"CHAIN.VOC"     DIGI_CHAIN              159      (?)

"CHNDOOR.VOC"   DIGI_CHAINDOOR          160      Chain door

"CRCKT2.VOC"    DIGI_CRICKETS           161      Crickets

"DRWOODO.VOC"   DIGI_WOODDOOROPEN       162      Door sounds
"DRMETO.VOC"    DIGI_METALDOOROPEN      164
"DRMETC.VOC"    DIGI_METALDOORCLOSE     165
"DRSLDO.VOC"    DIGI_SLIDEDOOROPEN      166
"DRSLDC.VOC"    DIGI_SLIDEDOORCLOSE     167
"DRSTNO.VOC"    DIGI_STONEDOOROPEN      168
"DRSTNC.VOC"    DIGI_STONEDOORCLOSE     169
"DRSQKO.VOC"    DIGI_SQUEAKYDOOROPEN    170
"DRSQKC.VOC"    DIGI_SQUEAKYDOORCLOSE   171

"DRILL.VOC"     DIGI_DRILL              172      Giant drill

"CAVE1.VOC"     DIGI_CAVEDRIP1          173      Water dripping in cave
"CAVE2.VOC"     DIGI_CAVEDRIP2          174
"DRIP.VOC"      DIGI_DRIP               175

"WTRFAL1.VOC"   DIGI_WATERFALL1         176      Waterfall sound
"WTRFAL2.VOC"   DIGI_WATERFALL2         177      (?)

"WTRFLW1.VOC"   DIGI_WATERFLOW1         178      Water flowing
"WTRFLW2.VOC"   DIGI_WATERFLOW2         179      (?)

"ELEV1.VOC"     DIGI_ELEVATOR           180      Elevator sound

"EXPSML.VOC"    DIGI_SMALLEXP           181      Explosion sounds
"EXPMED.VOC"    DIGI_MEDIUMEXP          182
"EXPLRG.VOC"    DIGI_LARGEEXP           183
"BIGEXP.VOC"    DIGI_HUGEEXP            184

"FIRE1.VOC"     DIGI_FIRE1              185      Crackling fire
"FIRE2.VOC"     DIGI_FIRE2              186      Powerful fire

"FBALL1.VOC"    DIGI_FIREBALL1          187      Fireball trap
"FIREBALL1.VOC" DIGI_FIREBALL2          188

"GEAR1.VOC"     DIGI_GEAR1              189      Gear turning

"GONG.VOC"      DIGI_GONG               190      Gong

"LAVAFLW1.VOC"  DIGI_LAVAFLOW1          191      Lava flowing ambience

"MACHN1.VOC"    DIGI_MACHINE1           192      Generic machine (?)

"MUD1.VOC"      DIGI_MUBBUBBLES1        193      Mud or lava bubbles

"QUAKE1.VOC"    DIGI_EARTHQUAKE         194      Earthquake sound

"SEWER1.VOC"    DIGI_SEWERFLOW1         195      Sewer noise (?)

"SPLASH1.VOC"   DIGI_SPLASH1            196      Generic splash

"STEAM1.VOC"    DIGI_STEAM1             197      Steam
"VOLSTM1.VOC"   DIGI_VOLCANOSTEAM1      198      Volcanic Steam (?)

"STMPR.VOC"     DIGI_STOMPER            199      (?)

"SWAMP1.VOC"    DIGI_SWAMP              200      Swamp ambience

"SWITCH1.VOC"   DIGI_REGULARSWITCH      201      Switch sounds
"SWITCH2.VOC"   DIGI_BIGSWITCH          202
"SWITCH3.VOC"   DIGI_STONESWITCH        203
"SWITCH4.VOC"   DIGI_GLASSSWITCH        204
"SWITCH5.VOC"   DIGI_HUGESWITCH         205

"THUNDR.VOC"    DIGI_THUNDER            206      Thunder ambience

"TELPORT.VOC"   DIGI_TELEPORT           207      Teleporter

"UNDRWTR.VOC"   DIGI_UNDERWATER         208      Underwater ambience

"UNLOCK.VOC"    DIGI_UNLOCK             209      Key unlock

"VALVE.VOC"     DIGI_SQUEAKYVALVE       210

"VOID1.VOC"     DIGI_VOID1              211      Various weird ambience
"VOID2.VOC"     DIGI_VOID2              212
"VOID3.VOC"     DIGI_VOID3              213
"VOID4.VOC"     DIGI_VOID4              214
"VOID5.VOC"     DIGI_VOID5              215

"ERUPT.VOC"     DIGI_ERUPTION           216      Eruption ambience

"VOLPRJCT.VOC"  DIGI_VOLCANOPROJECTILE  217     (?)

"WIND1.VOC"     DIGI_LIGHTWIND          218      Wind ambience
"WIND2.VOC"     DIGI_STRONGWIND         219

"WOODBRK.VOC"   DIGI_BREAKINGWOOD       220      Breakage sounds (?)
"STONEBRK.VOC"  DIGI_BREAKSTONES        221

"ENGROOM1.VOC"  DIGI_ENGROOM1           222      Various engine ambience
"ENGROOM2.VOC"  DIGI_ENGROOM2           223
"ENGROOM3.VOC"  DIGI_ENGROOM3           224
"ENGROOM4.VOC"  DIGI_ENGROOM4           225
"ENGROOM5.VOC"  DIGI_ENGROOM5           226

"GLASS3.VOC"    DIGI_BREAKGLASS         227      Breaking glass

"MUSSTING.VOC"  DIGI_MUSSTING           228      Musical stinger (?)

"HELI.VOC"      DIGI_HELI               229      Helicopter (?)

"BIGHART.VOC"   DIGI_BIGHART            230      Heart ambience (?)

"WIND4.VOC"     DIGI_WIND4              231      More wind

"SPOOKY1.VOC"   DIGI_SPOOKY1            232      Spooky sound (?)

"DRILL1.VOC"    DIGI_DRILL1             233      Another drill (?)

"JET.VOC"       DIGI_JET                234      Jet ambience

"DRUMCHNT.VOC"  DIGI_DRUMCHANT          235      Drum chanting

"FLY.VOC"       DIGI_BUZZZ              236      Chopstick sounds
"UZICLK.VOC"    DIGI_CHOP_CLICK         237

"STICKY2R.VOC"  DIGI_SWORD_UP           238      Weapon up sounds
"UZI1R.VOC"     DIGI_UZI_UP             239
"SHOTG1R.VOC"   DIGI_SHOTGUN_UP         240
"BOLT1R.VOC"    DIGI_ROCKET_UP          241
"BOLT1R.VOC"    DIGI_GRENADE_UP         242
"BOLT1R.VOC"    DIGI_RAIL_UP            243
"STICKY1R.VOC"  DIGI_MINE_UP            244

NULL            DIGI_FIRSTPLAYERVOICE   245      Don't change this
"BADMAN04.VOC"  DIGI_TAUNTAI1           246      Various player
"COMEGET2.VOC"  DIGI_TAUNTAI2           247      taunts when killing
"GHOP07.VOC"    DIGI_TAUNTAI3           248      bad guys
"GOODDAY4.VOC"  DIGI_TAUNTAI4           249
"KILLU05.VOC"   DIGI_TAUNTAI5           250
"NATURAL4.VOC"  DIGI_TAUNTAI6           251

"NOHONOR6.VOC"  DIGI_TAUNTAI7           252
"SAYON09.VOC"   DIGI_TAUNTAI8           253
"TAKSAN1.VOC"   DIGI_TAUNTAI9           254
"SNATCH01.VOC"  DIGI_TAUNTAI10          255

"CHOTO7.VOC"    DIGI_PLAYERPAIN1        256      Player pain sounds
"SWPAIN05.VOC"  DIGI_PLAYERPAIN2        257
"SWPAIN03.VOC"  DIGI_PLAYERPAIN3        258
"SWPAIN07.VOC"  DIGI_PLAYERPAIN4        259
"SWPAIN22.VOC"  DIGI_PLAYERPAIN5        260

"SWYELL03.VOC"  DIGI_PLAYERYELL1        261      Player yelling
"SWYELL05.VOC"  DIGI_PLAYERYELL2        262
"SWYELL06.VOC"  DIGI_PLAYERYELL3        263

"GRUNT06.VOC"   DIGI_SEARCHWALL         264      Grunt searching wall

"NOWAY1.VOC"    DIGI_NOURINAL           265      "No way  water cold"

"SWDIE02.VOC"   DIGI_FALLSCREAM         266      Player scream
"AHSO5.VOC"     DIGI_GOTITEM1           267      "Ahh  so"
NULL            DIGI_LASTPLAYERVOICE    268      Don't change this

"HSHOT1.VOC"    DIGI_RAILFIRE           269      Rail gun sounds
"RAIL2.VOC"     DIGI_RAILREADY          270
"RAILUP09.VOC"  DIGI_RAILPWRUP          271

"HBOMB2.VOC"    DIGI_NUCLEAREXP         272      Nuke sounds
"STANDBY.VOC"   DIGI_NUKESTDBY          273
"CDOWN.VOC"     DIGI_NUKECDOWN          274
"SYSREAD.VOC"   DIGI_NUKEREADY          275

"HISS1.VOC"     DIGI_CHEMGAS            276      ChemBomb
"CHBNCE1.VOC"   DIGI_CHEMBOUNCE         277
"THROW.VOC"     DIGI_THROW              278
"PULL.VOC"      DIGI_PULL               279

"STSCAN2.VOC"   DIGI_MINEARM            280      Other weapon/item sounds
"HBDOWN1.VOC"   DIGI_HEARTDOWN          281
"TOOLUSE1.VOC"  DIGI_TOOLBOX            282
"GASPOP.VOC"    DIGI_GASPOP             283
"40MMBNCE.VOC"  DIGI_40MMBNCE           284

"BURGALRM.VOC"  DIGI_BURGLARALARM       285      Various
"CARALRM2.VOC"  DIGI_CARALARM           286
"CAOFF1.VOC"    DIGI_CARALARMOFF        287
"TACK1.VOC"     DIGI_CALTROPS           288
"NVON3.VOC"     DIGI_NIGHTON            289
"NVOFF2.VOC"    DIGI_NIGHTOFF           290
"SGSH01.VOC"    DIGI_SHOTSHELLSPENT     291
"SKID3.VOC"     DIGI_BUSSKID            292
"CRASH4.VOC"    DIGI_BUSCRASH           293
"BUS1.VOC"      DIGI_BUSENGINE          294
"BIMP01.VOC"    DIGI_ARMORHIT           295

"ASIREN1.VOC"   DIGI_ASIREN1            296      Traffic ambience
"FIRETRK1.VOC"  DIGI_FIRETRK1           297
"TRAFFIC1.VOC"  DIGI_TRAFFIC1           298
"TRAFFIC2.VOC"  DIGI_TRAFFIC2           299
"TRAFFIC3.VOC"  DIGI_TRAFFIC3           300
"TRAFFIC4.VOC"  DIGI_TRAFFIC4           301
"TRAFFIC5.VOC"  DIGI_TRAFFIC5           302
"TRAFFIC6.VOC"  DIGI_TRAFFIC6           303
"HELI1.VOC"     DIGI_HELI1              304
"JET1.VOC"      DIGI_JET1               305
"MOTO1.VOC"     DIGI_MOTO1              306
"MOTO2.VOC"     DIGI_MOTO2              307
"NEON1.VOC"     DIGI_NEON1              308
"SUBWAY1.VOC"   DIGI_SUBWAY             309
"TRAINS01.VOC"  DIGI_TRAIN1             310

"COIN.VOC"      DIGI_COINS              311
"SWRDSMK1.VOC"  DIGI_SWORDCLANK         312

"RIP2AMB.VOC"   DIGI_RIPPER2AMBIENT     313      Big Ripper
"RIP2ALRT.VOC"  DIGI_RIPPER2ALERT       314
"RIP2ATCK.VOC"  DIGI_RIPPER2ATTACK      315
"RIP2PAIN.VOC"  DIGI_RIPPER2PAIN        316
"RIP2SCRM.VOC"  DIGI_RIPPER2SCREAM      317
"RIP2HRT.VOC"   DIGI_RIPPER2HEARTOUT    318

"M60.VOC"       DIGI_M60                319      Enemy M60 fire

"SUMSCRM.VOC"   DIGI_SUMOSCREAM         320      Sumo Boss sounds
"SUMALRT.VOC"   DIGI_SUMOALERT          321
"SUMAMB.VOC"    DIGI_SUMOAMBIENT        322
"SUMPAIN.VOC"   DIGI_SUMOPAIN           323

"RAMLOCK.VOC"   DIGI_RAMUNLOCK          324      Unlocking sounds
"CARDLOCK.VOC"  DIGI_CARDUNLOCK         325

"ACS10.VOC"     DIGI_ANCIENTSECRET      326      More player voices
"AMDRIV01.VOC"  DIGI_AMERICANDRIVER     327
"BABOON03.VOC"  DIGI_DRIVELIKEBABOON    328
"BBURN04.VOC"   DIGI_BURNBABY           329
"BIGWPN01.VOC"  DIGI_LIKEBIGWEAPONS     330
"CBUNG01.VOC"   DIGI_COWABUNGA          331
"CHARAD09.VOC"  DIGI_NOCHARADE          332
"DTIME.VOC"     DIGI_TIMETODIE          333
"EAT02.VOC"     DIGI_EATTHIS            334
"FCRACK01.VOC"  DIGI_FIRECRACKERUPASS   335
"HCOW03.VOC"    DIGI_HOLYCOW            336
"HCOW06.VOC"    DIGI_HOLYPEICESOFCOW    337
"HSHIT03.VOC"   DIGI_HOLYSHIT           338
"HSHIT04.VOC"   DIGI_HOLYPEICESOFSHIT   339
"IHOPE01.VOC"   DIGI_PAYINGATTENTION    340
"ILIKE01.VOC"   DIGI_EVERYBODYDEAD      341
"KUNGFU06.VOC"  DIGI_KUNGFU             342
"LMOVE01.VOC"   DIGI_HOWYOULIKEMOVE     343
"LWANG05.VOC"   DIGI_NOMESSWITHWANG     344
"RAW01.VOC"     DIGI_RAWREVENGE         345
"STUPID01.VOC"  DIGI_YOULOOKSTUPID      346
"TDICK02.VOC"   DIGI_TINYDICK           347
"TOURN01.VOC"   DIGI_NOTOURNAMENT       348
"WWANG11.VOC"   DIGI_WHOWANTSWANG       349
"YAK02.VOC"     DIGI_MOVELIKEYAK        350
"REFLEX08.VOC"  DIGI_ALLINREFLEXES      351
"EVADE01.VOC"   DIGI_EVADEFOREVER       352
"MFLY03.VOC"    DIGI_MRFLY              353
"SHISEI03.VOC"  DIGI_SHISEISI           354
"FWORKS01.VOC"  DIGI_LIKEFIREWORKS      355
"HIRO03.VOC"    DIGI_LIKEHIROSHIMA      356
"NAGA06.VOC"    DIGI_LIKENAGASAKI       357
"PEARL03.VOC"   DIGI_LIKEPEARL          358
"IAM01.VOC"     DIGI_IAMSHADOW          359
"LIKNUK01.VOC"  DIGI_ILIKENUKES         360
"LIKSRD01.VOC"  DIGI_ILIKESWORD         361
"LIKSHK02.VOC"  DIGI_ILIKESHURIKEN      362
"LUCK06.VOC"    DIGI_BADLUCK            363
"MCHAN01.VOC"   DIGI_NOMOVIEMRCHAN      364
"RCHAN13.VOC"   DIGI_REALLIFEMRCHAN     365
"MUSIC03.VOC"   DIGI_NOLIKEMUSIC        366
"NODIFF07.VOC"  DIGI_NODIFFERENCE       367
"NOFEAR01.VOC"  DIGI_NOFEAR             368
"NOPAIN.VOC"    DIGI_NOPAIN             369
"REPMAN15.VOC"  DIGI_NOREPAIRMAN        370
"SOB15.VOC"     DIGI_SONOFABITCH        371
"WEAK03.VOC"    DIGI_PAINFORWEAK        372
"SPEED04.VOC"   DIGI_GOSPEEDY           373
"STIFF01.VOC"   DIGI_GETTINGSTIFF       374
"TOMB05.VOC"    DIGI_TOMBRAIDER         375
"TSTICK01.VOC"  DIGI_STICKYGOTU1        376
"TSTICK05.VOC"  DIGI_STICKYGOTU2        377
"TSTICK07.VOC"  DIGI_STICKYGOTU3        378
"TSTICK10.VOC"  DIGI_STICKYGOTU4        379
"TSWORD05.VOC"  DIGI_SWORDGOTU1         380
"TSWORD08.VOC"  DIGI_SWORDGOTU2         381
"TSWORD01.VOC"  DIGI_SWORDGOTU3         382
"SWYELL22.VOC"  DIGI_HURTBAD1           383
"SWYELL14.VOC"  DIGI_HURTBAD2           384
"SWYELL23.VOC"  DIGI_HURTBAD3           385
"SWYELL16.VOC"  DIGI_HURTBAD4           386
"SWYELL13.VOC"  DIGI_HURTBAD5           387

"TGSCRM.VOC"    DIGI_TOILETGIRLSCREAM   388      Girl on the toilet
"TGALRT.VOC"    DIGI_TOILETGIRLALERT    389
"TGAMB.VOC"     DIGI_TOILETGIRLAMBIENT  390
"TGPAIN.VOC"    DIGI_TOILETGIRLPAIN     391
"TGTNT1.VOC"    DIGI_TOILETGIRLTAUNT1   392
"TGTNT2.VOC"    DIGI_TOILETGIRLTAUNT2   393

"SUMOFART.VOC"  DIGI_SUMOFART           394      Sumo fart attack

"GIBS04.VOC"    DIGI_GIBS1              395      Gib splats
"GIBS05.VOC"    DIGI_GIBS2              396

"BIRDS01.VOC"   DIGI_BIRDS1             397      Bird ambience
"BIRDS02.VOC"   DIGI_BIRDS2             398
"TOILET01.VOC"  DIGI_TOILET             399      Toilet flush
"FLIDLE.VOC"    DIGI_FORKLIFTIDLE       400      Forklift driving
"FLRUN01.VOC"   DIGI_FORKLIFTRUN        401
"TOYCAR03.VOC"  DIGI_TOYCAR             402
"PRESS03.VOC"   DIGI_UZIMATIC           403
"COMPON01.VOC"  DIGI_COMPUTERPOWER      404
"TURBON01.VOC"  DIGI_GENERATORON        405
"TURBRN01.VOC"  DIGI_GENERATORRUN       406
"BIGDRL03.VOC"  DIGI_BIGDRILL           407
"FLUOR01.VOC"   DIGI_FLUORLIGHT         408
"AMOEBA03.VOC"  DIGI_AMOEBA             409
"BODY6.VOC"     DIGI_BODYFALL2          410
"GIBS01.VOC"    DIGI_GIBS3              411
"CHOK01.VOC"    DIGI_NINJACHOKE         412

"TRAIN3.VOC"    DIGI_TRAIN3             413
"TRAINR02.VOC"  DIGI_TRAINR02           414
"TRAIN8.VOC"    DIGI_TRAIN8             415
"TCLID01.VOC"   DIGI_TRASHLID           416

"ACCU01.VOC"    DIGI_GETMEDKIT          417      Medkit player voices
"AHH03.VOC"     DIGI_AHH                418

"PALARM1.VOC"   DIGI_PALARM             419      Pachinko sounds
"PFLIP4.VOC"    DIGI_PFLIP              420
"PROLL1.VOC"    DIGI_PROLL1             421
"PROLL2.VOC"    DIGI_PROLL2             422
"PROLL3.VOC"    DIGI_PROLL3             423

"RABATK1.VOC"   DIGI_BUNNYATTACK        424      Bunny sounds
"RABDIE1.VOC"   DIGI_BUNNYDIE1          425
"RABDIE2.VOC"   DIGI_BUNNYDIE2          426
"RABDIE3.VOC"   DIGI_BUNNYDIE3          427
"RABAMB.VOC"    DIGI_BUNNYAMBIENT       428

"STONE2.VOC"    DIGI_STONESLIDE         429
"NINCUT3.VOC"   DIGI_NINJAINHALF        430
"RIPCHST1.VOC"  DIGI_RIPPER2CHEST       431

"WHIPIN2.VOC"   DIGI_WHIPME             432      Whipping TV show
"ENDLEV3.VOC"   DIGI_ENDLEV             433
"MDALARM1.VOC"  DIGI_MDALARM            434      Metal detector

"METALBRK.VOC"  DIGI_BREAKMETAL         435      Breakage sounds
"DEBRIBRK.VOC"  DIGI_BREAKDEBRIS        436
"MARBELS.VOC"   DIGI_BREAKMARBELS       437

"BANZAI1.VOC"   DIGI_BANZAI             438      Player voices
"HAHA19.VOC"    DIGI_HAHA1              439
"HAHA11.VOC"    DIGI_HAHA2              440
"HAHA15.VOC"    DIGI_HAHA3              441

"TELEPT02.VOC"  DIGI_ITEM_SPAWN         442      Item respawns

"JG1075.VOC"    DIGI_NOREPAIRMAN2       443      Player voices
"JG1082.VOC"    DIGI_NOPOWER            444
"JG1087.VOC"    DIGI_DOUBLEUZI          445
"JG1088.VOC"    DIGI_NOTORDBUNNY        446
"JG1103.VOC"    DIGI_CANBEONLYONE       447
"JG2000.VOC"    DIGI_MIRROR1            448
"JG2005.VOC"    DIGI_MIRROR2            449
"JG2020.VOC"    DIGI_HITTINGWALLS       450
"JG2032.VOC"    DIGI_GOTRAILGUN         451
"JG2053.VOC"    DIGI_RABBITHUMP1        452
"JG2054.VOC"    DIGI_RABBITHUMP2        453
"JG2045.VOC"    DIGI_RABBITHUMP3        454
"JG2087.VOC"    DIGI_RABBITHUMP4        455
"JG2074.VOC"    DIGI_FAGRABBIT1         456
"JG2075.VOC"    DIGI_FAGRABBIT2         457
"JG2078.VOC"    DIGI_FAGRABBIT3         458
"JG3005.VOC"    DIGI_STINKLIKEBABBOON   459
"JG3017.VOC"    DIGI_WHATYOUEATBABY     460
"JG3047.VOC"    DIGI_WHATDIEDUPTHERE    461
"JG3022.VOC"    DIGI_YOUGOPOOPOO        462
"JG6053.VOC"    DIGI_PULLMYFINGER       463
"JG3059.VOC"    DIGI_SOAPYOUGOOD        464
"JG4012.VOC"    DIGI_WASHWANG           465
"JG3070.VOC"    DIGI_DROPSOAP           466
"JG6051.VOC"    DIGI_REALTITS           467
"JG4002.VOC"    DIGI_MSTRLEEP           468
"JG4024.VOC"    DIGI_SEEKLEEPADVICE     469
"JG5042.VOC"    DIGI_AVENGELEEPDEATH    470
"JG5049A.VOC"   DIGI_LEEPGHOST          471

"WDOOR02.VOC"   DIGI_DOOR1              472      More door sounds
"MDOOR03.VOC"   DIGI_DOOR2              473
"603981_1.VOC"  DIGI_DOOR3              474

"FLAG03.VOC"    DIGI_FLAGWAVE           475      Flag ambience

"JG7009.VOC"    DIGI_SURFACE            476
"JG7001.VOC"    DIGI_GASHURT            477
"JG2001.VOC"    DIGI_BONUS_GRAB         478

"ACHCRY04.VOC"  DIGI_ANIMECRY           479      Girl sounds
"ACHS010.VOC"   DIGI_ANIMESING1         480
"ACHT1006.VOC"  DIGI_ANIMEMAD1          481
"ACHS016.VOC"   DIGI_ANIMESING2         482
"ACHT120A.VOC"  DIGI_ANIMEMAD2          483

"TELEPT02.VOC"  DIGI_PLAYER_TELEPORT    484      Player teleporting
"SLASH1.VOC"    DIGI_INTRO_SLASH        485

"WARNING.VOC"   DIGI_WARNING            486
"WHIRL1.VOC"    DIGI_INTRO_WHIRL        487

"ACHF1003.VOC"  DIGI_TOILETGIRLFART1    488      Toilet girl sounds
"ACHF1002.VOC"  DIGI_TOILETGIRLFART2    489
"ACHF1016.VOC"  DIGI_TOILETGIRLFART3    490

"CHIMES4.VOC"   DIGI_WINDCHIMES         491      Wind Chime ambience

"JGB023.VOC"    DIGI_MADATCARPET        492      Player voices
"JGB020.VOC"    DIGI_JUMPONCARPET       493
"JGB080.VOC"    DIGI_USEBROKENVEHICLE   494
"JGB106.VOC"    DIGI_STEPONCALTROPS     495
"JGB130.VOC"    DIGI_WANGSEESERP        496
"JGSB4.VOC"     DIGI_SERPTAUNTWANG      497
"JGB166.VOC"    DIGI_WANGTAUNTSERP1     498
"JGB156.VOC"    DIGI_WANGTAUNTSERP2     499
"JGB193.VOC"    DIGI_WANGORDER1         500
"JGB202.VOC"    DIGI_WANGORDER2         501
"JGB340A.VOC"   DIGI_WANGDROWNING       502

"JGEN06.VOC"    DIGI_ZILLAREGARDS       503
"MSG9.VOC"      DIGI_PMESSAGE           504

"UGLY1A.VOC"    DIGI_SHAREND_UGLY1      505      First episode ending
"UGLY1B.VOC"    DIGI_SHAREND_UGLY2      506
"TELEPT07.VOC"  DIGI_SHAREND_TELEPORT   507

"GOROSW1.VOC"   DIGI_HOTHEADSWITCH      508      Change head weapon mode
"BTCREAK2.VOC"  DIGI_BOATCREAK          509      New boat sounds
"BTRUN05.VOC"   DIGI_BOATRUN2           510
"BTIDLE4.VOC"   DIGI_BOATIDLE           511
"SHIPBELL.VOC"  DIGI_SHIPBELL           512
"SHIPHRN1.VOC"  DIGI_FOGHORN            513

"EXP3.VOC"      DIGI_CANNON             514      Cannon firing

"JG41001.VOC"   DIGI_JG41001            515      Player voices
"JG41012.VOC"   DIGI_JG41012            516      Most of these will be
"JG41018.VOC"   DIGI_JG41018            517      the map specific stuff
"JG41028.VOC"   DIGI_JG41028            518
"JG41048.VOC"   DIGI_JG41048            519
"JG41052.VOC"   DIGI_JG41052            520
"JG41058.VOC"   DIGI_JG41058            521
"JG41060.VOC"   DIGI_JG41060            522
"JG41075.VOC"   DIGI_JG41075            523
"JG42004.VOC"   DIGI_JG42004            524
"JG42019.VOC"   DIGI_JG42019            525
"JG42021.VOC"   DIGI_JG42021            526
"JG42028.VOC"   DIGI_JG42028            527
"JG42033.VOC"   DIGI_JG42033            528
"JG42034.VOC"   DIGI_JG42034            529
"JG42050.VOC"   DIGI_JG42050            530
"JG42056.VOC"   DIGI_JG42056            531
"JG42061.VOC"   DIGI_JG42061            532
"JG43004.VOC"   DIGI_JG43004            533
"JG43015.VOC"   DIGI_JG43015            534
"JG43019.VOC"   DIGI_JG43019            535
"JG43021.VOC"   DIGI_JG43021            536
"JG44011.VOC"   DIGI_JG44011            537
"JG44014.VOC"   DIGI_JG44014            538
"JG44027.VOC"   DIGI_JG44027            539
"JG44038.VOC"   DIGI_JG44038            540
"JG44039.VOC"   DIGI_JG44039            541
"JG44048.VOC"   DIGI_JG44048            542
"JG44052.VOC"   DIGI_JG44052            543
"JG45014.VOC"   DIGI_JG45014            544
"JG44068.VOC"   DIGI_JG44068            545
"JG45010.VOC"   DIGI_JG45010            546
"JG45018.VOC"   DIGI_JG45018            547
"JG45030.VOC"   DIGI_JG45030            548
"JG45033.VOC"   DIGI_JG45033            549
"JG45043.VOC"   DIGI_JG45043            550
"JG45053.VOC"   DIGI_JG45053            551
"JG45067.VOC"   DIGI_JG45067            552
"JG46005.VOC"   DIGI_JG46005            553
"JG46010.VOC"   DIGI_JG46010            554

"LANI049.VOC"  DIGI_LANI049             555      Race Queen talks back
"LANI051.VOC"  DIGI_LANI051             556
"LANI052.VOC"  DIGI_LANI052             557
"LANI054.VOC"  DIGI_LANI054             558

"LANI060.VOC"  DIGI_LANI060             559      Sailor Girl talks back
"LANI063.VOC"  DIGI_LANI063             560
"LANI065.VOC"  DIGI_LANI065             561
"LANI066.VOC"  DIGI_LANI066             562

"LANI073.VOC"  DIGI_LANI073             563      Mechanic girl talks back
"LANI075.VOC"  DIGI_LANI075             564
"LANI077.VOC"  DIGI_LANI077             565
"LANI079.VOC"  DIGI_LANI079             566

"LANI089.VOC"  DIGI_LANI089             567      Old prune talks back
"LANI091.VOC"  DIGI_LANI091             568
"LANI093.VOC"  DIGI_LANI093             569
"LANI095.VOC"  DIGI_LANI095             570

"AD5.VOC"      DIGI_VENTWALK            571      Climb in a vent
"AD6.VOC"      DIGI_CARWALK             572      Walk on a car
"JET05.VOC"    DIGI_JETSOAR             573      Crashing jet
"VC04.VOC"     DIGI_VACUUM              574      Driving a vacuum cleaner

"LANI017.VOC"  DIGI_GIRLNINJAALERTT     575      Female Warrior sounds
"LANI033.VOC"  DIGI_GIRLNINJASCREAM     576
"LANI001.VOC"  DIGI_GIRLNINJAALERT      577

"CACKLE.VOC"   DIGI_PRUNECACKLE         578      Old prune laughing
"CACKLE2.VOC"  DIGI_PRUNECACKLE2        579
"CACKLE3.VOC"  DIGI_PRUNECACKLE3        580

"SUMO058.VOC"  DIGI_SUMOSTOMP           581      Sumo stomping

"ELEV01.VOC"   DIGI_VATOR               582      Long elevator sound

"JG9009.VOC"   DIGI_JG9009              583      Player voice

"Z16004.VOC"   DIGI_Z16004              584      Zilla voices
"Z16012.VOC"   DIGI_Z16012              585
"Z16022.VOC"   DIGI_Z16022              586
"Z16027.VOC"   DIGI_Z16027              587

"JG93030.VOC"  DIGI_JG93030             588      Player voice
"JG94002.VOC"  DIGI_JG94002             589

"Z17010.VOC"   DIGI_Z17010              590      Zilla voices
"Z17052.VOC"   DIGI_Z17052              591
"Z17025.VOC"   DIGI_Z17025              592

"ML25014.VOC"  DIGI_ML25014             593      Master Leep and
"ML250101.VOC" DIGI_ML250101            594      more player voices
"JG9022.VOC"   DIGI_JG9022              595
"JG9032.VOC"   DIGI_JG9032              596
"JG9038.VOC"   DIGI_JG9038              597
"JG9055.VOC"   DIGI_JG9055              598
"JG9060.VOC"   DIGI_JG9060              599
"JG92055.VOC"  DIGI_JG92055             600
"ML25032.VOC"  DIGI_ML25032             601
"JG92036.VOC"  DIGI_JG92036             602
"JG92042.VOC"  DIGI_JG92042             603
"ML26001.VOC"  DIGI_ML26001             604
"JG93000.VOC"  DIGI_JG93000             605
"JG93011.VOC"  DIGI_JG93011             606
"JG93018.VOC"  DIGI_JG93018             607
"JG93023.VOC"  DIGI_JG93023             608
"ML26008.VOC"  DIGI_ML26008             609
"ML26011.VOC"  DIGI_ML26011             610
"JG94007.VOC"  DIGI_JG94007             611
"JG94024.VOC"  DIGI_JG94024             612
"JG94039.VOC"  DIGI_JG94039             613
"JG95012.VOC"  DIGI_JG95012             614


---------------------------
2.      Ambient Sound Index
---------------------------

Ambient sounds do not work the same as digital sounds. Rather than
triggering them with a door or something, the game either constantly or
intermittently plays the ambient sound in an area of the map. This is used
for waterfalls, wind, or other environmental sound effects.

This section is divided into two columns. The first column is an identifier
that the programmers used to name the ambient sound. The second column is
the sound entry number you need to use in TAG2 of the AMBIENT_SOUND
(hitag 1002) ST1. Don't use these sound numbers with SOUND_SPOT (hitag 134)
ST1's, or your sound won't work properly.

All of these ambient sounds have an entry with a matching identifier in the
digital sound index above.

NOTE: Some of these ambient sounds were not used in the game. Feel free to
      place your own custom ambient sounds in these slots.

+--------------------------------------+-------+
|IDENTITY                              |ENTRY  |
+--------------------------------------+-------+

DIGI_BUBBLES                            0
DIGI_CRICKETS                           1
DIGI_CAVEDRIP1                          2
DIGI_CAVEDRIP2                          3
DIGI_DRIP                               4
DIGI_WATERFALL1                         5
DIGI_WATERFALL2                         6
DIGI_WATERFLOW1                         7
DIGI_WATERFLOW2                         8
DIGI_FIRE1                              9
DIGI_FIRE2                              10
DIGI_GONG                               11
DIGI_LAVAFLOW1                          12
DIGI_MUBBUBBLES1                        13
DIGI_EARTHQUAKE                         14
DIGI_SEWERFLOW1                         15
DIGI_STEAM1                             16
DIGI_VOLCANOSTEAM1                      17
DIGI_SWAMP                              18
DIGI_THUNDER                            19
DIGI_UNDERWATER                         20
DIGI_VOID1                              21
DIGI_VOID2                              22
DIGI_VOID3                              23
DIGI_VOID4                              24
DIGI_VOID5                              25
DIGI_ERUPTION                           26
DIGI_VOLCANOPROJECTILE                  27
DIGI_LIGHTWIND                          28
DIGI_STRONGWIND                         29
DIGI_BREAKINGWOOD                       30
DIGI_BREAKSTONES                        31
DIGI_BOMBRFLYING                        40
DIGI_BOMBRDROPBOMB                      41
DIGI_DRILL                              42
DIGI_GEAR1                              43
DIGI_MACHINE1                           44
DIGI_ENGROOM1                           45
DIGI_ENGROOM2                           46
DIGI_ENGROOM3                           47
DIGI_ENGROOM4                           48
DIGI_ENGROOM5                           49
DIGI_HELI                               50
DIGI_BIGHART                            51
DIGI_WIND4                              52
DIGI_SPOOKY1                            53
DIGI_JET                                54
DIGI_DRUMCHANT                          55
DIGI_ASIREN1                            56
DIGI_FIRETRK1                           57
DIGI_TRAFFIC1                           58 Randomly picks traffic ambience
DIGI_TRAFFIC2                           59
DIGI_TRAFFIC3                           60
DIGI_TRAFFIC4                           61
DIGI_TRAFFIC5                           62
DIGI_TRAFFIC6                           63
DIGI_HELI1                              64
DIGI_JET1                               65
DIGI_MOTO1                              66
DIGI_MOTO2                              67
DIGI_NEON1                              68
DIGI_SUBWAY                             69
DIGI_TRAIN1                             70
DIGI_BIRDS1                             71
DIGI_BIRDS2                             72
DIGI_AMOEBA                             73
DIGI_TRAIN3                             74
DIGI_TRAIN8                             75
DIGI_WHIPME                             76
DIGI_FLAGWAVE                           77
DIGI_ANIMECRY                           78
DIGI_WINDCHIMES                         79
DIGI_BOATCREAK                          80
DIGI_SHIPBELL                           81
DIGI_FOGHORN                            82