********************************************************
* Adding sprites and flats into a PWAD without merging *
********************************************************

Version Info:  1.4, 5:58 PM 3/24/96

Credits:

Author: Niklata   Internet: [email protected]
                 CIS: 72164,540

Credits: S_END independently developed by Dalias and myself.
        F_END jointly developed by Dalias and myself.
        Jim F. Flynn for suggesting I write this


Contents:

1.0 ..... Introduction
2.0 ..... Adding Sprites to a PWAD
2.1 ..... Advanced Sprite manipulation using DeHackEd
3.0 ..... Adding Flats to a PWAD without external utlities



1.0  ---  Introduction

       When the question of adding sprites or flats comes up in the average
DOOM/DOOM2/Heretic/Hexen discussion,  you usually hear things like: "You can't do
that without using DeuSF," or "Adding flats isn't possible without DeuSF," or
endless other variations on the same theme.  This file is here to document
what was previously undocumented, and that is the real way to add these
things to a PWAD.  All of my step-by-step explanations within this document
refer to the tool DeuTex, but you can do these things by using a comparable
program such as NWT.  This document does assume that you are familiar with
standard WAD concepts (like adding sprites, flats, textures, etc.
"normally").  This method has been tested and I know that these techniques work,
since I have used them extensively myself.  This document makes
the assumption that you are already somewhat familiar with the use of these tools.


2.0  ---  Adding Sprites to a PWAD

       To add sprites to a PWAD, you must either replace the currently existing
sprites with sprites with identical names or use the method described in [2.1].

2.1  ---  Advanced Sprite manipulation using DeHackEd

       This is somewhat complex, but it isn't as bad is it sounds.  Add
custom sprites only where you have to, since use of these techniques require the
end-user to have DeHackEd to run your WAD.  Note that this material very much
applies to creators of DeHackEd patches, since they already need DeHackEd to
use your patch.  This applies mainly to when you want to extensively change
the appearance of a thing (i.e. editing the number of frames, etc.). In deutex
(or wintex, or NWT), add in a sprite using a new name, following this convention:

       ????A0 , ????B0 ... ????Z

       Here I'm going to describe the basic structure of DOOM sprite naming
convention.  The first four letters may be anything you want, they're the
ONLY part you can be original about, otherwise your sprites will cause
problems (ie. they won't work).  The fifth character is a letter
that corresponds to the sprite subnumber in DeHackEd (ie. Sprite Subnumber
1 = ????A0).  Okay, here comes the really strange and important part.
The 0 in my examples tells doom that that is the sprite does not have
multiple sprites that display for each viewpoint (in simpler terms,
the sprite looks like that no matter what direction it is facing in
relation to the player).  Here's a little chart that shows
you what the numbers are for each direction:

                       Facing
                         1
                       2   8
Left                  3   *   7                  Right
                       4   6
                         5

                        Away


Note that you can combine the numbers, espically for the diagonal facings
and the side facings.  A typical list of sprite name/numbers is diagrammed
below.

ZSPRA1
ZSPRA3A7
ZSPRA2A8
ZSPRA4A6
ZSPRA5

Note that if you want to make a sprite with multiple viewpoints, you must
have a sprite defined for each viewpoint, no matter what...

       This applies only to custom sprites manipulated using DeHackEd.
Next, create your sprites normally, but do not use the same names as
preexisting doom sprites.  After you have built the WAD containing your
sprites, it is time to use dehacked.  Fire up dehacked and press "z" to load
the original doom exe data.  Then press "F2" to enter thing editing mode.
From here, press "G" and select the thing whose sprites you wish to replace
from the list.  Then, arrow over to the second box from the top to the right.
From here, go to the group of the things sprites you wish to replace and
press "J" (i.e.: if you wanted to replace the imp's fireball attack frames, go
to "Far Attack Frame" and press "J").  Now you are in frames editor.  You
don't want to be here.  Hit "J" two more times to get into the text editor.
Here, press enter to edit the currently highlighted text, and change it so
it matches the first four letters of the set of sprites you wish to add (i.e.:
let's say that the names of your imp attack frames were ITROA0, ITROB0, ITROC0,
and ITROD0.  Type in ITRO, since it is the common first four letters of the
group).  Now press "F3" to get back into frames editor.  Notice the changes?
Now you have to adjust the sprites so they display such as you want.  Change
the sprite subnumber to select what the last letter of your set of sprites is
for that entry.  Note that this is zero-based.  Press the spacebar at any
time to see what the sprite looks like.  Note that dehacked will only view
sprites in the main IWAD, not from a PWAD.  Change the next frame number to
indicate what frame to goto.  0 indicates that that frame is the last frame
for the action.  Change the duration to affect how long the frame is
displayed.  -1 indicates that is displayed infinitely.  When you're
finished, press "S", type in a filename, and press enter to save.  Then load
the patch "dehacked -reload -load filename.deh" and run doom using your WAD.
       If you wish to get something that uses this technique, here's a
few files that I know use this technique:

       Niklata's Advanced Tech TC
       Dalias's Justice Quest TC
       Dalias's Megaflame Patch
       Dalias's Flaming Patch
       Dalias's Ice Patch

3.0  ---  Adding Flats to a WAD

       This is very similar to adding sprites to a PWAD.  All you have to do
is make a flat named "F_END" as your last flat within your PWAD.  Then run
the WAD as usual.  This has been tested in Doom, Doom II, Ultimate Doom,
Heretic, and Hexen.  It's really easy to do :).  Files that use this:

       Niklata's NKARENA2 Deathmatch WAD
       Dalias's Justice Quest TC