Adding and Replacing Doom Sprites

If you have read my "Naming conventions for Doom Sprites" section, this should make more sense.

I am not attempting to describe how to actually include sprites in your wad file (I may do that elsewhere) but rather what you can do with sprite names when you add them.

The results of these procedures have only been tested using Zdoom, so I cannot guarantee their success in any other port.  the beauty of what Zdoom  does is that it reads any additional sprite entries in a pwad and provided you have  put them in correctly it will realise you have replaced an entire animation frame or subsprite series and use them even if the replacement lump names and the originals are slightly different.

Some things that can be done...

Extending the view points.

If you are replacing a fairly symmetrical looking monster (such as the former human) with something that, say, clearly carries a weapon in one hand and a shield in the other you will want to make sure your new guy looks right from every angle and does not seem to instantly swap which hand he holds his shield and weapon in depending on the angle you look at him.  An enemy like the trooper uses the same graphic reversed to provided different viewpoints for the player.   Eg. POSSA3A7 is used normally as side on facing to the left and reversed for facing to the right.  This also means any obvious asymmetry in the graphic is very obviously reversed and looks odd during gameplay. 

If you create a pwad that has the entries POSSA1, POSSA2, POSSA3, POSSA4, POSSA5, POSSA6, POSSA7 and POSSA8, then Zdoom will realise you have replaced the entire POSSA sub sprite and use your new graphics instead of the ones in the Doom(2) IWAD, even though some of the graphics have different names. 

This can come in very handy if you are replacing the SS guy (a common thing to do).  Because in Wolfenstein the enemy only shot at you, and there was no multiplayer option Id only included front on views for the enemy attack and pain frames.  When they added the SS guy to Doom, they did not add any additional view points.  This means that in a multiplayer game, if one of your friends is getting shot by an SS guy, it will look as if he is shooting you, or if the SS guys are in-fighting they will also look as if they are shooting at you.

So, if you replace the SS shooting frames SSWVE0, SSWVF0, SSWVG0 with SSWVE1, SSWVE2, SSWVE3..... then Zdoom will realise, once again, you have replaced the entire sub frame set and use your all round view point graphics instead.

sswva.gif (2541 bytes)

The SS guy has a full 8 view points drawn for most frames (his cross belts are asymmetrical) but only has front on pictures for his attack and pain frames.


sarga.gif (4887 bytes)

The demon mainly has reversible frames for movements, but his attack is drawn from all 8 angles.


This process can also be used in reverse to limit the view points.

If you have a thing that has many view points but you want to change it to a single view point, this can also be done.   Eg the mancubus fireball has a multiple view points (MANFA1, MANFA8A2 etc) if you place a graphic called MANFA0 in your pwad, Zdoom will again realise the sprite subset has been replaced and use your single viewpoint graphic in place of the original all round ones.


Extending the range.

Sooner or later you get to the end of the graphics required to show a monster.  For example, the last graphic for the trooper is called POSSU0, U being the letter for the last sub sprite in the trooper sequence (his gibbed body lying on the ground).  you can extend the range, however by simply adding to the graphics, extending the naming convention.  You will only want to do this if you are using something like a DEHACKED patch, otherwise doom will just ignore your extra graphics as it already has enough to do what it wants. 

Lets imagine you were fed up with the trooper  jogging on the spot whilst waiting to wake up.  You make some nice "standing to attention" graphics and want to add them in.  You can't just replace POSSAx with your new graphic because once every walking cycle the trooper will look as if he is standing to attention.  You could, however, add new graphics called POSSV1, POSSV2, POSSV3, POSSV4, POSSV5, POSSV6, POSSV7 and POSSV8 (or any other combination of graphic names to add the POSSVx sub sprite series).  You now have   a bunch of new graphics that doom will just ignore because no-one has told doom what to do with them.  That is where DEHACKED comes in.  In the frame editor of DEHACKED (F3) each frame is allocated a sprite number (which ties in with the first 4 letters of the graphic names as described on the Sprite naming conventions page).   There is then a field for sprite sub number.  Number 0 is sub sprite A (as in POSSA), 1 is sub sprite B (as in POSSB) etc.  If you have added a sub sprite onto the sequence, you simply enter the number that corresponds  to your new sub sprite letter and save the DEHACKED patch.  If you run Zdoom with the patch loaded, Zdoom will use your new sub sprite for any frame you have allocated it to.  In our example You would start DEHACKED and hit F3 to go to the frame table.  Find frames 174 and 175 (the trooper waiting to wake up frames) and change the sub sprite numbers to 21.  This will instruct Zdoom to use your new graphics for the trooper waiting to wake up sequence.


deh01.gif (2616 bytes)

DEHACKED screen shot showing the trooper wait to wake up frames un edited.

deh02.gif (2753 bytes)

DEHACKED screen shot showing the first wait to wake up frame changed to show sub sprite V even though this does not exist in the original doom(2) IWAD

The only thing you have to be careful with in my experience is to make sure you do not leave gaps in the sequence.   If you are adding to the trooper sequence, you can easily add a V frame, W frame, X frame etc but you must not do something like add a W, X and Y (leaving a gap where V should be).  Zdoom doesn't like this.