<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mysterioso</id>
	<title>ModdingWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mysterioso"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Mysterioso"/>
	<updated>2026-05-15T03:15:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Ion_Maiden/Fury&amp;diff=12191</id>
		<title>Talk:Ion Maiden/Fury</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Ion_Maiden/Fury&amp;diff=12191"/>
		<updated>2025-03-17T11:35:57Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Delete?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nominate for deletion ==&lt;br /&gt;
I&#039;m not sure what the deletion protocol for this is on this site, but I think this page should probably go in the bin.  Not a DOS game, not even a Windows 3.x / 9x game, only reason for it to appear at all seems to be being based on the Build engine, but the page doesn&#039;t offer any useful information and was added by someone who was apparently told off for adding empty pages like this.  There are probably better sites to cater to Build modders outside of a DOS focus, are there not? -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 11:35, 17 March 2025 (GMT)&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=12162</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=12162"/>
		<updated>2025-03-09T22:48:18Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Update with some of my more recent notes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (trigger type 1) and expect it to work without incident. The Polyobj_ExplicitLine (trigger type 5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
&lt;br /&gt;
====Polyobject movement====&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.  To do this, set the clockwise-moving door as a mirror of the counter-clockwise-moving door, and have all trigger lines that operate the doors set to activate the counter-clockwise-moving door.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;br /&gt;
&lt;br /&gt;
=== Spawnables ===&lt;br /&gt;
The following objects can be spawned by script and by the destruction of certain items. DEFS.ACS (included via COMMON.ACS) gives names to them for when you are spawning via script, but for appearing out of breakable objects you can only refer to them by number. The names are generally meant to be easy mnemonics for the object spawned, but some of them are a bit obscure.&lt;br /&gt;
&lt;br /&gt;
Spawned objects in vanilla Hexen cannot be assigned TIDs. This is particularly significant for the &amp;quot;thrust spike&amp;quot; objects which can be spawned, but not subsequently activated/deactivated.&lt;br /&gt;
&lt;br /&gt;
In scripts, these things can be created using the &#039;&#039;&#039;Thing_Spawn&#039;&#039;&#039;, &#039;&#039;&#039;Thing_SpawnNoFog&#039;&#039;&#039;, &#039;&#039;&#039;Thing_Projectile&#039;&#039;&#039; and &#039;&#039;&#039;Thing_ProjectileGravity&#039;&#039;&#039; functions. The number of a particular type of thing currently on the map can also be retrieved using the &#039;&#039;&#039;thingcount&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
You may also place any of these spawnable objects inside some types of breakable scenery. To have an item spawn out of a breakable object (pots, decorative armor), you should leave the breakable object&#039;s special at 0 but set its first argument to the spawn number of the item you want it to contain. Certain objects do not behave logically when spawned this way; for instance, projectiles (such as those listed here in the &amp;quot;trap&amp;quot; category), will hang inertly in place and cannot cause damage. Objects that have a significant angle property (e.g. monsters) will spawn facing east.&lt;br /&gt;
&lt;br /&gt;
The pairs 66/97 and 67/99 (permanent small flames and permanent large flames) are redundant spawn numbers. 66 and 97 both spawn the same permanent small flame, while 67 and 99 both spawn the same permanent large flame. Use whichever one you prefer, but ideally pick one or the other and be consistent about it.&lt;br /&gt;
&lt;br /&gt;
The pair of sapphire planets, and the pair of emerald planets, are not interchangeable despite looking identical, and there are actually separate sprite entries for each of them. Puzzle slots will demand a particular sapphire or emerald and won&#039;t accept the other one.&lt;br /&gt;
&lt;br /&gt;
The phantom &amp;quot;mash&amp;quot; monsters are special versions of certain normal monsters that are translucent and do not leave corpses when killed. In the core levels, they appear only while fighting Korax, and are spawned by one of his battle scripts.&lt;br /&gt;
&lt;br /&gt;
Using out-of-bounds spawn numbers is not recommended. It might spawn something, but is unlikely to be consistent across varying ports (even vanilla vs. chocolate). The defined numbers range from 0 to 108. Things that do not appear in this table cannot be spawned without port extensions; notably, the Firestorm and Arc of Death weapons and the Brown Chaos Serpent enemy do not have spawn numbers, and many monster projectiles cannot be fired from scripted traps.&lt;br /&gt;
&lt;br /&gt;
==== Table of spawnable things ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Thing&lt;br /&gt;
!DEFS name&lt;br /&gt;
!Number&lt;br /&gt;
!Category&lt;br /&gt;
|-&lt;br /&gt;
|Nothing&lt;br /&gt;
|T_NONE&lt;br /&gt;
|0&lt;br /&gt;
|Nothing&lt;br /&gt;
|-&lt;br /&gt;
|Centaur&lt;br /&gt;
|T_CENTAUR&lt;br /&gt;
|1&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Slaughtaur&lt;br /&gt;
|T_CENTAURLEADER&lt;br /&gt;
|2&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Green Chaos Serpent&lt;br /&gt;
|T_DEMON&lt;br /&gt;
|3&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Ettin&lt;br /&gt;
|T_ETTIN&lt;br /&gt;
|4&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Afrit&lt;br /&gt;
|T_FIREGARGOYLE&lt;br /&gt;
|5&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker&lt;br /&gt;
|T_WATERLURKER&lt;br /&gt;
|6&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker Boss&lt;br /&gt;
|T_WATERLURKERLEADER&lt;br /&gt;
|7&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver&lt;br /&gt;
|T_WRAITH&lt;br /&gt;
|8&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver (buried)&lt;br /&gt;
|T_WRAITHBURIED&lt;br /&gt;
|9&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Lava ball projectile&lt;br /&gt;
|T_FIREBALL1&lt;br /&gt;
|10&lt;br /&gt;
|Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue mana&lt;br /&gt;
|T_MANA1&lt;br /&gt;
|11&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Green mana&lt;br /&gt;
|T_MANA2&lt;br /&gt;
|12&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Boots of Speed                    &lt;br /&gt;
| T_ITEMBOOTS         &lt;br /&gt;
| 13     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator                       &lt;br /&gt;
| T_ITEMEGG           &lt;br /&gt;
| 14     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Wings of Wrath                    &lt;br /&gt;
| T_ITEMFLIGHT       &lt;br /&gt;
| 15     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Servant                     &lt;br /&gt;
| T_ITEMSUMMON        &lt;br /&gt;
| 16     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Banishment Device                 &lt;br /&gt;
| T_ITEMTPORTOTHER    &lt;br /&gt;
| 17     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Device                     &lt;br /&gt;
| T_ITEMTELEPORT      &lt;br /&gt;
| 18     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Bishop                       &lt;br /&gt;
| T_BISHOP            &lt;br /&gt;
| 19     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Wendigo                           &lt;br /&gt;
| T_ICEGOLEM          &lt;br /&gt;
| 20     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Magic Bridge                      &lt;br /&gt;
| T_BRIDGE            &lt;br /&gt;
| 21     &lt;br /&gt;
| Platform&lt;br /&gt;
|-&lt;br /&gt;
|Dragonskin Bracers                &lt;br /&gt;
|T_DRAGONSKINBRACERS&lt;br /&gt;
|22     &lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Vial                      &lt;br /&gt;
| T_ITEMHEALTHPOTION &lt;br /&gt;
| 23    &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Quartz Flask                      &lt;br /&gt;
| T_ITEMHEALTHFLASK   &lt;br /&gt;
| 24     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Mystic Urn                        &lt;br /&gt;
| T_ITEMHEALTHFULL   &lt;br /&gt;
| 25     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Krater of Might                   &lt;br /&gt;
| T_ITEMBOOSTMANA     &lt;br /&gt;
| 26     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Timon&#039;s Axe                       &lt;br /&gt;
| T_FIGHTERAXE        &lt;br /&gt;
| 27     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Hammer of Retribution             &lt;br /&gt;
| T_FIGHTERHAMMER     &lt;br /&gt;
| 28     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (1)           &lt;br /&gt;
| T_FIGHTERSWORD1     &lt;br /&gt;
| 29     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (2)            &lt;br /&gt;
| T_FIGHTERSWORD2     &lt;br /&gt;
| 30     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (3)           &lt;br /&gt;
| T_FIGHTERSWORD3     &lt;br /&gt;
| 31     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Serpent Staff                     &lt;br /&gt;
| T_CLERICSTAFF       &lt;br /&gt;
| 32     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (1)        &lt;br /&gt;
| T_CLERICHOLY1       &lt;br /&gt;
| 33     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (2)        &lt;br /&gt;
| T_CLERICHOLY2       &lt;br /&gt;
| 34     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (3)        &lt;br /&gt;
| T_CLERICHOLY3       &lt;br /&gt;
| 35     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Frost Shards                      &lt;br /&gt;
| T_MAGESHARDS        &lt;br /&gt;
| 36     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (1)       &lt;br /&gt;
| T_MAGESTAFF1        &lt;br /&gt;
| 37     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (2)       &lt;br /&gt;
| T_MAGESTAFF2        &lt;br /&gt;
| 38     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (3)       &lt;br /&gt;
| T_MAGESTAFF3       &lt;br /&gt;
| 39     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator trap projectile        &lt;br /&gt;
| T_MORPHBLAST        &lt;br /&gt;
| 40     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (larger)              &lt;br /&gt;
| T_ROCK1             &lt;br /&gt;
| 41     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (medium)              &lt;br /&gt;
| T_ROCK2             &lt;br /&gt;
| 42     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (smaller)             &lt;br /&gt;
| T_ROCK3             &lt;br /&gt;
| 43     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (1)  &lt;br /&gt;
| T_DIRT1             &lt;br /&gt;
| 44     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (2)  &lt;br /&gt;
| T_DIRT2            &lt;br /&gt;
| 45     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (3)  &lt;br /&gt;
| T_DIRT3             &lt;br /&gt;
| 46     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small grey pebble                 &lt;br /&gt;
| T_DIRT4             &lt;br /&gt;
| 47     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green particle                    &lt;br /&gt;
| T_DIRT5             &lt;br /&gt;
| 48     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown particle                    &lt;br /&gt;
| T_DIRT6             &lt;br /&gt;
| 49     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Arrow trap projectile             &lt;br /&gt;
| T_ARROW             &lt;br /&gt;
| 50     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile              &lt;br /&gt;
| T_DART              &lt;br /&gt;
| 51     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile (poisoned)   &lt;br /&gt;
| T_POISONDART        &lt;br /&gt;
| 52     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Spiked ball projectile            &lt;br /&gt;
| T_RIPPERBALL        &lt;br /&gt;
| 53     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue glass shard                  &lt;br /&gt;
| T_STAINEDGLASS1     &lt;br /&gt;
| 54     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Yellow glass shard                &lt;br /&gt;
| T_STAINEDGLASS2     &lt;br /&gt;
| 55     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Purple glass shard                &lt;br /&gt;
| T_STAINEDGLASS3     &lt;br /&gt;
| 56     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green glass shard                 &lt;br /&gt;
| T_STAINEDGLASS4     &lt;br /&gt;
| 57     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Gold glass shard                  &lt;br /&gt;
| T_STAINEDGLASS5     &lt;br /&gt;
| 58     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small blue glass shard            &lt;br /&gt;
| T_STAINEDGLASS6     &lt;br /&gt;
| 59     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (1)      &lt;br /&gt;
| T_STAINEDGLASS7     &lt;br /&gt;
| 60     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (2)      &lt;br /&gt;
| T_STAINEDGLASS8     &lt;br /&gt;
| 61     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small purple glass shard          &lt;br /&gt;
| T_STAINEDGLASS9     &lt;br /&gt;
| 62     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small green glass shard           &lt;br /&gt;
| T_STAINEDGLASS0     &lt;br /&gt;
| 63     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Serrated blade projectile         &lt;br /&gt;
| T_BLADE             &lt;br /&gt;
| 64     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Frost shard projectile            &lt;br /&gt;
| T_ICESHARD          &lt;br /&gt;
| 65     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Small flame on ground             &lt;br /&gt;
| T_FLAME_SMALL       &lt;br /&gt;
| 66     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Large flame on ground             &lt;br /&gt;
| T_FLAME_LARGE       &lt;br /&gt;
| 67     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Mesh Armor                        &lt;br /&gt;
| T_MESHARMOR         &lt;br /&gt;
| 68     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Falcon Shield                     &lt;br /&gt;
| T_FALCONSHIELD      &lt;br /&gt;
| 69     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Platinum Helm                     &lt;br /&gt;
| T_PLATINUMHELM      &lt;br /&gt;
| 70     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Amulet of Warding                 &lt;br /&gt;
| T_AMULETOFWARDING   &lt;br /&gt;
| 71     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Flechette                         &lt;br /&gt;
| T_ITEMFLECHETTE     &lt;br /&gt;
| 72     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Torch (item)                      &lt;br /&gt;
| T_ITEMTORCH         &lt;br /&gt;
| 73     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Disc of Repulsion                 &lt;br /&gt;
| T_ITEMREPULSION     &lt;br /&gt;
| 74     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Combined Mana                     &lt;br /&gt;
| T_MANA3             &lt;br /&gt;
| 75     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Yorick&#039;s Skull                    &lt;br /&gt;
| T_PUZZSKULL         &lt;br /&gt;
| 76     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Heart of D&#039;sparil                 &lt;br /&gt;
| T_PUZZGEMBIG        &lt;br /&gt;
| 77     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Ruby Planet                       &lt;br /&gt;
| T_PUZZGEMRED        &lt;br /&gt;
| 78     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (1)                &lt;br /&gt;
| T_PUZZGEMGREEN1     &lt;br /&gt;
| 79     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (2)                &lt;br /&gt;
| T_PUZZGEMGREEN2     &lt;br /&gt;
| 80     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (1)               &lt;br /&gt;
| T_PUZZGEMBLUE1      &lt;br /&gt;
| 81     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (2)               &lt;br /&gt;
| T_PUZZGEMBLUE2      &lt;br /&gt;
| 82     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Daemon Codex (&amp;quot;O&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK1         &lt;br /&gt;
| 83     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Liber Oscura (&amp;quot;A&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK2         &lt;br /&gt;
| 84     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Steel Key                         &lt;br /&gt;
| T_METALKEY          &lt;br /&gt;
| 85     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Cave Key                          &lt;br /&gt;
| T_SMALLMETALKEY     &lt;br /&gt;
| 86     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Axe Key                           &lt;br /&gt;
| T_AXEKEY            &lt;br /&gt;
| 87     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Fire Key                          &lt;br /&gt;
| T_FIREKEY           &lt;br /&gt;
| 88     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Key                       &lt;br /&gt;
| T_GREENKEY          &lt;br /&gt;
| 89     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Key                       &lt;br /&gt;
| T_MACEKEY          &lt;br /&gt;
| 90     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Silver Key                       &lt;br /&gt;
| T_SILVERKEY         &lt;br /&gt;
| 91     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Rusted Key                        &lt;br /&gt;
| T_RUSTYKEY          &lt;br /&gt;
| 92     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Horn Key                          &lt;br /&gt;
| T_HORNKEY           &lt;br /&gt;
| 93     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Swamp Key                         &lt;br /&gt;
| T_SERPENTKEY        &lt;br /&gt;
| 94     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Drop of water                     &lt;br /&gt;
| T_WATERDRIP         &lt;br /&gt;
| 95     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary small flame             &lt;br /&gt;
| T_TEMPSMALLFLAME    &lt;br /&gt;
| 96    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent small flame            &lt;br /&gt;
| T_PERMSMALLFLAME    &lt;br /&gt;
| 97     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary large flame            &lt;br /&gt;
| T_TEMPLARGEFLAME   &lt;br /&gt;
| 98   &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent large flame        &lt;br /&gt;
| T_PERMLARGEFLAME  &lt;br /&gt;
| 99  &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Green Chaos Serpent  &lt;br /&gt;
| T_DEMON_MASH &lt;br /&gt;
| 100&lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Brown Chaos Serpent &lt;br /&gt;
| T_DEMON2_MASH      &lt;br /&gt;
| 101    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Ettin                     &lt;br /&gt;
| T_ETTIN_MASH        &lt;br /&gt;
| 102    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Centaur                   &lt;br /&gt;
| T_CENTAUR_MASH      &lt;br /&gt;
| 103    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (up)                  &lt;br /&gt;
| T_THRUSTSPIKEUP     &lt;br /&gt;
| 104    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (buried)              &lt;br /&gt;
| T_THRUSTSPIKEDOWN   &lt;br /&gt;
| 105    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Reiver skin drip                  &lt;br /&gt;
| T_FLESH_DRIP1       &lt;br /&gt;
| 106    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver chainmail drip             &lt;br /&gt;
| T_FLESH_DRIP2       &lt;br /&gt;
| 107    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver spark drip                 &lt;br /&gt;
| T_SPARK_DRIP        &lt;br /&gt;
| 108    &lt;br /&gt;
| Effects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pig Passages ===&lt;br /&gt;
It is possible that you may wish to include puzzles or secrets involving places that the player can only access if they allow themselves to be hit by a porkalator projectile, similar to the one appearing in the official level Vivarium.  This is complicated a bit by ports which add a crouch feature not found in the original game, but it is still quite possible to include these and have the puzzle operate as intended even if a player tries to crouch through the passage.&lt;br /&gt;
&lt;br /&gt;
The smallest vertical sector size that a crouched player in ZDoom can fit into is 32 units. A pig can fit into passages with a headroom as low as 24 units, so pig tunnels should have a vertical space of 24 to 31 units to prevent them from being crawled through by an un-morphed player.  28 or 30 is probably a good value to go with.&lt;br /&gt;
&lt;br /&gt;
Furthermore, projectiles fired horizontally from a map spot set 32 units above the floor will pass safely over pigs, but hit crouched players, even for projectiles like fireballs and ripper balls where it visually looks like this would not be the case.  If you felt particularly nasty you could create a deathtrap of densely-fired projectiles that the player would only be able to safely pass as a pig, or by using an Icon of the Defender (which you could, of course, withhold from being available in the scenario).&lt;br /&gt;
&lt;br /&gt;
=== Bugs of Note ===&lt;br /&gt;
&lt;br /&gt;
A few bugs you will want to be aware of if you are making a WAD intended to work in the original EXE.&lt;br /&gt;
&lt;br /&gt;
==== Sector special 200 ====&lt;br /&gt;
&lt;br /&gt;
This is supposed to change the sky, but only works for skies set on the sector&#039;s floor, rather than the ceiling, and is therefore not very useful.  Some ports fix this.&lt;br /&gt;
&lt;br /&gt;
==== Wyvern / Porkalator bug ====&lt;br /&gt;
&lt;br /&gt;
If a Death Wyvern is awake on the map, and a monster that&#039;s vulnerable to morphing gets hit with a porkalator projectile, there is an obscure but serious bug causing the TID list to get corrupted.  On DOS, the game may continue running but with undesirable or unpredictable results when actions involving object TIDs are invoked.  Most ports will simply crash outright.  In Hexen&#039;s official levels, this bug is most apparent in the Brackenwood level of the Deathkings expansion, but can occur in the Hypostyle as well.&lt;br /&gt;
&lt;br /&gt;
Possible workarounds are few and may require sacrifices in design:&lt;br /&gt;
* Not including Death Wyverns and Porkalators in the same WAD.&lt;br /&gt;
* Offering Porkalators only after any map containing a Wyvern can no longer be accessed.&lt;br /&gt;
* Making sure Death Wyvern fights are separated from the rest of the action such that a monster can&#039;t be morphed after the Wyvern becomes active (for example, a point of no return arena at the end of a hub, containing no morphable monsters).&lt;br /&gt;
* Requiring a port that fixes the bug.  At the time of this update (March 2025), the only ports that contain a proper fix are ZDoom, Vavoom, and derivatives thereof (GZDoom, k8vavoom, etc.)&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
There are two ways that Hexen can play background music: from MUS tracks in a WAD or from the Hexen CD. The majority of people (especially nowadays) probaby use the MUS soundtrack, but there are a few things that should be noted regarding the CD. Particularly, only about half of the MUS tracks have CD equivalents, and several of the CD tracks were taken by the storyline/intermission tracks (which are also used in a few levels when playing CD audio).&lt;br /&gt;
&lt;br /&gt;
There are two different methods for assigning the two different types of music. CD tracks are assigned in the MAPINFO lump with a &#039;&#039;&#039;cdtrack #&#039;&#039;&#039; key for each map where # is the CD track number. MUS tracks are assigned in the SNDINFO lump with a &#039;&#039;&#039;$MAP # track&#039;&#039;&#039; key, where # is the map number and track is the name of the MUS lump to play.&lt;br /&gt;
&lt;br /&gt;
For example, to play the Winnowing Hall music on MAP01 in the IWAD, MAPINFO includes:&lt;br /&gt;
&lt;br /&gt;
    cdtrack 13&lt;br /&gt;
&lt;br /&gt;
and SNDINFO includes:&lt;br /&gt;
&lt;br /&gt;
    $MAP 1 Winnowr&lt;br /&gt;
&lt;br /&gt;
If you wish to include a custom MUS track in a PWAD for vanilla Hexen, bear in mind that it must really be in MUS format; autoconversion of MIDI lumps was a feature added to the Doom engine after the Heretic/Hexen codebase was forked from it.&lt;br /&gt;
&lt;br /&gt;
=== CD Tracks ===&lt;br /&gt;
&lt;br /&gt;
Here are the CD tracks and their equivalent MUS name. Track 1 is the data track and should not be played as audio. There is an oddity in Deathkings, in that tracks are sometimes substituted even if the MUS track is available on the CD.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD track MUS equivalents ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Track Number&lt;br /&gt;
! MUS name&lt;br /&gt;
! Deathkings Substitution&lt;br /&gt;
|-&lt;br /&gt;
|2	          &lt;br /&gt;
| Jachr              &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|3	          &lt;br /&gt;
| Blechr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|4	          &lt;br /&gt;
| Hexen              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5	          &lt;br /&gt;
| Orb                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6	          &lt;br /&gt;
| Hall               &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7	          &lt;br /&gt;
| Chess              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8	          &lt;br /&gt;
| Cryptr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|9	          &lt;br /&gt;
| Falconr            &lt;br /&gt;
| 18 (Chap_4r), 10 (Octor)&lt;br /&gt;
|-&lt;br /&gt;
|10	          &lt;br /&gt;
| Octor              &lt;br /&gt;
| 5 (Orb)&lt;br /&gt;
|-&lt;br /&gt;
|11	          &lt;br /&gt;
| Rithmr             &lt;br /&gt;
| 19 (Fantar)&lt;br /&gt;
|-&lt;br /&gt;
|12	          &lt;br /&gt;
| Sixater            &lt;br /&gt;
| 21 (Levelr)&lt;br /&gt;
|-&lt;br /&gt;
|13	          &lt;br /&gt;
| Winnowr            &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|14	          &lt;br /&gt;
| Swampr             &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
|15	          &lt;br /&gt;
| Wutzitr            &lt;br /&gt;
| 20 (Foojar)&lt;br /&gt;
|-&lt;br /&gt;
|16	          &lt;br /&gt;
| Bonesr             &lt;br /&gt;
| 8 (Cryptr)&lt;br /&gt;
|-&lt;br /&gt;
|17	          &lt;br /&gt;
| Chap_1r            &lt;br /&gt;
| 14 (Swampr)&lt;br /&gt;
|-&lt;br /&gt;
|18	          &lt;br /&gt;
| Chap_4r            &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19	          &lt;br /&gt;
| Fantar             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20	          &lt;br /&gt;
| Foojar             &lt;br /&gt;
| 17 (Chap_1r)&lt;br /&gt;
|-&lt;br /&gt;
|21	          &lt;br /&gt;
| Levelr             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22	          &lt;br /&gt;
| Simonr             &lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CD Substitutions ===&lt;br /&gt;
&lt;br /&gt;
The omitted tracks on the CD leave fifteen MUS tracks that do not have a CD track equivalent, so you may have to select a next-best track out of the ones available on the CD. Both the original campaign and Deathkings substitute CD tracks for these missing pieces in their MAPINFO, but Deathkings substitutes them differently from the main game. &amp;quot;Chartr&amp;quot; exists in the Hexen IWAD but goes unused in both campaigns.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD missing track substitutions ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MUS name &lt;br /&gt;
! Beyond Heretic substitution &lt;br /&gt;
! Deathkings substitution&lt;br /&gt;
|-&lt;br /&gt;
| Borkr    &lt;br /&gt;
| 17 (Chap_1r)                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chap_2r  &lt;br /&gt;
|&lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|-&lt;br /&gt;
| Chap_3r&lt;br /&gt;
| 10 (Octor)                  &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Chartr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chippyr  &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Crucibr  &lt;br /&gt;
| 2 (Jachr)                   &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Deepr    &lt;br /&gt;
| 20 (Foojar)                 &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Fortr    &lt;br /&gt;
| 16 (Bonesr)                 &lt;br /&gt;
| 13 (Winnowr)&lt;br /&gt;
|-&lt;br /&gt;
| Fubasr   &lt;br /&gt;
| 6 (Hall)                    &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Grover   &lt;br /&gt;
| 5 (Orb)                     &lt;br /&gt;
| 7 (Chess)&lt;br /&gt;
|-&lt;br /&gt;
| Percr    &lt;br /&gt;
| 21 (Levelr)                 &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Secretr  &lt;br /&gt;
| 14 (Swampr)                 &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Stalkr   &lt;br /&gt;
| 9 (Falconr)                 &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
| Voidr    &lt;br /&gt;
| 19 (Fantar)                 &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|-&lt;br /&gt;
| Wobabyr  &lt;br /&gt;
| 15 (Wutzitr)                &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Duke_Nukem&amp;diff=11929</id>
		<title>Duke Nukem</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Duke_Nukem&amp;diff=11929"/>
		<updated>2024-06-12T13:48:27Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* External links */ Replace link that&amp;#039;s been highjacked by a spam site with a wayback from when it was good.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Apogee&#039;s first big success was &#039;&#039;&#039;Duke Nukem&#039;&#039;&#039;, a cool, fast action platform game with the cool, fast action hero Duke Nukem.  Because of the success of the first game, many sequels followed.  In the second sequel, [[Duke Nukem 3D]], the main attraction was the attitude of the character, with every gunfight he had a new catch phrase.  In the first Duke Nukem game however, the best feature was that everything could be shot.  Not just the enemies fell victim to Duke&#039;s destructiveness, but also walls, laser beams (no need to search for switches), chests, health items (fry that chicken) and valuable objects. &lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = N/A&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = N/A&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.shikadi.net/wiki/files/moddingwiki/tools/duke1/duke1ed.zip Dave Bollinger&#039;s Duke Nukem Editor]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = N/A&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = N/A&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://crystalshard.net/?p=8&amp;amp;s=51 Pieter Simoons&#039; Duke Nukem Editor]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = N/A&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = N/A&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://levellord.toxicsheep.com/KWbeta.zip KeenWave]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = N/A&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = N/A&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
There are more editors on the [http://dosclassics.com/duke/dl.php Duke Central downloads page].&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = worldal&#039;&#039;X&#039;&#039;.dn&#039;&#039;Y&#039;&#039;&lt;br /&gt;
 | Format = [[Duke 1 Level Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels.  The &#039;&#039;X&#039;&#039; in the filename is the (hexadecimal) level number and &#039;&#039;Y&#039;&#039; is the episode&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = anim*.dn?&amp;lt;br/&amp;gt;back*.dn?&amp;lt;br/&amp;gt;border.dn?&amp;lt;br/&amp;gt;drop*.dn?&amp;lt;br/&amp;gt;font*.dn?&amp;lt;br/&amp;gt;man*.dn?&amp;lt;br/&amp;gt;numbers.dn?&amp;lt;br/&amp;gt;object*.dn?&amp;lt;br/&amp;gt;solid*.dn?&lt;br /&gt;
 | Format = [[ProGraphx Toolbox tileset format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tilesets&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = badguy.dn?&amp;lt;br/&amp;gt;credits.dn?&amp;lt;br/&amp;gt;dn.dn?&amp;lt;br/&amp;gt;duke.dn?&amp;lt;br/&amp;gt;end.dn?&lt;br /&gt;
 | Format = [[Raw EGA data#Planar EGA data|Full-screen planar EGA]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full screen graphics (all files are 32kB)&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = duke1.dn?&amp;lt;br/&amp;gt;duke1-b.dn?&lt;br /&gt;
 | Format = [[Inverse Frequency Sound format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = PC speaker sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = saved&#039;&#039;X&#039;&#039;.dn?&lt;br /&gt;
 | Format = [[Duke 1 Savegame Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Saved games, where &#039;&#039;X&#039;&#039; is the save number (1 to 9) or &amp;quot;t&amp;quot; for the temporary save&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = my_demo.dn?&amp;lt;br/&amp;gt;userdemo.dn?&lt;br /&gt;
 | Format = [[Duke 1 Demo Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Previously recorded demos&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = highs.dn?&lt;br /&gt;
 | Format = ASCII text (DOS/CR+LF)&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = High scores in ASCII text (score immediately followed by name then &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;, contains exactly 10 entries even though only 8 entries are shown in the game)&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = keys.dn?&lt;br /&gt;
 | Format = N/A&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Keyboard scancodes, one byte for each of up, down, left, right, fire, jump, in that order.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = speed.dn?&lt;br /&gt;
 | Format = [[INT16LE]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores an [[INT16LE]] value defining the game&#039;s speed. A value of 0 means 16 frames per second, larger values slow the game down. Negative values can increase the game&#039;s speed, but the original game only uses values from 0 to 9 (inclusive).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
| Name = dn?.exe&lt;br /&gt;
| Format = MZ Executable, [[LZEXE]] compressed&lt;br /&gt;
| KnownFormat = Yes&lt;br /&gt;
| Desc = If unpacked with [[UNLZEXE]], the story and other text messages used by the game can be located and hex edited as ASCII text.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* Maps can be found at [https://web.archive.org/web/20091008051613/http://zanderz.net/?menu=gaming&amp;amp;page=gamemaps zanderz.net] (archived)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=SPEC_Format&amp;diff=11905</id>
		<title>SPEC Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=SPEC_Format&amp;diff=11905"/>
		<updated>2024-05-07T17:04:40Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Quick stomp of a couple of the TODOs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SPEC format&#039;&#039;&#039; is used by [[Abuse]] to store levels, save games, and graphical data.  Level files can be edited using the built-in editor while Satan Paint can load and save graphics archives, as well as including handling for special tile properties like collision boundaries.&lt;br /&gt;
&lt;br /&gt;
SPEC files store multiple-byte numbers in little endian form.  This appears to be the case even in ports for systems that are natively big endian (e.g. Motorola-based Macintosh computers).&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The header is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ASCIIZ]] || Format label, &amp;quot;SPEC1.0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || number of entries in the index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Next comes an array of index entries:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Type (see specs.hpp)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Length of file name (NB: not the length of the file itself)&lt;br /&gt;
|-&lt;br /&gt;
| [[ASCIIZ]] || File name string, of the length specified immediately prior&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || {{TODO|ceninan says &amp;quot;a flag of some sort; I don&#039;t think this was ever implemented, and probably had to do with linking files...?&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Entry size (0 is an allowed value, for &amp;quot;tag&amp;quot; entries that exist only for the entry name)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Offset (Absolute from start of SPEC file)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The actual entries follow, with the handling for them usually, but not always, decided by the type value specified in the index.&lt;br /&gt;
&lt;br /&gt;
=== Entry type 2 - SPEC_PALETTE ===&lt;br /&gt;
&lt;br /&gt;
A fairly standard palette format, with the addition of being able to handle variable numbers of colors.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Number of colors&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An array of colors, according to the number above, follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Red component&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Green component&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Blue component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 5 - SPEC_FORETILE ===&lt;br /&gt;
Foreground tiles - {{TODO|editor manual says a tile is (always?) 30x15, so varying sizes probably mean varying bounding polys.}}&lt;br /&gt;
For these entries, the name of the tile lump appears to be used as the editor&#039;s tile number.&lt;br /&gt;
It appears that Abuse allows tiles to have polygonal boundaries for collision, the exact format for these needs to be confirmed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] array || Pixels, as palette indices&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || {{TODO|&amp;quot;next&amp;quot;?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || {{TODO|ignored (unimplemented feature?)}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || {{TODO|should be count of boundary points?}}&lt;br /&gt;
|}&lt;br /&gt;
{{TODO|	? variable length boundary (array of int8 x,y coordinate pairs defining the solid space of the tile, e.g. a rectangle)&lt;br /&gt;
		this appears to draw a polygon from dot to dot so for a rectangle, five points are needed? (duplicate of the first to be last)&lt;br /&gt;
		is there a formal count? (i.e. is the prior 05 in the observed tiles part of this, rather than just &amp;quot;to end of file&amp;quot;?)}}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 6 - SPEC_BACKTILE ===&lt;br /&gt;
{{TODO|Are these always 60x30?}}  Name of the tile lump appears to be used as tile number.&lt;br /&gt;
&lt;br /&gt;
TENTATIVE:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] array || Pixels, as palette indices&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || {{TODO|&amp;quot;create_descriptor&amp;quot; maybe always 0 for backtiles}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 18 - SPEC_GRUE_FGMAP ===&lt;br /&gt;
Used in levels, {{TODO|probably for foreground layout? (lump name is probably important)}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] array of width*height || Tile values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 19 - SPEC_GRUE_BGMAP ===&lt;br /&gt;
Used in levels, {{TODO|probably for background layout? (lump name is probably important)}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] array of width*height || Tile values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 20 - SPEC_DATA_ARRAY ===&lt;br /&gt;
{{TODO|This is sort of a &amp;quot;catchall&amp;quot; entry type, and the file name of the entry matters to its interpretation.  These are particularly frequently used in level files.}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Some basic information on the container format was published by ceninan.  Further investigation into the data format specifications, based on both hex examination of the files and a reading of the released Abuse source code, is being added by [[User:Mysterioso|Mysterioso AKA ETTiNGRiNDER]].&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Witchaven_II/Modding_Tips&amp;diff=11902</id>
		<title>Witchaven II/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Witchaven_II/Modding_Tips&amp;diff=11902"/>
		<updated>2024-05-06T16:24:01Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Parameter to load map by number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Editing ==&lt;br /&gt;
&lt;br /&gt;
CD releases of Witchaven II came with a copy of the BUILD editor on the disc.  However, this appears to have been omitted from digital re-releases.  Having the Witchaven II NAMES.H is also helpful as it will label tiles with special properties according to their given name in the source code.&lt;br /&gt;
&lt;br /&gt;
The manual included a basic overview of using the editor.&lt;br /&gt;
&lt;br /&gt;
=== Map Loading Parameter ===&lt;br /&gt;
&lt;br /&gt;
The Witchaven II manual is in error about the name of the map loading parameter, but such a parameter does exist. The correct parameter is &amp;quot;MAP #&amp;quot;, e.g.&lt;br /&gt;
&lt;br /&gt;
WH2 MAP 15&lt;br /&gt;
&lt;br /&gt;
You can only load numbered maps in the form of LEVEL#.MAP, not arbitrary file names like Doom (and other games with good custom map support) allow. BME made a frontend that works around this, but it does so by swapping file names on the fly. You can also name your maps with level numbers higher than those included with the game. The game can load levels up to LEVEL999; at this point you&#039;re probably limited by DOS file name lengths. If you make sure to give every map set a unique block of level numbers (and have a note or batch file to correctly select the starting map number) it would probably be possible for quite a few maps and sets to coexist even in the vanilla game although it is not certain that the music will play correctly beyond level 15.&lt;br /&gt;
&lt;br /&gt;
== Music and Sound ==&lt;br /&gt;
&lt;br /&gt;
In Witchaven II, the FM and wavetable versions of the soundtrack are stored separately in F_SONGS and W_SONGS respectively.  These are in [[JOESND]] format.  Each of the 15 levels get four tracks; the first two are the &amp;quot;calm&amp;quot; music and the second pair are battle music. Some tracks are duplicated, for example the two regular music tracks for level 1 are duplicates of the same song. The &amp;quot;level 16&amp;quot; tracks are the menu music (duplicated four times).  The music is in HMP format, version 2 (HMIMIDIP013195).&lt;br /&gt;
&lt;br /&gt;
Sound effects from JOESND are stored as raw PCM. The correct settings to use when loading them in an audio program are unsigned 8 bit PCM, mono, and 11025 sample rate. (In Audacity, this can be done with the menu option Import &amp;gt; Raw Data).  In both Witchaven and Witchaven II&#039;s source code, the file SNDMOD.H attaches names to the sound index numbers. They are unnamed in the archives themselves; JOESND format does not store file names.&lt;br /&gt;
&lt;br /&gt;
== GRP files ==&lt;br /&gt;
There is some support for placing the MAP and ART files in a GRP archive under the filename STUFF.DAT.  GRP utilities for Duke Nukem 3D can work with these. However, there are apparently some issues with reading the palette files out of STUFF.DAT. It&#039;s possible that this was an incomplete feature in the versions of BUILD used in these games.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://rtcmsite.neocities.org/knowledge-base/documents-online/build-witchaven2-manual An extended/corrected version of the map editor instructions on RTCM]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Witchaven_II/Modding_Tips&amp;diff=11901</id>
		<title>Witchaven II/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Witchaven_II/Modding_Tips&amp;diff=11901"/>
		<updated>2024-05-06T15:56:44Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Apparently, I never added these notes to the wiki, so let&amp;#039;s correct that.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Editing ==&lt;br /&gt;
&lt;br /&gt;
CD releases of Witchaven II came with a copy of the BUILD editor on the disc.  However, this appears to have been omitted from digital re-releases.  Having the Witchaven II NAMES.H is also helpful as it will label tiles with special properties according to their given name in the source code.&lt;br /&gt;
&lt;br /&gt;
The manual included a basic overview of using the editor.&lt;br /&gt;
&lt;br /&gt;
== Music and Sound ==&lt;br /&gt;
&lt;br /&gt;
In Witchaven II, the FM and wavetable versions of the soundtrack are stored separately in F_SONGS and W_SONGS respectively.  These are in [[JOESND]] format.  Each of the 15 levels get four tracks; the first two are the &amp;quot;calm&amp;quot; music and the second pair are battle music. Some tracks are duplicated, for example the two regular music tracks for level 1 are duplicates of the same song. The &amp;quot;level 16&amp;quot; tracks are the menu music (duplicated four times).  The music is in HMP format, version 2 (HMIMIDIP013195).&lt;br /&gt;
&lt;br /&gt;
Sound effects from JOESND are stored as raw PCM. The correct settings to use when loading them in an audio program are unsigned 8 bit PCM, mono, and 11025 sample rate. (In Audacity, this can be done with the menu option Import &amp;gt; Raw Data).  In both Witchaven and Witchaven II&#039;s source code, the file SNDMOD.H attaches names to the sound index numbers. They are unnamed in the archives themselves; JOESND format does not store file names.&lt;br /&gt;
&lt;br /&gt;
== GRP files ==&lt;br /&gt;
There is some support for placing the MAP and ART files in a GRP archive under the filename STUFF.DAT.  GRP utilities for Duke Nukem 3D can work with these. However, there are apparently some issues with reading the palette files out of STUFF.DAT. It&#039;s possible that this was an incomplete feature in the versions of BUILD used in these games.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://rtcmsite.neocities.org/knowledge-base/documents-online/build-witchaven2-manual An extended/corrected version of the map editor instructions on RTCM]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Witchaven/Modding_Tips&amp;diff=11900</id>
		<title>Witchaven/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Witchaven/Modding_Tips&amp;diff=11900"/>
		<updated>2024-05-06T15:44:23Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: derp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Editing ==&lt;br /&gt;
&lt;br /&gt;
Ideally, use a version of the BUILD editor that works directly with version 6 of the .MAP format.  Having the Witchaven NAMES.H is also helpful as it will label tiles with special properties according to their given name in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Format Conversion ===&lt;br /&gt;
&lt;br /&gt;
If it is desired to use version 7 .MAP tools for Witchaven, the following are needed:&lt;br /&gt;
&lt;br /&gt;
* A BUILD v7 editor. The one from Witchaven II will work fine. Mapster probably or other third party tools might also work. You need the TABLES.DAT that goes with it as well.&lt;br /&gt;
* The utilities CONVMAP7 and BACKMAP6.&lt;br /&gt;
* PALETTE.DAT and LOOKUP.DAT of Witchaven&#039;s palette in BUILD version 7 format. The utility TRANSPAL should be able to convert these. Using the ones from Witchaven II is possible but not recommended as a few of the palette swaps are different.&lt;br /&gt;
* The Witchaven .ART files, and if editing or examining them is desired, the .MAP files run through CONVMAP7.&lt;br /&gt;
* Optionally, the Witchaven NAMES.H which will let BUILD display special names for those tiles that have them (usually sprites which have special functions when placed.)&lt;br /&gt;
&lt;br /&gt;
Once the above items have been gathered in a folder (NOT your main Witchaven folder, as the converted files may impair running the game), editing may proceed as usual. To edit the map, it must be in version 7 format, and to run it in Witchaven, it must be version 6. Swapping between the two is achieved through CONVMAP7 and BACKMAP6. One important note: slopes should be avoided, they may work poorly or not at all in version 6 of the engine.&lt;br /&gt;
&lt;br /&gt;
== Music and Sound ==&lt;br /&gt;
&lt;br /&gt;
In Witchaven, the FM and wavetable versions of the soundtrack are both lumped together in a single SONGS file in [[JOESND]] format.  It is necessary to insert them in the correct file slots for them to play in the correct sound card mode.  The music is in HMP format, version 2 (HMIMIDIP013195).&lt;br /&gt;
&lt;br /&gt;
Sound effects from JOESND are stored as raw PCM. The correct settings to use when loading them in an audio program are unsigned 8 bit PCM, mono, and 11025 sample rate. (In Audacity, this can be done with the menu option Import &amp;gt; Raw Data).  In both Witchaven and Witchaven II&#039;s source code, the file SNDMOD.H attaches names to the sound index numbers. They are unnamed in the archives themselves; JOESND format does not store file names.&lt;br /&gt;
&lt;br /&gt;
== GRP files ==&lt;br /&gt;
There is some support for placing the MAP and ART files in a GRP archive under the filename STUFF.DAT.  GRP utilities for Duke Nukem 3D can work with these. However, there are apparently some issues with reading the palette files out of STUFF.DAT. It&#039;s possible that this was an incomplete feature in the versions of BUILD used in these games.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Witchaven/Modding_Tips&amp;diff=11899</id>
		<title>Witchaven/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Witchaven/Modding_Tips&amp;diff=11899"/>
		<updated>2024-05-06T15:43:11Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Apparently, I never added these notes to the wiki, so let&amp;#039;s correct that.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Editing ==&lt;br /&gt;
&lt;br /&gt;
Ideally, use a version of the BUILD editor that works directly with version 6 of the .MAP format.  Having the Witchaven NAMES.H is also helpful as it will label tiles with special properties according to their given name in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Format Conversion ===&lt;br /&gt;
&lt;br /&gt;
If it is desired to use version 7 .MAP tools for Witchaven, the following are needed:&lt;br /&gt;
&lt;br /&gt;
* A BUILD v7 editor. The one from Witchaven II will work fine. Mapster probably or other third party tools might also work. You need the TABLES.DAT that goes with it as well.&lt;br /&gt;
* The utilities CONVMAP7 and BACKMAP6.&lt;br /&gt;
* PALETTE.DAT and LOOKUP.DAT of Witchaven&#039;s palette in BUILD version 7 format. The utility TRANSPAL should be able to convert these. Using the ones from Witchaven II is possible but not recommended as a few of the palette swaps are different.&lt;br /&gt;
* The Witchaven .ART files, and if editing or examining them is desired, the .MAP files run through CONVMAP7.&lt;br /&gt;
* Optionally, the Witchaven NAMES.H which will let BUILD display special names for those tiles that have them (usually sprites which have special functions when placed.)&lt;br /&gt;
&lt;br /&gt;
Once the above items have been gathered in a folder (NOT your main Witchaven folder, as the converted files may impair running the game), editing may proceed as usual. To edit the map, it must be in version 7 format, and to run it in Witchaven, it must be version 6. Swapping between the two is achieved through CONVMAP7 and BACKMAP6. One important note: slopes should be avoided, they may work poorly or not at all in version 6 of the engine.&lt;br /&gt;
&lt;br /&gt;
== Music and Sound ==&lt;br /&gt;
&lt;br /&gt;
In Witchaven, the FM and wavetable versions of the soundtrack are both lumped together in a single SONGS file in [[JOESND]] format.  It is necessary to insert them in the correct file slots for them to play in the correct sound card mode.  The music is in HMP format, version 2 (HMIMIDIP013195).&lt;br /&gt;
&lt;br /&gt;
Sound effects from JOESND are stored as raw PCM. The correct settings to use when loading them in an audio program are unsigned 8 bit PCM, mono, and 11025 sample rate. (In Audacity, this can be done with the menu option Import &amp;gt; Raw Data).  In both Witchaven and Witchaven II&#039;s source code, the file SNDMOD.H attaches names to the sound index numbers. They are unnamed in the archives themselves; JOESND format does not store file names.&lt;br /&gt;
&lt;br /&gt;
== GRP files ==&lt;br /&gt;
There is some support for placing the MAP and ART files in a GRP archive under the filename STUFF.DAT.  GRP utilities for Duke Nukem 3D can work with these. However, there are some apparently issues with reading the palette files out of STUFF.DAT. It&#039;s possible that this was an incomplete feature in the versions of BUILD used in these games.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Malvineous&amp;diff=11339</id>
		<title>User talk:Malvineous</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Malvineous&amp;diff=11339"/>
		<updated>2023-10-03T18:35:25Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Wiki policy questions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wolfenstein 3D -&amp;gt; Wolfenstein 3-D ==&lt;br /&gt;
I&#039;ve corrected the infamous 3D tyop in the names of several Wolf3D-related pages; can you please delete the following ones?&lt;br /&gt;
&lt;br /&gt;
[[:Category:Wolfenstein 3D]] -&amp;gt; Superseded by [[:Category:Wolfenstein 3-D]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Image:Wolfenstein_3D.png]] -&amp;gt; Superseded by [[:Image:Wolfenstein_3-D.png]]&lt;br /&gt;
&lt;br /&gt;
Thanks :) --De Zeurkous (zeurkous@zeurcomp.nichten.info), Thu Nov 22 08:18:42 UTC 2007&lt;br /&gt;
&lt;br /&gt;
:Haha, you&#039;ve certainly been busy.  Don&#039;t forget that this wiki isn&#039;t meant to be an encyclopaedia of the games, its main purpose is documenting the file formats and editing tools that can be used with the games, as opposed to how the games behave without any mods, or what they might be called if you forget to change the title screen :-) -- [[User:Malvineous|Malvineous]] 11:14, 22 November 2007 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Nah, I haven&#039;t forgotten. As we&#039;re reinventing the wheel for a semi-virgin wiki, the naming and something static like the cheats seemed like a good place to start :) --De Zeurkous (zeurkous@nichten.info), Thu Nov 22 12:20:04 UTC 2007&lt;br /&gt;
&lt;br /&gt;
== Jill of the Jungle palette ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m currently working on a level viewer for [[Jill of the Jungle]] (maybe an editor later on). Some of the information I found here has been very useful, but there&#039;s one thing I&#039;m a bit stuck on. On the [[SHA Format]] page it says:&lt;br /&gt;
:&#039;&#039;Each array item contains 4 unsigned bytes, representing CGA, EGA and VGA, respectivley, and then a null value. [...] Each byte maps to the index of a colour in the palette. If there are no colours required, the tile set uses the default colours.&#039;&#039;&lt;br /&gt;
However, it doesn&#039;t say anywhere where the palette can be found. Is it stored in the EXE file? I hope you can help me on this :)&lt;br /&gt;
&lt;br /&gt;
Regards, [[User:Spinal|Spinal]] 13:00, 2 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
:Unfortunately I didn&#039;t write the JotJ SHA page, and I haven&#039;t yet had the time to figure this out.  For Xargon I&#039;ve taken the quick and dirty route and used a screenshot from within DOSBox as the source of the palette, until I can figure out where the palette is located.  If you find this out, don&#039;t forget to update the page! :-) -- [[User:Malvineous|Malvineous]] 22:02, 2 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Hey Spinal, sorry, I wrote the [[SHA Format]] page, so that was probably my bad. I wasn&#039;t able to find the palette either. I assume it&#039;s in the .EXE, however I spent a fair bit of time manually mapping it using a Wombat tool (http://www.szevvy.com/node/3). I was also writing a level viewer (initally in XHTML which turned out to be too slow, so then I moved to Flash 9). I tried to email you my findings, but the email bounced. I&#039;m not sure if they were 100% accurat, which is why I never added them to the documentation.&lt;br /&gt;
&lt;br /&gt;
::Hey Malvineous, it seems the Jill - [[DMA Format]] page has been removed. Do you have a log of what happened to it? I&#039;m sure it existed at some point.&lt;br /&gt;
&lt;br /&gt;
::- [[User:dheim|Daniel]] 20:00, 5 March 2008&lt;br /&gt;
&lt;br /&gt;
:::I don&#039;t ever remember seeing a DMA page - certainly there&#039;s nothing in the wiki logs about it being deleted or renamed.  Maybe you started working on it but never got around to saving it?  Or is it one of the Xargon pages that shares the same format as Jill?  (by the way, you can type &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; to automatically put in the signature in these messages.) -- [[User:Malvineous|Malvineous]] 11:28, 5 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::Sorry, it must have been the stuff in the [[SHA Format]] page that I was thinking of. I may have added the link to the [[DMA Format]] page, and never expanded on it. - [[User:Dheim|Daniel]] 02:46, 6 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::::Hi guys. Sorry for the mistake, I mixed up the authors of the SHA and level formats. I&#039;ve written a level viewer in PHP the last week, by using static images instead of getting them from the actual files. This causes some problems for episode 2, which uses a different palette, but besides that it works great :) When everything is done I&#039;ll upload the maps to my server and the tile/object lists to this wiki.&lt;br /&gt;
:::::@Daniel: strange that it bounced, I confirmed my address so it should be working fine... You can mail it to spinal -at- zanderz -dot- net. Also, I saw on your Wombat page that you &amp;quot;have a vague idea of how to do&amp;quot; [[Hocus Pocus]]. Could you share your findings on this wiki? I&#039;d love to make maps, or even a level viewer/editor for that game :) -- [[User:Spinal|Spinal]] 00:32, 8 March 2008 (GMT)&lt;br /&gt;
:Okay, with help of [[User:Dheim|Daniel]] who send me the palette I found it! I&#039;ll put my findings on [[Jill of the Jungle palette]]. -- [[User:Spinal|Spinal]] 15:36, 13 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Halloween Harry/Alien Carnage ==&lt;br /&gt;
&lt;br /&gt;
Hi Malvineous. Thanks for your edits on the GMF article! I notice you mentioned there exist versions of the game which don&#039;t require exploding a BNK to get at the game data. What does the directory structure look like for the version you have? I&#039;m working on a map viewer (which will become a map editor at some point) and would like it to be able to work on whatever versions are out there. Thanks for any info. -[[User:Duckthing|Duckthing]] 04:41, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Hi Duckthing - no worries, Halloween Harry has long been an interest of mine, but my map editor sadly needs a lot more work before I can begin reverse engineering more file formats so I&#039;m glad you&#039;ve made a start!  AFAIK technically Halloween Harry has no compression, but for whatever reason (probably listed in the Apogee FAQ) they decided to swap episodes 1 and 3, compress the BNK file and then re-release it under the name Alien Carnage.  You can download all available versions (including registered versions since the game was released as freeware in 2007) from [http://www.classicdosgames.com/game/Alien_Carnage.html RGB Classic Games].  BTW not sure if you noticed but I also posted a couple of things on the GMF article&#039;s talk/discussion page. -- [[User:Malvineous|Malvineous]] 06:08, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:: Thank you! Working with the uncompressed version will keep things less complicated. I did notice the GMF discussion you added, but haven&#039;t had a chance to really go through it yet. -- [[User:Duckthing|Duckthing]] 06:41, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: No worries.  If you&#039;re running Linux or MacOSX you should be able to compile [[Camoto|libgamearchive]] which will let you copy files in and out of the BNK files.  This is a library so it&#039;s also possible to use it in your own program for accessing and editing the map files while they&#039;re still inside the BNK, for instance.  (BTW the &#039;minor&#039; tickbox should only be used when the edit does not affect the information on the page - e.g. fixing a typo or a broken URL.  If you are changing the actual content on a page it is never a minor edit!) -- [[User:Malvineous|Malvineous]] 07:51, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dangerous Dave ==&lt;br /&gt;
&lt;br /&gt;
Working on this, does anyone have any info on the formats? The EGA graphics are 84KB and external, but CGA and VGA graphics unrelated to them are in the 174KB executable, apparently uncompressed, I don&#039;t know how this is possible. I&#039;ve found the levels and partially reverse engineered the format (The first 1000 bytes, a 100x10 array of tiles.) but each level is followed by ~280 bytes of variable and unknown data I assume is sprites. I have a list of internal files in the executable, looks like most of it is non-game code. Any help would be appreciated. -[[User:Levellass|Endian? What are you on about?]] 06:03, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Hmm, interesting.  All I can suggest for the levels is - as you&#039;re probably already familiar with - changing the values in a hex editor then loading the game to see what happens.  I would suspect that all the graphics would be in a similar format, so if there are any headers or structures used in the EGA graphics files perhaps they&#039;re duplicated for CGA/VGA?  Also John Romero seems pretty accessible, perhaps you could ask him directly?  Failing that, randomly writing data into the .exe until the images change could be used as a last resort! -- [[User:Malvineous|Malvineous]] 12:09, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Ha, that was easier than I expected - uncompressed VGA data is easy to find with a good hex editor ;-)  [http://www.shikadi.net/pics/ddave-vga-hexdump.png This looks like it] -- [[User:Malvineous|Malvineous]] 12:17, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Ok that was only the menu graphics.  At offset 0xC629 there&#039;s some sort of offset table which looks very similar to the contents of EGADAVE.DAV but there are extra bytes dotted all over the place - perhaps it&#039;s RLE encoded?  Actually just before that there&#039;s the number 0x6CAA.  If you go a bit less than 0x6CAA bytes after this you end up with another table, which to me suggests that 0x6CAA is the decompressed size of that first table. -- [[User:Malvineous|Malvineous]] 13:01, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:If I remember it correctly, the VGA sprites and tiles are RLE compressed and it&#039;s not too hard to decompress them. The positions of the enemies in the levels on the other hand are still a mystery to me. [[User:Calvero|Calvero]] 20:43, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Looking at the levels, which directly follow the VGA palette, they seem to contain 256 bytes of header data, then the 100x10 tiles, then eight bytes of lead-out data.  Then the next level&#039;s 256 bytes of header, 100x10 tiles, then eight bytes of lead-out.  Although I say &amp;quot;level&amp;quot;, the first &amp;quot;level&amp;quot; seems to contain both level 1 and 2, and this seems to be the way it works in the game - in some levels you can see through to others.  I&#039;m not sure what the 256 bytes of header data are for, but some levels have FF FF 00 00 repeated which seems to indicate two uint16 fields which are blanked out for those levels. -- [[User:Malvineous|Malvineous]] 13:15, 13 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::First up, levels; where does level 1 start? It&#039;s possible I&#039;m reading the start of a level as the previous level&#039;s end, I looked for the start of tile data, which I assumed, like Keen 1, would be the level start.&lt;br /&gt;
&lt;br /&gt;
::Next, palette; I&#039;m assuming, as you said, it is located just before the level data?&lt;br /&gt;
&lt;br /&gt;
::There is VGA and CGA graphics in the executable, plus headers, but the bulk of graphics for CGA and VGA I haven&#039;t been able to locate. If the data is RLE compressed I should think it would use either Keen 1-3 fullscreen or Jazz Jackrabbit tile RLE, both of which I know well. I&#039;ll look into both of these options, cheers! -[[User:Levellass|Endian? What are you on about?]] 12:03, 20 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::I&#039;ve found the VGA and CGA data for the menu graphics.  It looks like the CGA data is stored in a series of 1-bit-per-pixel (monochrome) images.  Or it could be EGA data with the planes split out (e.g. red plane for all images, then green plane for all images, etc.)  I think I found three planes which means it&#039;s probably EGA, as CGA would have a max of two planes.  I&#039;ve also found the font graphics, this looks like 4bpp/16 colour EGA data.  Haven&#039;t seen level graphics yet.  I&#039;ve successfully modded the levels with a hex editor (putting the jetpack everywhere) so now I&#039;ve finally looked at all the levels!  The creatures are definitely not stored in the 100x10 tile data.  Putting random bytes in there revealed that the values are indices into the image files, because if you put the value in for fire it will animate, and the following three or so values show up as still frames from the fire animation.&lt;br /&gt;
&lt;br /&gt;
:::The VGA palette starts at 0x26B0A (I updated the main DDave page with this) + 768 bytes leads straight onto the start of level 1 at 0x26E0A.  So at 0x26E0A there are 256 bytes of data, then 100x10 tiles, then 24 bytes of footer data.  Some of this data (perhaps footer data) might be the level start coordinates, because Dave doesn&#039;t always start the level at the same place (e.g. the warp level when you climb the tree on level 5 and jump off the edge of the screen.) -- [[User:Malvineous|Malvineous]] 12:24, 20 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::I think I&#039;ve found all the files so far, I&#039;ve updated [[Dangerous Dave]] with the offsets of the files, including what appears to be CGA and VGA tiles.  I&#039;m not sure what sort of format they&#039;re in though, it looks like they might be compressed (and so the offsets in that list might be off by ~4, as I may have cut off the decompressed-size field.)  I&#039;ve also updated the map format page, I think it&#039;s pretty much fully reverse engineered now. -- [[User:Malvineous|Malvineous]] 05:13, 21 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Noahs Ark 3D and IMFs ==&lt;br /&gt;
&lt;br /&gt;
Been poking around Noah&#039;s Ark 3D, an adaption of the Wolfenstein game and found a few interesting things which I&#039;m hoping to confirm.&lt;br /&gt;
&lt;br /&gt;
First, the game uses MID files, not IMF files for music, second, the MIDI files have an extra word at the start of the file giving the file length. Third, the code uses the first word of the midi file as the length of data to read from the file and put into memory to play. After poking around a bit in Wolfenstein and Keen I believe this is the same with IMF files, that is, ALL IMF files are type 0 as it were and the type 1s are read just like type 0s by the games (The first word is read as the amount of IMF data to copy into memory to play, this is then read as type 0.) I&#039;m not quite sure what this does for the two types since type 1 is would essentially be a type 0 with a header and footer that are part of the AUDIO.xxx format, much like PC\adlib sounds can have the huffman lengths at the start. Are there any games that use &#039;individual&#039; type 1 IMFs (Even if included as part of a group file. All I&#039;ve seen are games like cosmo, where non-AUDIO IMFs are type 0.)&lt;br /&gt;
&lt;br /&gt;
Should there be a Noah&#039;s Ark 3D page and should we add the midi note to the AUDIO format page? It seems that the format can hold any type of music file the game can read, not just IMFs.  -- Levellass&lt;br /&gt;
&lt;br /&gt;
: Yes it is known that the type-1 header might really be part of the AUDIO.xxx format but alas there were many type-1 files floating around the place (incorrectly extracted, you could argue) before this was realised, so the format variant is here to stay.  It does have some advantages though (like tagging files with the song title) but I&#039;m not sure whether anyone has figured out definitively whether the header (and footer, in the case of the Wolf3D files) belongs to the IMF or the AUDIO file.  I guess you&#039;d have to browse the game source code and see how the game uses the data to know for sure.&lt;br /&gt;
&lt;br /&gt;
: As far as the MIDI goes, I believe the AUDIO.xxx file is just a container file like any other, capable of supporting any data at all.  It&#039;s up to the game to decide how to use it.  If anything this makes me think it would fit better if the AUDIO.xxx article was merely documenting the structure, with links to actual audio formats like PC SFX, Adlib SFX, IMF and MIDI and notes about which games make use of which formats.&lt;br /&gt;
&lt;br /&gt;
: Oh and yes, by all means create a page for the new game. -- [[User:Malvineous|Malvineous]] 08:41, 3 February 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Sound Files category ==&lt;br /&gt;
&lt;br /&gt;
I don’t know why there’s a Sound Files category and also an Audio Files category... it seems redundant. I left those categories the way they are though.&lt;br /&gt;
&lt;br /&gt;
Also, the [[File format data types]] page needs some signed ints, but I didn’t know what naming convention you wanted to use. I described something as an [[INT16LE]] on [[BMC Format]]. [[User:Yellowantphil|Yellowantphil]] 20:12, 11 September 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Not sure about the Sound vs Audio - I use the term &#039;audio&#039; to mean both sound and music, but you&#039;re right, if there are separate sound and music categories we don&#039;t really need an audio one as well.  Feel free to update.  [[INT16LE]] is perfectly fine too!  I added a note to the data types page. -- [[User:Malvineous|Malvineous]] 22:30, 11 September 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
== GamePage template ==&lt;br /&gt;
&lt;br /&gt;
Should the GamePage template add the page to its own category? It seems a little odd that [[Wacky Wheels]] is not in the Wacky Wheels category. [[User:Yellowantphil|Yellowantphil]] 04:51, 16 September 2011 (GMT)&lt;br /&gt;
: I decided against this because there is a link to the game&#039;s page in the category intro at the top of the page.  It seemed unnecessary having another link in amongst all the other pages.  This was also because the game page was really only meant to be a summary, there wasn&#039;t supposed to be a huge amount of detail on it, only links to other pages with the detail (which then would appear in the category list.)  I would imagine that, eventually, [[Wacky Wheels]] would be tweaked to move a lot of the content onto subpages. -- [[User:Malvineous|Malvineous]] 12:58, 16 September 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Scope of the wiki ==&lt;br /&gt;
&lt;br /&gt;
I don’t know how extensive you want the information to be on ModdingWiki... I added a few lists of audio and graphics files a while ago, and there will probably be other information that I’ll find out that’s potentially helpful for level editing but not directly related to it. I can move some information to my website if it starts to become out of scope for your wiki. I also sometimes end up documenting everything imaginable... there’s some minutiae on my website and possibly on your wiki that I ought to go through and delete. [[User:Yellowantphil|Yellowantphil]] 05:28, 10 October 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
:Hmm, that&#039;s a difficult one - I&#039;m always in favour of documenting more rather than less.  Generally speaking if it&#039;s related to a game and it would help either a programmer writing a utility or a someone trying to change a game manually then it should be documented.  About the only thing that comes to mind that&#039;s over documenting is when some small calculation is expressed in a couple of different programming languages, but I&#039;ve left that in so people can just copy it rather than trying to figure it out from the text.  But the [[Wacky Wheels]] page is probably the gold standard for what all wiki pages should look like :-)  Do you have anything in particular you&#039;re unsure of whether it would fit here? -- [[User:Malvineous|Malvineous]] 10:07, 10 October 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
::I was mainly thinking of the list of VOC files on [[Wacky Wheels Music and Sound Effects]] and the list of &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt; files on [[Wacky Wheels Graphics Formats]]. I have an expanded list of the &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt; files on my computer but it isn’t finished yet. I guess there isn’t all that much more Wacky Wheels information to be added to this wiki though. There is still some modding information on my website that ought to be moved over here, so that would take up another page or two. I’ve been lazy about doing Wacky Wheels stuff lately, but I might find some time for it this weekend.&lt;br /&gt;
&lt;br /&gt;
::By the way, I guess that guy from Cascadia Games emailed you. It’s pretty interesting that WW might become an iPhone app. He told me that he was going to be using his own game engine, which sounds a lot easier than trying to get a hold of the WW source code and porting it. —[[User:Yellowantphil|Yellowantphil]] 16:46, 15 October 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: I was going to say the list of VOCs might be overkill, but then the list of .sp files might be useful.  To be honest, it&#039;s the sort of thing that you could probably omit if you were feeling lazy, but likewise I don&#039;t mind at all if you choose to include it, so since it&#039;s already there I&#039;m happy to keep it.&lt;br /&gt;
&lt;br /&gt;
::: Yes I did get an e-mail from Cascadia, I was going to pass along your details but it sounds like you&#039;re already aware of it!  Using their own engine might make it a bit smoother than the original, as the jerkiness of turning is my only criticism of the game. -- [[User:Malvineous|Malvineous]] 00:14, 16 October 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;d like to document not only the format of some game archives but also their contents. This would be quite long lists of basically images, sprites and some minor stuff. I&#039;d also like to upload the actual images alongside but I&#039;m not sure whether that fits the scope of the wiki or if I should just put it somewhere on github. Any advice highly welcome :) -- [[User:Yetmorecode|Yetmorecode]] 15:25, 22 December 2020&lt;br /&gt;
&lt;br /&gt;
::That depends on what you mean with &amp;quot;their contents&amp;quot;. Documenting the used file formats is obviously in the scope of this wiki, since there&#039;s not much point in being able to extract/replace the files in those archives if you can&#039;t actually view those files or make those replacements. But dumping the whole list of all existing files in a game into a wiki article is usually not very useful. An article could highlight some specific files with special functions in the game (stuff like the remap-defining PALETTE.CPS in Red Alert 1 comes to mind; [[Westwood CPS Format|cps]] is a very normal image format in these games, but that specific file controls all recolouring of sprites that change to their owner&#039;s colour), but a list of all sprites and sound files and all their exact usages in the game doesn&#039;t seem like it&#039;d belong here; most of the time such things are pretty self-evident.&lt;br /&gt;
::PS: when you add something to a user talk page, use the signature code to give your note a clearly visible author and date stamp. There&#039;s a big red box on the top of the edit page telling you how to do that.&lt;br /&gt;
:: --[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 15:51, 22 December 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Alright that makes sense. Sorry about the signature I must have been blind. [[User:Yetmorecode|Yetmorecode]] ([[User talk:Yetmorecode|talk]]) 17:11, 22 December 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Yes just to confirm this, an image or two is useful to illustrate a file format but we don&#039;t want to become an archive of all game material, not least of which because extracting this is often against the game&#039;s licence (and doesn&#039;t really come under &amp;quot;fair use&amp;quot;) so could open you up to legal trouble if the current copyright owner takes exception to it.  If you come across something hidden or undocumented you can put it on [https://tcrf.net/The_Cutting_Room_Floor The Cutting Room Floor] otherwise [https://pages.github.com/ GitHub Pages] may work as you&#039;ve suggested (if you fly under the copyright radar!) -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 07:08, 23 December 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wacky Wheels ==&lt;br /&gt;
&lt;br /&gt;
Basically all of the WW modding information from my website is here now. I moved one page when I realized it should probably be capitalized to match the rest of the pages on this site... you can delete the redirect at [[Wacky Wheels high score files]] if you want to.&lt;br /&gt;
&lt;br /&gt;
Now, I need to remove most of the modding information from my website and refer people here. Then we’ll have reached the glorious future where all WW modding information is in one place. I’m going to keep those two text files of notes on my website though—the information in them is disorganized and I think not 100% accurate, but they might have some information that isn’t here yet.&lt;br /&gt;
&lt;br /&gt;
By the way, how’s Camoto going? I’m planning to use it to make a new WW level, but I won’t have time for it for a few more months. —[[User:Yellowantphil|Yellowantphil]]&lt;br /&gt;
&lt;br /&gt;
: Sounds good!  Thanks for all the effort you&#039;ve put in by moving it across.  I think Wacky Wheels is now the most completely documented game on the wiki!  Also can&#039;t hurt leaving your own info up - sometimes it&#039;s nice to go back to the original source if something is unclear.  Camoto&#039;s going well, but unfortunately I haven&#039;t had much time to work on it over the last few weeks.  You probably won&#039;t be able to make much of a level until I add in the ability to select a tile from the tileset, but that&#039;s in progress and hopefully will be ready by the time you are!  Keep me posted when you do start your level(s?) -- [[User:Malvineous|Malvineous]] 12:22, 2 February 2012 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Well, as I was reading some of the information on my website, I noticed that it isn’t written very well. I wrote those pages back when I had very little experience programming. Anyway, I’m planning to redesign my website soon, and this will save me from having to rewrite a few of those pages.&lt;br /&gt;
&lt;br /&gt;
::The tile editor in Camoto as it is now is still certainly useful—I can add new tile types to a level using a binary editor and then move them around in Camoto. I think that it shouldn’t be too hard to make a new WW level using the Gimp and Camoto plus some binary editing. I recall having some problems with the route editor for the computer players, but I didn’t look into it at the time—I’ll let you know when I’m working with Camoto again, and I’ll try to come up with some useful bug reports or fixes if I run into problems. —[[User:Yellowantphil|Yellowantphil]] 14:06, 2 February 2012 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Catacomb ==&lt;br /&gt;
&lt;br /&gt;
Hey [[User:Malvineous|Malvineous]], do you know anyone who has properly read the [[Inverse_Frequency_Sound_format|Inverse Sound Frequency]] file format and got the sound playing? I&#039;m struggling with some fine details in my game. Sounds play near what they should sound like, but the sound quality is all crackly and some sounds play totally incorrect. I followed a basic [http://web.archive.org/web/20000818033701/http://www.dd.chalmers.se/~f98anga/projects/keen/sounds2raw.c code sample] by Anders Gavare. Does your tool support this? Interested in helping me figure this out? My current code is available at [https://code.google.com/p/cataclone/source/browse/trunk/src/catacomb/catacomb_sound.c catacomb_sound.c] - [[User:Eros|Eros]] 11:57, 5 May 2012 (GMT)&lt;br /&gt;
: Should this be moved to my talk page? - [[User:Eros|Eros]] 11:59, 5 May 2012 (GMT)&lt;br /&gt;
:: Probably best to keep it on my talk page if you want me to respond in a timely manner :-)  I based my old utility off Anders&#039; one too, but it&#039;s been a long time since I looked at the code.  My latest utility doesn&#039;t support sound effects yet.  I know Levellass has written a few utilities to play and edit those sound files, so I think your best bet would probably be to post over at the [http://www.keenmodding.org Keen:Modding] forum.  Do note that PC Speaker effects do sound crackly at the best of times, though!  Also make sure you&#039;ve got the right audio format (8-bit vs 16-bit, signed vs unsigned) - I remember some inconsistencies there causing some very distorted results for me.  I love the name &#039;Cataclone&#039; - does your code compile under Linux? -- [[User:Malvineous|Malvineous]] 13:21, 5 May 2012 (GMT)&lt;br /&gt;
::: I currently compile the code using Code::Blocks with GCC 4.6 -std=gnu99. It *should* compile under Linux. But I haven&#039;t tested that out yet. [[Catacomb]] sounds also have flags attached to each one, It&#039;s not exactly the same specification as what it says @ the [[Inverse_Frequency_Sound_format|Inverse Sound Frequency]] format page. Perhaps the flags would make a difference to the sounds? I have the sound setup @ [https://code.google.com/p/cataclone/source/browse/trunk/src/sound_manager.c sound_manager.c] in the sound_manager_init() method. I use AUDIO_S16 (signed 16-bit) @ 22050 Hz with 2 channels. I have not added support for the priority of the sounds yet, I plan on doing that after I get them playing properly.&lt;br /&gt;
::: I found some information on the [[ROTT]] sound format here: [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/_rt_soun.h _rt_soun.h]. This format should be similar to Catacomb as ROTT was developed by [[Apogee]] using the [[Doom]] engine. Here are the flags for the sounds that they define:&lt;br /&gt;
 #define SD_OVERWRITE     0x01&lt;br /&gt;
 #define SD_WRITE         0x02&lt;br /&gt;
 #define SD_LOOP          0x04&lt;br /&gt;
 #define SD_PITCHSHIFTOFF 0x08&lt;br /&gt;
 #define SD_PLAYONCE      0x10&lt;br /&gt;
::: There are also many other sound files for ROTT: [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/rt_sound.c], [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/rt_sound.h], [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/snd_reg.h], [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/snd_shar.h], [http://src.gnu-darwin.org/ports/games/rottdc/work/rottdc-1.0-2/rott/sndcards.h]&lt;br /&gt;
:::: I tried it last night and I was able to get it to compile (after a few changes, like using &#039;/&#039; instead of &#039;\&#039; in a couple of #includes) but all I got was a black window and a beep sound, then nothing.  How far advanced is the project?  Should I expect more than that?  I would expect small variations in the file formats between games, but I would be surprised if the core sound data has changed over time. -- [[User:Malvineous|Malvineous]] 02:38, 6 May 2012 (GMT)&lt;br /&gt;
::::: On Windows, you can run around the levels, collide with walls, collect items, etc... I still need to implement monsters, AI and power shots. However, that beep means that the sounds playing. (see line 71 in main.c: catacomb_sounds_play(&amp;quot;foundsound&amp;quot;);). I just committed the catacomb_data.h file. Update it accordingly, you should now see much more than a black screen.&lt;br /&gt;
:::::: Oh wow, that works really well now!  I see what you mean by the sounds.  You might have to output the PCM data to a .wav/.raw file and look at it in a sound editor to see what&#039;s going on.  It sounds like there might be wrapping or something going on.  Also some sounds (like being blocked by a door) play multiple times over the top of themselves.  I guess this is what you meant by priority not being implemented (although maybe you wouldn&#039;t need to handle priority if you can play multiple sounds at the same time, unlike the real PC Speaker.)  One suggestion - if you do decide to support Linux, abstract the calls that open files so that they search for filenames instead - that way you don&#039;t have to rename all the Catacomb files to be uppercase, since Linux has a case-sensitive filesystem and most filenames are usually all lowercase. -- [[User:Malvineous|Malvineous]] 03:42, 6 May 2012 (GMT)&lt;br /&gt;
::::::: I have exported the raw data to a file, then imported the raw data into Audacity using various settings. All of them sound like they do in the game, crackly and sometimes distorted. I really think its some sort of post FX used by the flags. As for files, I&#039;ll code some sort of SafeFileOpen, SafeFileClose functions like the id codebase that open files regardless of case when i get around to implementing the Linux version. - [[User:Eros|Eros]] 03:54, 6 May 2012 (GMT)&lt;br /&gt;
:::::::: If you can e-mail me one of the files (preferably a &#039;quiet&#039; one that&#039;s not supposed to be crackly) I can take a look if you like - malvineous@shikadi.net -- [[User:Malvineous|Malvineous]] 03:57, 6 May 2012 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Merge ==&lt;br /&gt;
&lt;br /&gt;
Is there a way to tag two pages such that it is clear that they should be merged?&lt;br /&gt;
For example, [[Crystal Caves Tileset Format]] describes the same format as [[Duke 1 Tileset Graphics]].[[User:Frenkel|Frenkel]] ([[User talk:Frenkel|talk]]) 21:00, 15 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
: You can mention it on the talk page for one of the articles.  Any suggestions as to what we should call the merged page? -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 03:09, 20 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Dark Ages is the first game that got released that uses this format, so &#039;&#039;Dark Ages Tileset Format&#039;&#039; could be the name, like all those formats that are named after Commander Keen 1-3.&lt;br /&gt;
::Or we name it after Duke Nukem 1, because that game is probably more popular than Dark Ages, Crystal Caves and Secret Agent, like [[Commander Keen 1-3 Level format]], although Slordax used it before Commander Keen 1-3 did.[[User:Frenkel|Frenkel]] ([[User talk:Frenkel|talk]]) 19:13, 20 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: Yes I was thinking along the same lines, naming it after the first game that used the format.  But then the release date doesn&#039;t necessarily indicate which game &amp;quot;invented&amp;quot; the format, if one game took longer to develop and was released late.  I was wondering whether there is a common thread amongst all these games, such as the same programmer or company we could use instead.  In many ways I would prefer a name like &amp;quot;Replogle tileset format&amp;quot; or &amp;quot;Apogee EGA tileset format&amp;quot;.  What do you think? -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 23:36, 20 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::: I&#039;ve read the [http://www.3drealms.com/news/2006/04/the_apogee_legacy_15.html | Apogee Legacy interview with Peder Jungck] again today. He wrote the ProGraphx Toolbox.&lt;br /&gt;
:::: DN1.EXE contains the string &#039;&#039;Version 1.0 EGA/VGAProGraphx EGA/VGA Toolbox&#039;&#039;,&lt;br /&gt;
:::: CC1.EXE contains the string &#039;&#039;Version 1.5 320x200 PAN EGA/VGAProGraphx EGA/VGA Toolbox&#039;&#039;,&lt;br /&gt;
:::: SAM1.EXE contains the string &#039;&#039;ProGraphx EGA/VGA Toolbox Version 2.0 320x200 EGA/VGA Copyright 1991 by Peder Jungck&#039;&#039; and&lt;br /&gt;
:::: DA3.EXE contains the string &#039;&#039;Version 1.0 EGA/VGAProGraphx EGA/VGA Toolbox&#039;&#039; (DA1.EXE and DA2.exe contain gibberish).&lt;br /&gt;
:::: So I would suggest &#039;&#039;ProGraphx Toolbox tileset format&#039;&#039;. Peder also wrote a book about the toolbox called &#039;&#039;Graphics Programming &amp;amp; Animation: Ultra-Fast Assembly Routines for EGA/VGA Graphics Animation&#039;&#039;. Maybe that book has a better name for the file format. [[User:Frenkel|Frenkel]] ([[User talk:Frenkel|talk]]) 11:03, 21 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::: So we know of three different versions of the ProGraphx Toolbox. Dark Ages and Duke Nukem 1 use version 1.0. Each tileset is 8064 bytes long and is in a separate file. Crystal Caves uses version 1.5 and each tileset is 8003 bytes long, but they are all in the same file. Secret Agent uses version 2.0 Each tileset is again 8064 bytes long, they are all in the same file and the file is encrypted. [[User:Frenkel|Frenkel]] ([[User talk:Frenkel|talk]]) 17:00, 28 July 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::::: Thanks for figuring all that out.  I&#039;ve merged the pages and changed the name to [[ProGraphx Toolbox tileset format]] as suggested.  Please feel free to correct anything I have missed. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 02:40, 4 August 2013 (GMT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines for proper Wiki Editing ==&lt;br /&gt;
Dear Malvineous! Could you post the guidelines (or guide) for proper editing of the Wiki? [[User:The coder|The coder]] ([[User talk:The coder|talk]])&lt;br /&gt;
: Hmm, there isn&#039;t really one, it&#039;s more about finding a similar page and matching the style found there!  Copy and paste works well :-)  There is [[ModdingWiki:Contributing]] but it&#039;s not very detailed. (BTW please put &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; at the end of your messages, when you preview the page you will see this gets replaced with your name and the date automatically.) -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 21:59, 12 December 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== VGFM Music Format ==&lt;br /&gt;
&lt;br /&gt;
Hello, Malvineous!&lt;br /&gt;
&lt;br /&gt;
I accidentally found that [[VGFM Music Format]] is absolutely similar to the [http://www.vgmpf.com/Wiki/index.php?title=MUS_(AdLib) MUS (AdLib)] format which I finished researching yesterday.&lt;br /&gt;
&lt;br /&gt;
And [[VGFM Instrument Format]] is similar to [http://www.vgmpf.com/Wiki/index.php?title=SND_(AdLib) SND (AdLib)].&lt;br /&gt;
&lt;br /&gt;
These formats were developed by Ad Lib Inc, I found the sources and documentation in the Ad Lib developer&#039;s manual downloaded from old BBS board site :)  And these formats are used not only in [[Vinyl Goddess From Mars]] game.&lt;br /&gt;
&lt;br /&gt;
--[[User:Binarymaster|Binarymaster]] ([[User talk:Binarymaster|talk]]) 02:05, 22 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Oh wow, what an interesting discovery!!  Do you have any links to the official documentation?  I&#039;d really like to see what else they have to say about the format.  And yes, we should definitely rename the articles here.  What do you think they should be called?  &amp;quot;Ad Lib Music Format&amp;quot; is probably a bit generic given they have a few, like .ROL... -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 09:45, 22 January 2015 (UTC)&lt;br /&gt;
:: Here it is: [http://files.mpoli.fi/software/programm/general/adlip.zip adlip.zip] - binaries and source code, probably from Ad Lib Programmer&#039;s Manual. MUS headers are described in CONVERT.C and CONVERT.H files. Fun fact that they also developed another similar format based on MIDI - [http://www.vgmpf.com/Wiki/index.php?title=MDI MDI]. It has similar musical features but stores all data in one file in MIDI format.&lt;br /&gt;
:: Well, I have no idea how to name it better, I think &amp;quot;Ad Lib Music Format&amp;quot; should be suitable for it :) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 10:30, 22 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Many thanks!!  I&#039;ve updated the article pages with the info I could gain from the source code.  There are still a few unresolved issues (like what exactly the default percussion pitch is) but it has certainly answered a number of questions.  I called it &amp;quot;AdLib MIDI Format&amp;quot; because that&#039;s the name they use in one place in the source code, although it&#039;s not a very descriptive title!  Thanks again for letting me know about this excellent find :-) -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 12:48, 24 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: That&#039;s good! I think maybe this format should be named as &amp;quot;AdLib MIDI Format v1.0&amp;quot;, because there is also an improved version of it, probably v2.0 - [http://www.vgmpf.com/Wiki/index.php?title=MDI MDI] (I made a typo in previous posted link), it uses a single file in MIDI format.&lt;br /&gt;
:::: And about [[AdLib Timbre Bank Format]] article - BNK format originally was created in the 1987 with the first release of the [http://www.vgmpf.com/Wiki/index.php?title=AdLib_Visual_Composer AdLib Visual Composer], so actually Ad Lib Inc released its formats in this order:&lt;br /&gt;
:::: &#039;&#039;&#039;1)&#039;&#039;&#039; ROL &amp;amp; BNK (1987, with AdLib Visual Composer)&lt;br /&gt;
:::: &#039;&#039;&#039;2)&#039;&#039;&#039; MUS &amp;amp; SND/TIM (1988, with player and converter)&lt;br /&gt;
:::: &#039;&#039;&#039;3)&#039;&#039;&#039; MDI (1989, also with player and converter)&lt;br /&gt;
:::: Information about third format was placed [http://cd.textfiles.com/soundsensations/MISCPROG/AD-PROG/ here], though the link is not working now.&lt;br /&gt;
:::: --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 13:08, 24 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Oh wow that&#039;s interesting too.  I think the MUS/SND/TIM format should stay as &amp;quot;AdLib MIDI Format&amp;quot; with no version number, because that file format does have version fields so it&#039;s possible to have v1.0, v2.3, etc. within that format.  The MDI article you linked to actually looks like conventional MIDI with some extra events for setting OPL instruments, so I think this belongs as one of the many backwards-compatible extensions of the [[MID Format]].&lt;br /&gt;
&lt;br /&gt;
::::: With the instrument bank formats that&#039;s really unusual if BNK came first!  It seems very odd for AdLib to produce the SND/TIM format if they already had the more efficient BNK format available.  I was going from the dates in the text files from the programmer&#039;s guide you kindly posted, and bkformat.txt says in Jan 1989 they are in the process of converting their software to use BNK.  Can you confirm there was BNK software earlier than this?  I&#039;m just thinking that Visual Composer may have come out in 1987, but maybe it didn&#039;t get BNK support added until later? -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 01:30, 25 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::: Well, I&#039;m sure that first version of Visual Composer was released with AdLib music card, but I don&#039;t know exactly about BNK support. It&#039;s really strange that Ad Lib downgraded the format (BNK is better in structure), but the known formats has converters which converts BNK to X format, but not from X to BNK - this makes sense that BNK was the first format. Also Visual Composer doesn&#039;t support other bank formats, only BNK.&lt;br /&gt;
:::::: BNK creation date 1987 was contributed by [http://www.vgmpf.com/Wiki/index.php?title=User:TheAlmightyGuru Dean Tersigni], I&#039;ll ask him about it.&lt;br /&gt;
&lt;br /&gt;
:::::: Update: I also read information from bkformat.txt, and it seems you&#039;re right :)&lt;br /&gt;
:::::: So actually it was:&lt;br /&gt;
:::::: &#039;&#039;&#039;1)&#039;&#039;&#039; ROL &amp;amp; INS (1987, with AdLib Visual Composer v1.0)&lt;br /&gt;
:::::: &#039;&#039;&#039;2)&#039;&#039;&#039; MUS &amp;amp; SND/TIM (1988, with player and converter)&lt;br /&gt;
:::::: &#039;&#039;&#039;3)&#039;&#039;&#039; BNK (1989, with AdLib Visual Composer v1.5)&lt;br /&gt;
:::::: &#039;&#039;&#039;4)&#039;&#039;&#039; MDI (1989, also with player and converter)&lt;br /&gt;
:::::: Wow, that feel when restored original order of events! :D --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 01:51, 25 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::::: That seems to make the most logical sense - there&#039;s a clear improvement with each new format.  I&#039;m glad you agree!  Note that when you say there&#039;s no conversion from &amp;quot;X to BNK&amp;quot; there is BANKMNG.EXE that comes with the programmer&#039;s manual which converts .ins files to .bnk. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 04:09, 25 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::::: True. I forgot about it :) Thanks! --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 12:02, 25 January 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== email ==&lt;br /&gt;
&lt;br /&gt;
Hello! Can&#039;t send you e-mail. Got this:&lt;br /&gt;
&lt;br /&gt;
 This message was created automatically by mail delivery software.&lt;br /&gt;
 A message that you sent could not be delivered to one or more of its&lt;br /&gt;
 recipients. This is a permanent error. The following address(es) failed:&lt;br /&gt;
 malvineous@shikadi.net&lt;br /&gt;
 host mail.shikadi.net [52.11.27.19]&lt;br /&gt;
 SMTP error from remote mail server after RCPT TO:&amp;lt;malvineous@shikadi.net&amp;gt;:&lt;br /&gt;
 550 invalid recipient&lt;br /&gt;
&lt;br /&gt;
[[User:CTPAX-X Team|CTPAX-X Team]] ([[User talk:CTPAX-X Team|talk]]) 09:12, 11 March 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Whoops, moved my e-mail service to AWS and missed a step for that address!  Please resend, should work now :-)  Thanks for letting me know! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 11:34, 11 March 2017 (UTC)&lt;br /&gt;
::Yes, e-mail goes through this time. Hope you receive it. [[User:CTPAX-X Team|CTPAX-X Team]] ([[User talk:CTPAX-X Team|talk]]) 15:41, 11 March 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Duplicate RLE page ==&lt;br /&gt;
&lt;br /&gt;
After some edits to the [[RLE Compression]] page, I noticed that this was not the page linked from the [[:Category:Compression algorithms]] page. It seems there are in fact two of them; one with an uppercase &#039;c&#039;, and [[RLE compression|one with a lowercase &#039;c&#039;]]. The latter seems to be the better-written one, but since the LZW page was apparently moved from &amp;quot;LZW compression&amp;quot; to &amp;quot;LZW Compression&amp;quot;, I suggest the final name of the RLE page should likewise be the uppercase-&#039;c&#039; one.&lt;br /&gt;
&lt;br /&gt;
I have merged anything I deemed useful into the lowercase-&#039;c&#039; version. Could you make sure the uppercase-&#039;c&#039; duplicate is removed, and the other one is moved to its name?&lt;br /&gt;
&lt;br /&gt;
-[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 16:48, 4 October 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Done, many thanks for the clean up! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 10:38, 5 October 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Account rename? ==&lt;br /&gt;
Hi Malvineous,&lt;br /&gt;
&lt;br /&gt;
I am wondering if it&#039;s much of a hassle to rename accounts on this wiki.  I&#039;d kind of like to have my account use the same handle I&#039;m using just about everywhere else (ETTiNGRiNDER).  Don&#039;t sweat it too much if this is onerous to do, though.&lt;br /&gt;
&lt;br /&gt;
Thanks! - [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 20:42, 29 January 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I&#039;m not sure how it can be done.  If you can find out a quick way to rename a MediaWiki account then let me know!  At any rate all your comments would still be signed with your old name however. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 10:15, 4 February 2018 (UTC)&lt;br /&gt;
: P.S. the e-mail address in your account is bouncing -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 10:17, 4 February 2018 (UTC)&lt;br /&gt;
:: Ah, right, it was still set to that old e-mail.  Hushmail nuked that address on me years ago, I&#039;ve changed it to one that&#039;s current.  As for the renaming, I don&#039;t really know anything about wiki administration, though a quick search suggests that there&#039;s this thing: https://www.mediawiki.org/wiki/Extension:Renameuser&lt;br /&gt;
::If that&#039;s a bit much then no biggie. -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 14:43, 5 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Removal request ==&lt;br /&gt;
&lt;br /&gt;
It seems I made a page that was unnecessary; the [[Westwood Palette]] I documented turned out to be a known common format (6-bit RGB) already covered in the standard [[VGA Palette]] page. I have changed all links to link to the older page, but I don&#039;t think I have the user rights required to delete the Westwood Palette page. Can you take care of it? -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 14:56, 6 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Done!  I made you an admin too so you should have delete access now.  Thanks for your contributions! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 00:03, 7 February 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Hi-Octane ==&lt;br /&gt;
&lt;br /&gt;
Hi! &lt;br /&gt;
&lt;br /&gt;
I&#039;ve figured out the MUSIC.DAT container and I was wondering if you could shed out some light on what these song formats are, now that we know how to unpack it ?&lt;br /&gt;
&lt;br /&gt;
Thanks !!!&lt;br /&gt;
&lt;br /&gt;
: Yep, they&#039;re listed on the [[Hi Octane]] page, in the file format box. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 10:57, 14 March 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ReCaptcha v1 problem ==&lt;br /&gt;
&lt;br /&gt;
It seems I can no longer add links in articles; the ReCaptcha test added when new links are detected uses ReCaptcha v1, which gives a warning that &amp;quot;reCAPTCHA 1 IS SHUTDOWN&amp;quot;. It does not allow the check to pass, so the page can never be submitted.&lt;br /&gt;
&lt;br /&gt;
The FAQ on the ReCaptcha docs (can&#039;t link to them, obviously) says that &amp;quot;&#039;&#039;&#039;Any calls to the v1 API will not work after March 31, 2018&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
-[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 09:26, 28 May 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Bio Menace patches ==&lt;br /&gt;
&lt;br /&gt;
Hey, I&#039;ll have Bio Menace 1 patches for the freeware release. Most of them are status window-related, but there are others as well.&lt;br /&gt;
Question: Could you create several other sections in All Bio Menace patches cathegory? Because I cannot submit them anywhere right now. Thanks! --[[User:Szemigi|Szemigi]] ([[User talk:Szemigi|talk]]) 00:57, 25 July 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
: The status window patches should go into [[:Category:Bio Menace interface patches]].  The others *should* fit into existing categories, but if you&#039;re not sure let me know! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 05:23, 29 July 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I&#039;ll need several categories from you as I checked there&#039;ll be other BM patch stuff as well. So I need the following categories: status screen, hostage, help menu, main menu, B800 screen (I even built the BIN file and I made patch for that!). And I&#039;ll even submit these for BM2 and 3. Please, create these. Oh, and I&#039;ll surely submit! --[[User:Szemigi|Szemigi]] ([[User talk:Szemigi|talk]]) 01:36, 1 August 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Status screen, hostage, help menu, main menu and B800 screen should all go into [[:Category:Bio Menace interface patches]] as they are all modifying the user interface.  I would like to keep the number of patch categories fairly small otherwise it will get a little out of control! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 01:48, 17 October 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Bio Menace patches on PCKF? ==&lt;br /&gt;
&lt;br /&gt;
Hey, how can I post my Bio Menace 1-3 patches on PCKF or keenmodding.org? I very want them to submit one of the forums!--[[User:Szemigi|Szemigi]] ([[User talk:Szemigi|talk]]) 23:11, 4 August 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wombat File Reader updates! ==&lt;br /&gt;
&lt;br /&gt;
I think [[Wombat]]&#039;s title should be updated to show its full name, which now is &amp;quot;Wombat File Reader&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Also the supported games list has to be updated accordingly to the list on https://szevvy.com/ (the author&#039;s website, which was listed as &amp;quot;dead&amp;quot; in Wombat&#039;s info while the site is up and running again).&lt;br /&gt;
&lt;br /&gt;
It&#039;s also not a dead program at all, since its latest version is very recent (11 October 2018), and it&#039;d be a shame to have such old and deprecated information on this wiki of such a useful and powerful tool.&lt;br /&gt;
&lt;br /&gt;
-[[User:Elia1995|Elìa1995]] ([[User_talk:Elia1995|talk]]) 07:38, 15 October 2018‎ (UTC)&lt;br /&gt;
&lt;br /&gt;
: It&#039;s only just been updated recently after many years of no releases.  It&#039;s a bit unfair to say the wiki has old information when it&#039;s only a couple of weeks out of date, and it relies on people such as yourself to keep things up to date!  Please go ahead and correct as needed so we can keep the information current.  We are all doing this in our spare time so we need lots of help to keep things up to date.  Also, the page you link to lists it as &amp;quot;Wombat File Tools&amp;quot; rather than &amp;quot;Wombat File Reader&amp;quot;.  Everyone in the community refers to it as just &amp;quot;Wombat&amp;quot; however.  -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 23:27, 16 October 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I&#039;ve only just gotten my account here approved, and only just made new builds of Wombat (actually a complete rewrite) after (as Malvineous said) many many years of no releases.  It warms my heart to see people notice :) [[User:Szevvy|Szevvy]] ([[User talk:Szevvy|talk]]) 01:44, 17 October 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: I just noticed the 1.0.4 update, I&#039;ll work on updating the supported games list on the page according to the one on Szevvy&#039;s site; by the way, thanks for telling me how to &amp;quot;sign&amp;quot; these posts, I had no idea. [[User:Elia1995|Elia1995]] ([[User talk:Elia1995|talk]]) 08:08, 18 October 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== e-mail (again) ==&lt;br /&gt;
&lt;br /&gt;
Hello! Sent you e-mail 2019.02.19 about Prehistorik without any answer. Yesterday another e-mail was sent and since 24+ hours passed was forced to write here. Is there something wrong again with your e-mail account or spam filters (for mail.ru)? Thanks! [[User:CTPAX-X Team|CTPAX-X Team]] ([[User talk:CTPAX-X Team|talk]]) 15:10, 1 March 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Content license ==&lt;br /&gt;
&lt;br /&gt;
Is the content of this wiki governed by a specific license? I&#039;d like to contribute information on &amp;quot;Nomad&amp;quot; file formats that I reverse engineered, which I&#039;d previously published on my personal web site under [http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons SA 4.0]. This wiki certainly seems to be in the spirit of the Creative Commons licensing structure so I&#039;m guessing there would be no real conflict, but I just wanted to get some additional information on this. --[[User:Cmb|Cmb]] ([[User talk:Cmb|talk]]) 13:32, 6 May 2020 (UTC)&lt;br /&gt;
:Personally, I&#039;ve just [[RLE Compression#Source_code|added the license under which code was released]] myself. Then again I release everything under [[wp:WTFPL|WTFPL]], because I honestly don&#039;t mind people using anything I write for research purposes in any way they please, so license compatibility is a bit of a non-issue for me. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 16:04, 6 May 2020 (UTC)&lt;br /&gt;
:That said, though, given the current online climate, I do agree this is an issue that should be clarified here on the wiki. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 16:06, 6 May 2020 (UTC)&lt;br /&gt;
:: There is a licence specified somewhere but the short answer is anything you put here is basically in the public domain - because if someone steals it we don&#039;t have the resources to chase them, so if it&#039;s that valuable to you that you can&#039;t handle someone copying it without giving you credit, then don&#039;t post it here.  Having said that for &amp;quot;nice&amp;quot; users many of the pages ask for a mention if you find the content useful, but this is by no means a requirement.  I suppose legally speaking you&#039;ll have to dual-licence your Creative Commons content because some CC versions have additional restrictions, like you can&#039;t copy the content without giving credit.  The [https://creativecommons.org/choose/zero/ CC0 licence] pretty much covers it.  Putting a specific licence on code is fine (although no licence at all would be best so it inherits the wiki&#039;s general content licence), noting that any licence enforcement will be on you, but the content itself is always going to be CC0/public domain. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 05:48, 10 June 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiple Platforms ==&lt;br /&gt;
&lt;br /&gt;
Should anything special be done for games that are both DOS and Win95, like [[Warcraft II]] and [[Command &amp;amp; Conquer]]? As it is, the template only supports one &#039;Platform&#039;. I don&#039;t know enough about templates to make it accept lists, though a workaround would be to add the Win95 category to such games manually. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) &lt;br /&gt;
20:29, 17 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
: I&#039;m open to suggestions, but the purpose of the platform category is less about documenting all platforms a game runs on, and is more about identifying which games on the wiki don&#039;t work under DOS, since DOS is the wiki&#039;s main focus.  So think of it more as the &amp;quot;minimum&amp;quot; platform needed - i.e. a DOS game can also run inside Win3.x and Win95, a Win3.x game can also run under Win9x but not DOS, and a Win9x game can&#039;t run under DOS or Win3.x at all.  So for DOS/Windows games DOS would be the oldest platform needed to play the game, even if there is a native Windows version. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 00:26, 18 April 2022 (GMT)&lt;br /&gt;
::&#039;Minimum platform&#039; isn&#039;t really true anymore when going to the reality of getting stuff running on modern machines, though; 16-bit windows programs don&#039;t work on modern systems at all, and DOSBox can&#039;t emulate them. They&#039;re a pretty annoying in-between class. C&amp;amp;C95 has issues like that; while the game itself is 32-bit, its installer is a 16-bit Windows program. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 10:33, 18 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: That&#039;s true, but I wasn&#039;t thinking so much about modern systems.  If you&#039;re building a VM or setting up an old PC, knowing which games will work without Windows, or will work if you only install Win 3.1, might be useful.  I did think you could install Windows 3.1 in DOSBox though to run 16-bit apps.  At any rate, I more had in my mind which games required OS support for NE executables in order to play, and which ones required PE support. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 11:48, 18 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::: Well, one of the specific cases I had in mind in this was the fact that the Win95 version of Command &amp;amp; Conquer uses PCX format for its title screen, while the DOS version doesn&#039;t. And while the basic modding of terrain and game objects is identical in both versions, all modding related to the game UI is different because of the different resolution. So, if more detailed information on that front would be added, it seems logical to also add the Win95 category somehow. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 15:17, 25 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::: In that case it sounds almost like a different game that happens to share a lot of the same content, so I&#039;d be more inclined to list it as a separate game, e.g. on a page called &amp;quot;Command &amp;amp; Conquer (Windows version)&amp;quot;, and just put a note saying the file formats are the same as the DOS version with the following exceptions, then list the Windows-specific file formats. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 15:42, 25 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::::: No, it&#039;s really just PCX, nothing else is new in terms of file formats. The UI is in the same sprites format used for the in-game sprites. So like 95% still the same. But yea, I guess if I do ever get around to writing a more in-depth modding guide, I could make a different page for the Win95 version. Most of the modding difference between the two games is just that the Win95 exe file has been researched a lot deeper, to the point that (with the released source code) pretty much anything in it can be changed nowadays. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 16:10, 25 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
==Empty Pages==&lt;br /&gt;
Not sure if you already noticed it, but user [[User:Parlortricks]] is creating a bunch of empty pages, I&#039;m assuming to be filled at a later date. --[[User:TheAlmightyGuru|TheAlmightyGuru]] ([[User talk:TheAlmightyGuru|talk]])&lt;br /&gt;
: I hadn&#039;t noticed, thanks for the heads up!  I updated [[ModdingWiki:Contributing]] to include some more points about when to create pages. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 04:31, 10 August 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
== File format category for copy-protection data. ==&lt;br /&gt;
&lt;br /&gt;
I can&#039;t find any suitable examples with a template that suits a file containing only the copy protection data.   &lt;br /&gt;
It&#039;s not text, but there don&#039;t seem to be any generic binary format templates. [[User:Carbon14|Carbon14]] ([[User talk:Carbon14|talk]]) 06:44, 17 April 2023 (GMT)&lt;br /&gt;
&lt;br /&gt;
: I&#039;m not really familiar with what copy protection data would contain.  What generic items would you think apply to this sort of data?  I&#039;m not so keen on adding a generic binary format category, it would be nice to have a specific one where possible. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 09:17, 17 April 2023 (GMT)&lt;br /&gt;
:: In this case, the file contains 750 passwords. They were printed on a piece of card in with the original game (in pale blue to thwart photocopying) and the game asks you for one of the passwords at random. I&#039;ll make a file without a specific category for now.[[User:Carbon14|Carbon14]] ([[User talk:Carbon14|talk]]) 12:31, 17 April 2023 (GMT)&lt;br /&gt;
::: If they&#039;re passwords, doesn&#039;t that make it a type of strings file? You said it&#039;s not &amp;quot;plain text&amp;quot;, but can it be converted/decoded to plain text? I&#039;ve dealt with encrypted text formats before; see [[Cover Girl Strip Poker Text]] -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 16:20, 17 April 2023 (GMT)&lt;br /&gt;
: There are lots of file formats of unspecified types. See stuff like [[Westwood Fading Table]]; it&#039;s basically a file storing special colour effects. I&#039;m not sure there&#039;s a point in making a template for every specific type like that; there&#039;s so many odd cases out there. -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 10:17, 17 April 2023 (GMT)&lt;br /&gt;
:: Thanks.  I wasn&#039;t necessarily looking for a template. But I couldn&#039;t find an example of a file that wasn&#039;t already in an incorrect template. I&#039;ll base my page on the example you suggested.[[User:Carbon14|Carbon14]] ([[User talk:Carbon14|talk]]) 12:31, 17 April 2023 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Wiki policy questions ==&lt;br /&gt;
&lt;br /&gt;
Hi, a couple questions I&#039;ve had lingering regarding how things should be done on the wiki / if they should be done at all.&lt;br /&gt;
* What should we do about game title disambiguation?  I think in cases like Warlords (SSG) vs. Warlords (Atari) where only one of the games was released as a DOS game, it&#039;s probably fine to just have a page for the one that&#039;s relevant and at most maybe have a note on its main page that it&#039;s not related to the other game, but I&#039;ve noticed that &amp;quot;Dungeon of Death&amp;quot; is a title that has the honor(?) of being used for two different games &#039;&#039;on DOS&#039;&#039;.  Is there a particular disambiguation format we should use when adding one of those?&lt;br /&gt;
* Is there any specific policy on games/mods with offensive content?  I know we have some strip poker type games referenced on the wiki, but one thing I&#039;m specifically thinking of is I know there was an old hack of the DOS version of Gauntlet 2 that&#039;s been floating around since the 90s, but is a fairly puerile affair that changes text/graphics to sexual and scatological references.  It also has a vulgar word in the mod title itself.  It might be useful to look at how it was done since it&#039;s clearly evidence that changing the text/graphics was attainable even back then, but do we want to document things like that, or is there a &amp;quot;too dirty&amp;quot; line where we should try to keep the wiki clean of references to certain games/mods due to title or content?&lt;br /&gt;
Thanks.-- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 18:35, 3 October 2023 (GMT)&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Chasm:_The_Rift&amp;diff=11338</id>
		<title>Talk:Chasm: The Rift</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Chasm:_The_Rift&amp;diff=11338"/>
		<updated>2023-10-03T16:41:32Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Apparently there are re-release versions that might differ from the DOS spec?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mod compatibility (Re-releases vs. DOS)? ==&lt;br /&gt;
I&#039;ve noticed on ModDB that there are some mods that specify a particular re-release target that the file is intended for.  Could anyone who has access to multiple versions take a look and fill in whether this is just a tested version/convenience of packaging thing or if there&#039;s any broken forwards/backwards compatibility between the modding specs for the DOS version and the re-releases (or even between different re-releases)? -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 16:41, 3 October 2023 (GMT)&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hammer_of_the_Gods_map&amp;diff=11327</id>
		<title>Hammer of the Gods map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hammer_of_the_Gods_map&amp;diff=11327"/>
		<updated>2023-09-23T19:17:38Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Posting current format notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
Used by [[Hammer of the Gods]] to store map layouts.  This includes both WORLD.MAP (the predefined layout) and also an embedded section in saved games.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Terrain layout ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || [[INT16LE]] || X dimension (90) {{TODO|Changeable or is 90x60 always assumed?}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x000A || [[INT16LE]] || Y dimension (60) {{TODO|Changeable or is 90x60 always assumed?}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x000C || [[INT8]] array || Column-major, nibble-based tile layout (2 tiles per byte).&lt;br /&gt;
|}&lt;br /&gt;
Values up to 9 appear to be valid for each half-byte tile. {{TODO|What happens if higher values than these are inserted?}}&lt;br /&gt;
* 0 - grass&lt;br /&gt;
* 1 - water&lt;br /&gt;
* 2 - forest&lt;br /&gt;
* 3 - tundra&lt;br /&gt;
* 4 - hill&lt;br /&gt;
* 5 - mountain&lt;br /&gt;
* 6 - big river&lt;br /&gt;
* 7 - small river&lt;br /&gt;
* 8 - waterfall or rapids (does not appear in WORLD.MAP but can appear in generated maps)&lt;br /&gt;
* 9 - river mouth&lt;br /&gt;
The graphical variations on these tile types appear to be chosen by the program at run-time.&lt;br /&gt;
&lt;br /&gt;
=== Cities, Monasteries, Dungeons ===&lt;br /&gt;
{{TODO|These appear after the tile layout and the names can be seen in ASCII.  The other values and exact layout have not yet been explored.}}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hammer_of_the_Gods&amp;diff=11326</id>
		<title>Hammer of the Gods</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hammer_of_the_Gods&amp;diff=11326"/>
		<updated>2023-09-23T18:44:06Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Add a skeleton for formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hammer of the Gods&#039;&#039;&#039; is a turn-based strategy game themed on the viking era and Norse myth, offering a historical map of northern Europe (as well as a random map generation option), but also including fantasy elements such as dwarves, elves, trolls, etc.  It is, along with [[King&#039;s Bounty]], a predecessor to the gameplay style featured in [[Heroes of Might &amp;amp; Magic]].&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
| Name = WORLD.MAP&lt;br /&gt;
| Format = [[Hammer of the Gods map]]&lt;br /&gt;
| KnownFormat = Partial&lt;br /&gt;
| Desc = The pre-defined northern Europe map.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
| Name = *.GAM&lt;br /&gt;
| Format = [[Hammer of the Gods saved game]]&lt;br /&gt;
| KnownFormat = Partial&lt;br /&gt;
| Desc = Saved games.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
| Name = *.PCX&lt;br /&gt;
| Format = [[PCX Format]]&lt;br /&gt;
| KnownFormat = Yes&lt;br /&gt;
| Desc = PCX graphics&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer&amp;diff=11325</id>
		<title>Mageslayer</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer&amp;diff=11325"/>
		<updated>2023-09-23T16:54:56Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Link archive of an old site with some modding-relevant files available.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
 | Demo = No&lt;br /&gt;
 | Platform = Windows 95&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Mageslayer]] is a top-down fantasy action game for Windows 9x.  It is built on Raven Software&#039;s Vampire Engine and is aesthetically similar to [[Heretic]] and [[Hexen]], though it does not take place in the same universe as them.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.vpk&lt;br /&gt;
 | Format = [[Vampire Engine VPK]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Main data archive&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://web.archive.org/web/19980502220255/http://mageslayer.telefragged.com:80/index.shtml MageSlayin&#039; (Archived on Wayback Machine)] - Some editing utilities and information can be found here.&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Overhead]]&lt;br /&gt;
[[Category:Raven Software]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Mysterioso&amp;diff=11324</id>
		<title>User:Mysterioso</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Mysterioso&amp;diff=11324"/>
		<updated>2023-09-23T16:19:21Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Cleanup and reorganization of interest list; prepwork to add some random notes from the past couple years&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AKA Eye of Antares (on REwiki, defunct) / ETTiNGRiNDER (most places)&lt;br /&gt;
== Tools of the trade ==&lt;br /&gt;
Some stuff I use.&lt;br /&gt;
* [https://sourceforge.net/projects/hexplorer/ ICY Hexplorer] - A really good hex editor for Windows, with wide compatibility with OS versions from 9x through to modern ones and with WINE on *NIX-style systems.  Includes handy features such as disassembly of x86 opcodes and a pixel view mode that is sometimes useful for helping to locate graphical data.&lt;br /&gt;
&lt;br /&gt;
== List of games/formats of interest ==&lt;br /&gt;
&lt;br /&gt;
=== Projects - Current areas of focus ===&lt;br /&gt;
* [[Abuse]] - Working on better documentation for formats / modding&lt;br /&gt;
** [[Dark Angael]] - Based on the [[Abuse]] engine, probably same or similar formats. (Windows 9x)&lt;br /&gt;
* [[Heretic]] - Particularly HHE / EXE patching&lt;br /&gt;
* [[Hexen]] - Deeper clarification of various modding aspects, EXE patching&lt;br /&gt;
&lt;br /&gt;
=== Projects - Random dabbling (may or may not dig deeper) ===&lt;br /&gt;
* [[Chasm: The Rift]] - An unofficial engine remake exists which might be a good place to look for further format information; the author probably understands the inner workings better than I do&lt;br /&gt;
* [[Conquered Kingdoms]] - Some graphics in Deluxe Paint format.&lt;br /&gt;
* [[Dark Legions]] - Still need to finish recovering/re-checking info I put on REwiki some years ago; there are also aspects that remain to be discovered.  Map format is mostly known, graphics formats are somewhat known&lt;br /&gt;
** [[Fantasy Empires]] - Appears to share some similarities; a cursory look suggests that it probably uses an older iteration of the Dark Legions DAT format&lt;br /&gt;
* [[Dungeon of Death]] (Kapps) - Looks to use renamed/packaged PCX files for much of the graphics.  (Check for disambiguation on the title before adding)&lt;br /&gt;
* [[Gandalf]] - Package format looks to be simple and uncompressed, likewise the levels.&lt;br /&gt;
* [[Hammer of the Gods]] - Map format partially decoded (terrain but not cities/dungeons).  Some graphics probably an easy shot too.&lt;br /&gt;
* [[Star Goose]] - Basics of graphics and level format are now known.  EXE patching is needed for full level editing possibility.&lt;br /&gt;
* [[Stalker]] (Path of Fire, MM Software) - Package file looks to be simple and uncompressed, PCX and MIDI files inside.&lt;br /&gt;
* [[Warlords]] - Some graphics in Deluxe Paint format, map file looks to be uncompressed but unsure of some of its data.&lt;br /&gt;
* [[Disciples]] - official map editor exists (with some bugs/omissions), possible third-party graphics extractor.  I know a few map format tweaks to achieve things the map editor doesn&#039;t cover. (Windows 9x)&lt;br /&gt;
* [[Mageslayer]] - The games contain debug codes that would be useful to jump-start RE of the level format.  Some official and third party tools from the early years have also been found that should be further investigated.  (Windows 9x)&lt;br /&gt;
** [[Take No Prisoners]] - Same engine and largely same/similar formats it would appear. (Windows 9x)&lt;br /&gt;
&lt;br /&gt;
=== Projects - Older / retired / done ===&lt;br /&gt;
* [[Witchaven]] - Most formats are understood, sound system and save game format need work&lt;br /&gt;
* [[Witchaven II]] - Most formats are understood, sound system and save game format need work&lt;br /&gt;
&lt;br /&gt;
=== Wish list (games with known info/mods missing from this wiki) ===&lt;br /&gt;
* [[Blake Stone]] - Extant mods and utilities not yet documented on this wiki&lt;br /&gt;
* [[Corridor 7]] - Extant utilities not yet documented on this wiki&lt;br /&gt;
* [[Dungeon Master]] - Most mods seem to use an unofficial Windows port but there might be some DOS format info / tools out there - check this&lt;br /&gt;
* [[Master of Magic]] - Insecticide mod (bugfix), possibly some other DOS mods remain available.&lt;br /&gt;
* [[Warcraft]] - Custom scenarios were made by hacking savegame files, using a Windows 16-bit utility by BJ Pollard.  A few other utilities like Stratlas and WarDraft may also have viewing functionality.  Archive format may be shared with Warcraft II.  Shareware/Demo version may have used an older format.&lt;br /&gt;
* [[Warcraft II]] - file format docs exist, official map editor, some extant 3rd party tools&lt;br /&gt;
* [[El-Fish]] - There is some format documentation out there: [https://www.vidarholen.net/contents/elfish/]&lt;br /&gt;
&lt;br /&gt;
=== Wish list (games without known info) ===&lt;br /&gt;
* [[Alien Breed]]&lt;br /&gt;
* [[Alien Rampage]]&lt;br /&gt;
* [[Blackthorne]] (AKA Blackhawk in some versions)&lt;br /&gt;
* [[CyClones]] - Possibly same/similar engine to Shadowcaster?  There seems to be some knowledge on extracting images&lt;br /&gt;
* [[Demon Stalkers]] - Comes with some editing capability, no surviving mods?&lt;br /&gt;
* [[Gauntlet II]] - DOS port is competent, albeit with only PC speaker sound.  A graphics/text mod (with questionable content) also exists.&lt;br /&gt;
* [[Gods]] - A Java remake exists with level editing capacity but no modding for the original game that I am aware of&lt;br /&gt;
* [[Iron Blood]]&lt;br /&gt;
* [[Shadowcaster]] - A few things here and there are known, but more is needed to do more than just rip the resources&lt;br /&gt;
* [[Thor&#039;s Hammer]]&lt;br /&gt;
* [[Dark Vengeance]] - Developer comments suggested that modding support was intended, but no specs/tools were released that I am aware of. (Windows 9x)&lt;br /&gt;
* [[Deathtrap Dungeon]] - Possibly already known how to extract graphics (Windows 9x)&lt;br /&gt;
* [[Fire Fight]] (Windows 9x)&lt;br /&gt;
* [[Get Medieval]] - official level editor exists (seems hard to use), no custom level releases that I&#039;m aware of (Windows 9x)&lt;br /&gt;
&lt;br /&gt;
=== Wish list (file formats) ===&lt;br /&gt;
* [[Human Machine Interfaces MIDI Format]] - Complete, detailed specs for various versions would be useful for [[Abuse]], [[Dark Legions]], [[Witchaven]], [[Witchaven II]] and many others not on my personal list.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Abuse/Modding_Tips&amp;diff=11323</id>
		<title>Abuse/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Abuse/Modding_Tips&amp;diff=11323"/>
		<updated>2023-09-23T15:37:20Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Satan Paint documentation has been found, so rather minor page mainly to link there for now.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Satan Paint ==&lt;br /&gt;
Although there is, as the name implies, some paint program functionality built into this utility, it&#039;s probably best to import graphics from another graphics program where possible and reserve Satan Paint only for compiling a [[SPEC Format|.SPE]] and setting special tile properties; painting seems a bit unstable.&lt;br /&gt;
&lt;br /&gt;
The program documentation can be found at the following site as &amp;quot;spaint-1.4.doc.gz&amp;quot;:&lt;br /&gt;
* http://ibiblio.org/pub/linux/apps/graphics/draw/!INDEX.short.html&lt;br /&gt;
There is also a Linux binary available here, but it is very old and bitrotted beyond usefulness to any reasonably modern distribution.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=SPEC_Format&amp;diff=11322</id>
		<title>SPEC Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=SPEC_Format&amp;diff=11322"/>
		<updated>2023-09-23T15:22:27Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Satan Paint documentation has been found and confirms there&amp;#039;s a method for setting collision polygons.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;SPEC format&#039;&#039;&#039; is used by [[Abuse]] to store levels, save games, and graphical data.  Level files can be edited using the built-in editor while Satan Paint can load and save graphics archives, as well as including handling for special tile properties like collision boundaries.&lt;br /&gt;
&lt;br /&gt;
{{TODO|SPEC files for PC DOS appear to be little endian.  Check if this is also the case for the Mac version or if they use native endianness.}}&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The header is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ASCIIZ]] || Format label, &amp;quot;SPEC1.0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || number of entries in the index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Next comes an array of index entries:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Type (see specs.hpp)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Length of file name (NB: not the length of the file itself)&lt;br /&gt;
|-&lt;br /&gt;
| [[ASCIIZ]] || File name string, of the length specified immediately prior&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || {{TODO|ceninan says &amp;quot;a flag of some sort; I don&#039;t think this was ever implemented, and probably had to do with linking files...?&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Entry size (0 is an allowed value, for &amp;quot;tag&amp;quot; entries that exist only for the entry name)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || {{TODO|absolute offset?}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The actual entries follow, with the handling for them usually, but not always, decided by the type value specified in the index.&lt;br /&gt;
&lt;br /&gt;
=== Entry type 2 - SPEC_PALETTE ===&lt;br /&gt;
&lt;br /&gt;
A fairly standard palette format, with the addition of being able to handle variable numbers of colors.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Number of colors&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An array of colors, according to the number above, follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Red component&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Green component&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || Blue component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 5 - SPEC_FORETILE ===&lt;br /&gt;
Foreground tiles - {{TODO|editor manual says a tile is (always?) 30x15, so varying sizes probably mean varying bounding polys.}}&lt;br /&gt;
For these entries, the name of the tile lump appears to be used as the editor&#039;s tile number.&lt;br /&gt;
It appears that Abuse allows tiles to have polygonal boundaries for collision, the exact format for these needs to be confirmed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] array || Pixels, as palette indices&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || {{TODO|&amp;quot;next&amp;quot;?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || {{TODO|ignored (unimplemented feature?)}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || {{TODO|should be count of boundary points?}}&lt;br /&gt;
|}&lt;br /&gt;
{{TODO|	? variable length boundary (array of int8 x,y coordinate pairs defining the solid space of the tile, e.g. a rectangle)&lt;br /&gt;
		this appears to draw a polygon from dot to dot so for a rectangle, five points are needed? (duplicate of the first to be last)&lt;br /&gt;
		is there a formal count? (i.e. is the prior 05 in the observed tiles part of this, rather than just &amp;quot;to end of file&amp;quot;?)}}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 6 - SPEC_BACKTILE ===&lt;br /&gt;
{{TODO|Are these always 60x30?}}  Name of the tile lump appears to be used as tile number.&lt;br /&gt;
&lt;br /&gt;
TENTATIVE:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] array || Pixels, as palette indices&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || {{TODO|&amp;quot;create_descriptor&amp;quot; maybe always 0 for backtiles}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 18 - SPEC_GRUE_FGMAP ===&lt;br /&gt;
Used in levels, {{TODO|probably for foreground layout? (lump name is probably important)}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] array of width*height || Tile values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 19 - SPEC_GRUE_BGMAP ===&lt;br /&gt;
Used in levels, {{TODO|probably for background layout? (lump name is probably important)}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Width&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || Height&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] array of width*height || Tile values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry type 20 - SPEC_DATA_ARRAY ===&lt;br /&gt;
{{TODO|This is sort of a &amp;quot;catchall&amp;quot; entry type, and the file name of the entry matters to its interpretation.  These are particularly frequently used in level files.}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
Some basic information on the container format was published by ceninan.  Further investigation into the data format specifications, based on both hex examination of the files and a reading of the released Abuse source code, is being added by [[User:Mysterioso|Mysterioso AKA ETTiNGRiNDER]].&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Catacomb&amp;diff=11321</id>
		<title>Catacomb</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Catacomb&amp;diff=11321"/>
		<updated>2023-09-23T15:17:09Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Catacomb 3-D is an ancestor of Wolf3D but Abyss is not.  The three Catacomb A* games were made by Softdisk after the fact with a different dev team and minimal/no input from id, and I believe came out slightly after Wolf3D as well.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Catacomb&#039;&#039;&#039; and [[Catacomb II]] are top-down Gauntlet-style shooters. They are two of [[:Category:id Software|id Software]]&#039;s earliest games. They are the direct ancestors of most First Person Shooters. They introduced strafing. &lt;br /&gt;
&lt;br /&gt;
Catacomb was distributed on the same Gamer&#039;s Edge disk as [[Dangerous Dave]].&lt;br /&gt;
&lt;br /&gt;
They are part of series of 6 games, in two trilogies:&lt;br /&gt;
* Catacomb I&lt;br /&gt;
* [[Catacomb II]]&lt;br /&gt;
* [[Catacomb 3-D]]&lt;br /&gt;
* [[Catacomb Abyss]]&lt;br /&gt;
* [[Catacomb Armageddon]]&lt;br /&gt;
* [[Catacomb Apocalypse]]&lt;br /&gt;
&lt;br /&gt;
It evolved like this: [[Catacomb]] + [[Hovertank]] -&amp;gt; [[Catacomb 3-D]] -&amp;gt; [[Wolfenstein 3-D]] -&amp;gt; [[Doom]] -&amp;gt; [[Quake]]&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = N/A&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Tileset&lt;br /&gt;
| mus = N/A&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;LEVEL#.CAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game levels in [[Catacomb Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;TOPSCORS.CAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores in [[Catacomb Highscore Format]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;SOUNDS.CAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | PC speaker sounds in [[Inverse Frequency Sound format]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;CGACHARS.CAT&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;EGACHARS.CAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Tile graphics for levels in [[Catacomb Tileset Format]], stored in the main .exe file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;TITLE.PIC&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;END.PIC&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Other graphics in [[PIC Format]], stored in the main .exe file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All graphics files are stored in the EXE. Their location in the &#039;&#039;decompressed&#039;&#039; executable is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Location   !! Size   !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00006100 || 0xB6C0 || EGACHARS.CAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x000117D0 || 0x5B60 || CGACHARS.CAT&lt;br /&gt;
|-&lt;br /&gt;
| 0x00017997 || 0x4000 || TITLE.PIC&lt;br /&gt;
|-&lt;br /&gt;
| 0x0001B997 || 0x4000 || END.PIC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that these offsets only apply when using [[UNLZEXE]] (other programs will produce different offsets.)&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
The source code of this game was released by Flat Rock Software on June 5, 2014. It can be downloaded from [http://github.com/FlatRockSoft/Catacomb GitHub]. &lt;br /&gt;
&lt;br /&gt;
[[Category:Softdisk]]&lt;br /&gt;
[[Category:id Software]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Mysterioso&amp;diff=10832</id>
		<title>User talk:Mysterioso</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Mysterioso&amp;diff=10832"/>
		<updated>2022-12-02T17:05:05Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* EGA/VGA? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Native resolution ==&lt;br /&gt;
Hi Mysterioso - thanks for all the things you are contributing!  When you get a chance, would you mind re-uploading [[:File:Witchaven.png]] as 320x200, assuming that&#039;s the game&#039;s native res?  It looks like it&#039;s been double-sized to 640x400, whereas the screenshots here are all in their native resolution.  Otherwise, great to see all the info you&#039;re adding!  Thanks again. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 05:30, 26 September 2015 (UTC)&lt;br /&gt;
: You&#039;re welcome!  I&#039;ve corrected that and added a few more; it&#039;s probably something worth mentioning in the guidelines, though. -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 17:41, 26 September 2015 (UTC)&lt;br /&gt;
:: Many thanks!  Good point, I will update the guidelines. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 21:27, 26 September 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Windows 9x games ==&lt;br /&gt;
Saw the thing about Windows 9x games on your page, decided to give my two cents. They are a bit of an ambiguous area, but seem mostly allowed, especially since there are such a large amount of DOS games with Win95 ports that remain 99% identical in modding in both versions (Doom95, C&amp;amp;C95, WC2 BNet etc). This may be stretching it a little, but personally, I&#039;ve been considering the cutoff point of what to consider &amp;quot;classic games modding&amp;quot; to be around the year 2000. It marks the end of most compression and optimisation, and the start of standardisation of file formats. At that point, there&#039;s a very wide abandonment of both indexed graphics and proprietary compression schemes, and a lot of in-house file formats that were constantly updated throughout the 90s were just thrown out. Proprietary file formats remained a thing, of course, but with the advent of the DVD era, barely any of them still bothered with compression, and with the appearance of DRM it seemed game devs also became less concerned with obfuscating the actual files. To me personally, it&#039;s the point it all becomes a lot less interesting ;) -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 09:01, 2 March 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Totally agree with this 100%.  To add further, if it&#039;s a popular Windows game in the modding world (like say Quake II) then there is probably nothing to gain from adding it here, as there is plenty of modding information available elsewhere.  However if it&#039;s a lesser known game and information is hard to find, then I don&#039;t mind it being added here even if it&#039;s Win 3.x or Win95. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 02:18, 11 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Modding tips ==&lt;br /&gt;
&lt;br /&gt;
Hey I just noticed you have added some .exe modifications to [[Heretic/Modding Tips]].  I wonder if you could create a new page called [[Heretic Executable]] and put those there instead, then add an entry to the [[Heretic]] file formats section to link to that new page?  Just because those .exe modifications are more than just tips on how to use modding tools, they&#039;re actual modding information that would be useful to anyone writing their own modding tools.  Thanks! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 15:48, 25 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
== EGA/VGA? ==&lt;br /&gt;
&lt;br /&gt;
i saw you changed one of my notes in [[Alpha Waves]] about EGA/VGA configuration difference, but i don&#039;t understand what you mean&lt;br /&gt;
&lt;br /&gt;
both the EGA and VGA code path of Alpha Waves is using int 10h set-video-mode 0dh - that means 320x200 at 16 colors (4 pages)&lt;br /&gt;
this is (to my understanding) a EGA introduced mode (which is still useable with later VGA cards) and even the VGA configuration&lt;br /&gt;
runs on pure EGA systems (with a different palett) - so its seems to me that the original author just added the VGA config for&lt;br /&gt;
&amp;quot;advertising&amp;quot; but not because the game needs real VGA hardware&lt;br /&gt;
&lt;br /&gt;
im reversing the game so i&#039;ve got the clean exectuable without using the loader that do not allow using the VGA config&lt;br /&gt;
if there is no VGA hardware available - but the game itself seems to be only EGA code&lt;br /&gt;
or do you say that its everything EGA code but the palette stuff uses some VGA specials?&lt;br /&gt;
&lt;br /&gt;
maybe you can explain in more detail what your note-change+comment should tell me :)&lt;br /&gt;
[[User:LowLevelMahn|LowLevelMahn]] ([[User talk:LowLevelMahn|talk]]) 06:12, 20 August 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Sure, I&#039;ll try.  Do note that even my oldest DOS hardware has VGA-capable graphics cards, so if someone with a true EGA card wants to contradict this, they&#039;re probably right.&lt;br /&gt;
&lt;br /&gt;
: To give the shortest possible summary I can come up with, mode 0Dh on an EGA card is limited to the 16 default colors, but on a VGA card it&#039;s possible to use the VGA palette registers to change those colors.  So while the game might work fine if you force it to run VGA mode on EGA (if this has only been tested on an emulator, I wouldn&#039;t be too assured that it won&#039;t crash on real hardware), it would be inaccurate to say that it isn&#039;t taking advantage of the VGA hardware capabilities, since it is using the VGA palette hardware.&lt;br /&gt;
&lt;br /&gt;
: Since you have a disassembly you can probably check that the difference is in having some commands to alter the palette registers (perhaps it&#039;s done in a pre-loading routine).  Those would likely be the same commands you would use to adjust palette in mode 13h, so check for outputs to ports 0x03C8 and 0x3C9.  These would, AFAIK, not work on a pure EGA card.&lt;br /&gt;
&lt;br /&gt;
: For a little more background, as I understand it mode 0Dh on EGA can only adjust palettes in so far as it may be possible to swap the associations of the 16 default colors around.  EGA did apparently have some palette adjustment capabilities on mode 10h, which is 640x350 and allows a choice of 16 colors from 64 possibilities.  10h was somewhat rarely used, however, mainly for strategy games where the slower rendering wasn&#039;t as much of an offset to having higher resolution and more color freedom.&lt;br /&gt;
&lt;br /&gt;
: Using a 16-color mode with a VGA palette wasn&#039;t super unusual for games that were ported from the Atari ST or the Amiga.  As I understand it, graphics modes on those systems were fairly commonly 16-color with a diverse choice of colors that could be put into a palette.  Retaining that setup for VGA probably made sense since if your graphics were already designed for a limit of 16 colors (just with fairly free choice of which colors), using a 16-color mode let you get two pixels for every byte (instead of the one pixel per byte you&#039;d get on 256-color indexed mode) thus allowing you a handy savings on RAM and disk space usage for your graphics.&lt;br /&gt;
&lt;br /&gt;
: Unfortunately it&#039;s a bit difficult to get definitive answers about EGA cards, since both the cards themselves and information on them is rather rare these days.  A good reference that I looked at is Richard F. Ferraro&#039;s &amp;quot;Programmer&#039;s Guide to the EGA and VGA Cards&amp;quot; which has some pretty comprehensive technical info on EGA, VGA, and Super VGA cards with lists for modes, interrupts, etc. -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 16:32, 20 August 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
:: You&#039;re right the code sets the color palette using port 3c8/3c9, so its EGA video mode + VGA color palette changing -- [[User:LowLevelMahn|LowLevelMahn]] ([[User talk:LowLevelMahn|talk]]) 19:16, 20 August 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: I think i found EGA Palett-changing code in Alpha Waves: https://www.vogons.org/viewtopic.php?f=63&amp;amp;t=91350 - i though that EGA colors can&#039;t be changed, or? [[User:LowLevelMahn|LowLevelMahn]] ([[User talk:LowLevelMahn|talk]]) 15:40, 2 December 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::: Without having a true EGA machine to test on it&#039;s hard to give a definitive answer, but from information I have available, I believe true EGA palette changing has some &amp;quot;yes, but&amp;quot; concerns with it.  You can supposedly get a choice from 64 colors only when you&#039;re in 640×350 mode; when you&#039;re in 320×200 mode then switching the palette around, as far as I know, just lets you move any of the 16 standard colors to one of the other color indices (not hugely useful, but some programs apparently did use it). -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 17:04, 2 December 2022 (GMT)&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Mysterioso&amp;diff=10698</id>
		<title>User talk:Mysterioso</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Mysterioso&amp;diff=10698"/>
		<updated>2022-08-20T16:32:26Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* EGA/VGA? */ I&amp;#039;ll try.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Native resolution ==&lt;br /&gt;
Hi Mysterioso - thanks for all the things you are contributing!  When you get a chance, would you mind re-uploading [[:File:Witchaven.png]] as 320x200, assuming that&#039;s the game&#039;s native res?  It looks like it&#039;s been double-sized to 640x400, whereas the screenshots here are all in their native resolution.  Otherwise, great to see all the info you&#039;re adding!  Thanks again. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 05:30, 26 September 2015 (UTC)&lt;br /&gt;
: You&#039;re welcome!  I&#039;ve corrected that and added a few more; it&#039;s probably something worth mentioning in the guidelines, though. -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 17:41, 26 September 2015 (UTC)&lt;br /&gt;
:: Many thanks!  Good point, I will update the guidelines. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 21:27, 26 September 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Windows 9x games ==&lt;br /&gt;
Saw the thing about Windows 9x games on your page, decided to give my two cents. They are a bit of an ambiguous area, but seem mostly allowed, especially since there are such a large amount of DOS games with Win95 ports that remain 99% identical in modding in both versions (Doom95, C&amp;amp;C95, WC2 BNet etc). This may be stretching it a little, but personally, I&#039;ve been considering the cutoff point of what to consider &amp;quot;classic games modding&amp;quot; to be around the year 2000. It marks the end of most compression and optimisation, and the start of standardisation of file formats. At that point, there&#039;s a very wide abandonment of both indexed graphics and proprietary compression schemes, and a lot of in-house file formats that were constantly updated throughout the 90s were just thrown out. Proprietary file formats remained a thing, of course, but with the advent of the DVD era, barely any of them still bothered with compression, and with the appearance of DRM it seemed game devs also became less concerned with obfuscating the actual files. To me personally, it&#039;s the point it all becomes a lot less interesting ;) -[[User:Nyerguds|Nyerguds]] ([[User talk:Nyerguds|talk]]) 09:01, 2 March 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Totally agree with this 100%.  To add further, if it&#039;s a popular Windows game in the modding world (like say Quake II) then there is probably nothing to gain from adding it here, as there is plenty of modding information available elsewhere.  However if it&#039;s a lesser known game and information is hard to find, then I don&#039;t mind it being added here even if it&#039;s Win 3.x or Win95. -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 02:18, 11 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Modding tips ==&lt;br /&gt;
&lt;br /&gt;
Hey I just noticed you have added some .exe modifications to [[Heretic/Modding Tips]].  I wonder if you could create a new page called [[Heretic Executable]] and put those there instead, then add an entry to the [[Heretic]] file formats section to link to that new page?  Just because those .exe modifications are more than just tips on how to use modding tools, they&#039;re actual modding information that would be useful to anyone writing their own modding tools.  Thanks! -- [[User:Malvineous|Malvineous]] ([[User talk:Malvineous|talk]]) 15:48, 25 April 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
== EGA/VGA? ==&lt;br /&gt;
&lt;br /&gt;
i saw you changed one of my notes in [[Alpha Waves]] about EGA/VGA configuration difference, but i don&#039;t understand what you mean&lt;br /&gt;
&lt;br /&gt;
both the EGA and VGA code path of Alpha Waves is using int 10h set-video-mode 0dh - that means 320x200 at 16 colors (4 pages)&lt;br /&gt;
this is (to my understanding) a EGA introduced mode (which is still useable with later VGA cards) and even the VGA configuration&lt;br /&gt;
runs on pure EGA systems (with a different palett) - so its seems to me that the original author just added the VGA config for&lt;br /&gt;
&amp;quot;advertising&amp;quot; but not because the game needs real VGA hardware&lt;br /&gt;
&lt;br /&gt;
im reversing the game so i&#039;ve got the clean exectuable without using the loader that do not allow using the VGA config&lt;br /&gt;
if there is no VGA hardware available - but the game itself seems to be only EGA code&lt;br /&gt;
or do you say that its everything EGA code but the palette stuff uses some VGA specials?&lt;br /&gt;
&lt;br /&gt;
maybe you can explain in more detail what your note-change+comment should tell me :)&lt;br /&gt;
[[User:LowLevelMahn|LowLevelMahn]] ([[User talk:LowLevelMahn|talk]]) 06:12, 20 August 2022 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Sure, I&#039;ll try.  Do note that even my oldest DOS hardware has VGA-capable graphics cards, so if someone with a true EGA card wants to contradict this, they&#039;re probably right.&lt;br /&gt;
&lt;br /&gt;
: To give the shortest possible summary I can come up with, mode 0Dh on an EGA card is limited to the 16 default colors, but on a VGA card it&#039;s possible to use the VGA palette registers to change those colors.  So while the game might work fine if you force it to run VGA mode on EGA (if this has only been tested on an emulator, I wouldn&#039;t be too assured that it won&#039;t crash on real hardware), it would be inaccurate to say that it isn&#039;t taking advantage of the VGA hardware capabilities, since it is using the VGA palette hardware.&lt;br /&gt;
&lt;br /&gt;
: Since you have a disassembly you can probably check that the difference is in having some commands to alter the palette registers (perhaps it&#039;s done in a pre-loading routine).  Those would likely be the same commands you would use to adjust palette in mode 13h, so check for outputs to ports 0x03C8 and 0x3C9.  These would, AFAIK, not work on a pure EGA card.&lt;br /&gt;
&lt;br /&gt;
: For a little more background, as I understand it mode 0Dh on EGA can only adjust palettes in so far as it may be possible to swap the associations of the 16 default colors around.  EGA did apparently have some palette adjustment capabilities on mode 10h, which is 640x350 and allows a choice of 16 colors from 64 possibilities.  10h was somewhat rarely used, however, mainly for strategy games where the slower rendering wasn&#039;t as much of an offset to having higher resolution and more color freedom.&lt;br /&gt;
&lt;br /&gt;
: Using a 16-color mode with a VGA palette wasn&#039;t super unusual for games that were ported from the Atari ST or the Amiga.  As I understand it, graphics modes on those systems were fairly commonly 16-color with a diverse choice of colors that could be put into a palette.  Retaining that setup for VGA probably made sense since if your graphics were already designed for a limit of 16 colors (just with fairly free choice of which colors), using a 16-color mode let you get two pixels for every byte (instead of the one pixel per byte you&#039;d get on 256-color indexed mode) thus allowing you a handy savings on RAM and disk space usage for your graphics.&lt;br /&gt;
&lt;br /&gt;
: Unfortunately it&#039;s a bit difficult to get definitive answers about EGA cards, since both the cards themselves and information on them is rather rare these days.  A good reference that I looked at is Richard F. Ferraro&#039;s &amp;quot;Programmer&#039;s Guide to the EGA and VGA Cards&amp;quot; which has some pretty comprehensive technical info on EGA, VGA, and Super VGA cards with lists for modes, interrupts, etc. -- [[User:Mysterioso|Mysterioso]] ([[User talk:Mysterioso|talk]]) 16:32, 20 August 2022 (GMT)&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Alpha_Waves&amp;diff=10695</id>
		<title>Alpha Waves</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Alpha_Waves&amp;diff=10695"/>
		<updated>2022-08-19T13:52:25Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Notes */ Just because VGA is so associated with mode 13h doesn&amp;#039;t make other modes that take advantage of the hardware not-VGA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Alpha Waves]] aka Continuum - one of the first 3d platformer games from 1990&lt;br /&gt;
&lt;br /&gt;
Frederick Raynal did the DOS port, the inital Ataris ST-Version of the game was created by Christophe de Dinechin&lt;br /&gt;
&lt;br /&gt;
* https://obscuritory.com/platform/alpha-waves/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Alpha_Waves&lt;br /&gt;
* https://www.youtube.com/watch?v=jN9KKnfwoNY&lt;br /&gt;
* [https://vgmrips.net/packs/pack/alpha-waves-pc Recorded adlib music]&lt;br /&gt;
&lt;br /&gt;
== Obtaining the game ==&lt;br /&gt;
&lt;br /&gt;
The full version of this game is available at archive.org [https://archive.org/details/002297-AlphaWaves Archive.org].&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/LowLevelMahn/alpha_waves_loader executable extractor &amp;amp; game starter] for Linux/Windows and 16bit DOS starter&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MUSIC_A.CC1&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Adlib music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MUSIC_B.CC1&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = PC Buz music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MUSIC_T.CC1&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Tandy music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = PROGS.CC1&lt;br /&gt;
 | Format = [https://github.com/LowLevelMahn/alpha_waves_loader/blob/main/read_some_file_sub_4/types.hpp File layout as C struct]&lt;br /&gt;
 | KnownFormat = Yes (uncompressed by the extractor)&lt;br /&gt;
 | Desc = Container with compressed excutables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GRAPHS.CC1&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Container with grafics for the different graphic card version&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = TEXTES.CC1&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Container with multi language texts&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
CC1 File format is a container of compressed data blocks&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || blocks || Count of compressed blocks&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || offset-table[blocks] || Offsets into data[]&lt;br /&gt;
|-&lt;br /&gt;
| Blocks... || data[] || Contains blocks with compressed data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Block information&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || unpacked_size || Unpacked data size&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || packed_size || Packed data size&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || data[packed_size] || Contains the packed data &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* The VGA mode uses 16-color graphics with the color palette adjusted.&lt;br /&gt;
* its a small memory model program with one code-segment and one data segment&lt;br /&gt;
* used compiler is Turbo C 2.x&lt;br /&gt;
&lt;br /&gt;
[[Category:3D‏‎]]&lt;br /&gt;
[[Category:Freeware]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10690</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10690"/>
		<updated>2022-08-16T01:00:54Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Table of Thing Flags */ Check palette shift ranges and remove those TODOs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, dull green (palette entries 225 through 240) becomes yellow (114-129). If both translations flags are set, dull green becomes blue (190-205).  By default it is set internally to differentiate players in multiplayer games, but can work on any sprite that uses the dull green palette range.&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, dull green (palette entries 225 through 240) becomes red (145-160). If both translations flags are set, dull green becomes blue (190-205).  By default it is set internally to differentiate players in multiplayer games, but can work on any sprite that uses the dull green palette range.&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded Behavior ===&lt;br /&gt;
&lt;br /&gt;
These are just some of the other special behaviors that are hardcoded to particular thing or frame numbers, etc. which are not noted or alterable in HHE.  {{TODO|There may be others.}}&lt;br /&gt;
&lt;br /&gt;
Thing #122 (Disciple of D&#039;Sparil) and thing #124 (Gargoyle) are forbidden from moving over/under other things of these two types even if they have PASSMOBJ set.&lt;br /&gt;
&lt;br /&gt;
Thing #122 (Disciple of D&#039;Sparil) has a 50% chance of using its sight sound instead of its active sound when playing active sounds.&lt;br /&gt;
&lt;br /&gt;
Thing #135 (dismounted D&#039;Sparil) will not retaliate against thing #122 (Disciple) in infighting.&lt;br /&gt;
&lt;br /&gt;
Thing #135 (dismounted D&#039;Sparil) makes active sounds at full volume regardless of distance.&lt;br /&gt;
&lt;br /&gt;
Thing #133 (mounted D&#039;Sparil), thing #135 (dismounted D&#039;Sparil) and thing #140 (maulotaur) are immune to splash damage from any source.&lt;br /&gt;
&lt;br /&gt;
=== Unused Data ===&lt;br /&gt;
Useful for making a small addition without having to disrupt the rest of the game&#039;s behavior, Heretic v1.3 does have some unused data that should be able to be recycled without incident:&lt;br /&gt;
&lt;br /&gt;
Thing #82 (described as &amp;quot;Wand Shot PL1&amp;quot;) is an unused thing.&lt;br /&gt;
&lt;br /&gt;
Frames 460 and 461 are frames whose only association is with the unused Thing #82.&lt;br /&gt;
&lt;br /&gt;
Frame 263 appears to be unused despite being referenced.  It would be the chicken beak raise state, but in-game testing suggests that the beak is already set in the ready state whenever players are morphed into chickens and when chicken players are reloaded from saved games.  It has an associated codepointer in slot 43.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Check duplicate weredragon ball objects and confirm that they&#039;re unused as well.}}&lt;br /&gt;
&lt;br /&gt;
Possible uses of these include adding a new scenery object or adding a ghost variant of a monster (such as the elusive ghost weredragon, perhaps).&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=AMP_Format_(Dark_Legions)&amp;diff=10574</id>
		<title>AMP Format (Dark Legions)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=AMP_Format_(Dark_Legions)&amp;diff=10574"/>
		<updated>2022-07-02T18:59:09Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Use more standard term for the array ordering + clean up a redundant wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The action sequence maps used by [[Dark Legions]] use a simple format that contains an array of tile indices, 240 bytes in length.  When combat starts, an action map is randomly chosen from the set of files appropriate to the terrain that combat is taking place on.&lt;br /&gt;
&lt;br /&gt;
Some larger .AMP files installed by the game are actually in the [[MAP Format (Dark Legions)|.MAP format]], but these long-form .AMPs are useless to the game and can be ignored.  They appear to be a relic of development that was not cleaned up.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Offset !! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || array of [[UINT8]] || 20 &amp;amp;times; 12 map of tile indices, column-major&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The tiles for these scenes are 32 &amp;amp;times; 32 pixels.  Depending on terrain, one of several [[Graphics Interchange Format|.GIF]] files is used for the tile set graphics:&lt;br /&gt;
&lt;br /&gt;
* BARREN01.GIF - water&lt;br /&gt;
* BARREN02.GIF - grass and forest&lt;br /&gt;
* BARREN03.GIF - sand and rocky&lt;br /&gt;
* BARREN04.GIF - burnt&lt;br /&gt;
&lt;br /&gt;
[[Category:Dark Legions]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Dark_Legions)&amp;diff=10573</id>
		<title>MAP Format (Dark Legions)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Dark_Legions)&amp;diff=10573"/>
		<updated>2022-07-02T18:50:23Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Use more standard terms for the array orderings + cleaner wording and caveat for map loading mechanism&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The strategic maps for [[Dark Legions]] are uncompressed and always store the maximal amount of data possible, thus they take up exactly 16,012 bytes each.  They are stored in the MAPS subdirectory and use the extension .MAP.  There are also some .AMP files which use this format, but they appear to be leftover development cruft that was not removed before the game&#039;s release and appear not to be read or needed by the game.&lt;br /&gt;
&lt;br /&gt;
New .MAP files can simply be added to the MAPS directory and the game will read them without the need for other adjustments. {{TODO|It is of course possible that the map menu has a maximum array size and could experience errors if this number of files is exceeded; this should be researched.}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Offset !! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || [[UINT32LE]] || Map width&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004 || [[UINT32LE]] || Map height&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || 100x100 array of [[UINT8]] || Tile array (column-major)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2718 || [[UINT32LE]] || Valid object count&lt;br /&gt;
|-&lt;br /&gt;
| 0x271C || Array of 1000 objects || See below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since the tile array is column-major, the first 100 bytes of the tile array define the top left to bottom left of the map (including void space padding as needed if the effective map size is smaller than the maximum allotted space).&lt;br /&gt;
&lt;br /&gt;
The tileset used by these maps is stored in the SKTILE??.GIF files as ordinary [[Graphics Interchange Format|.GIF]] images (GIF87a version). Each of these files is a 7x7 collection of 44x28 tiles. The tile values correspond to graphics in a row-major manner, with the files arrayed vertically as it were, so that tile 0x07 corresponds to the tile at position x0, y1 in SKTILE01.GIF, 0x31 corresponds to x0, y0 in SKTILE02.GIF, etc.&lt;br /&gt;
&lt;br /&gt;
== Objects ==&lt;br /&gt;
&lt;br /&gt;
Every object is defined by three properties:&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || Object type&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || X position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || Y position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|The first &amp;quot;object&amp;quot; in the object list is not a scenery object. The data it contains varies from map to map, but its purpose (if any) is not yet clear - possibly setting the initial boundaries of players&#039; territory?}}&lt;br /&gt;
&lt;br /&gt;
Object types 0x00 to 0x05 are trees, 0x06 to 0x0B are rocks, and 0x0C to 0x10 are burnt trees. 0x11 and above can also be used; they use non-scenery sprites (such as unit sprites) but behave as if they were scenery objects, so may confuse players if used.&lt;br /&gt;
&lt;br /&gt;
The scenery sprites are stored in ALLFB.DAC, starting at sprite number 90 (zero-inclusive) and continuing in the same order as the map object type values. It appears that object type values that would go past the end of ALLFB.DAC&#039;s sprite set wrap around to the beginning of the set instead of causing an error. &lt;br /&gt;
&lt;br /&gt;
[[Category:Dark Legions]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Dark_Legions)&amp;diff=10545</id>
		<title>MAP Format (Dark Legions)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Dark_Legions)&amp;diff=10545"/>
		<updated>2022-06-10T23:22:07Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Format */ GIF version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The strategic maps for [[Dark Legions]] are uncompressed and always store the maximal amount of data possible, thus they take up exactly 16,012 bytes each.  They are stored in the MAPS subdirectory and use the extension .MAP.  There are also some .AMP files which use this format, but they appear to be leftover development cruft that was not removed before the game&#039;s release and appear not to be read or needed by the game.&lt;br /&gt;
&lt;br /&gt;
New .MAP files can simply be added to the MAPS directory and the game will read them without any need to replace existing files or alter other files.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Offset !! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || [[UINT32LE]] || Map width&lt;br /&gt;
|-&lt;br /&gt;
| 0x0004 || [[UINT32LE]] || Map height&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || 100x100 array of [[UINT8]] || Tile array (column-first)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2718 || [[UINT32LE]] || Valid object count&lt;br /&gt;
|-&lt;br /&gt;
| 0x271C || Array of 1000 objects || See below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since maps are defined column-first, the first 100 bytes of the tile array define the top left to bottom left of the map (including void space padding as needed if the effective map size is smaller than the maximum allotted space).&lt;br /&gt;
&lt;br /&gt;
The tileset used by these maps is stored in the SKTILE??.GIF files as ordinary [[Graphics Interchange Format|.GIF]] images (GIF87a version). Each of these files is a 7x7 collection of 44x28 tiles. Map tile values correspond to these sets row first, then column, with the files arrayed vertically as it were, so that tile 0x07 corresponds to the tile at position x0, y1 in SKTILE01.GIF, 0x31 corresponds to x0, y0 in SKTILE02.GIF, etc.&lt;br /&gt;
&lt;br /&gt;
== Objects ==&lt;br /&gt;
&lt;br /&gt;
Every object is defined by three properties:&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Type !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || Object type&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || X position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || Y position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|The first &amp;quot;object&amp;quot; in the object list is not a scenery object. The data it contains varies from map to map, but its purpose (if any) is not yet clear - possibly setting the initial boundaries of players&#039; territory?}}&lt;br /&gt;
&lt;br /&gt;
Object types 0x00 to 0x05 are trees, 0x06 to 0x0B are rocks, and 0x0C to 0x10 are burnt trees. 0x11 and above can also be used; they use non-scenery sprites (such as unit sprites) but behave as if they were scenery objects, so may confuse players if used.&lt;br /&gt;
&lt;br /&gt;
The scenery sprites are stored in ALLFB.DAC, starting at sprite number 90 (zero-inclusive) and continuing in the same order as the map object type values. It appears that object type values that would go past the end of ALLFB.DAC&#039;s sprite set wrap around to the beginning of the set instead of causing an error. &lt;br /&gt;
&lt;br /&gt;
[[Category:Dark Legions]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dark_Legions&amp;diff=10544</id>
		<title>Dark Legions</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dark_Legions&amp;diff=10544"/>
		<updated>2022-06-10T23:15:51Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: checked GIF version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Dark Legions]] is a strategy/action hybrid game (similar to Archon) developed by [[Silicon Knights]] and published by [[SSI]]. Two armies of fantasy beings attempt to defeat each other&#039;s orb keeper in order to become supremely powerful.&lt;br /&gt;
&lt;br /&gt;
The game can be played two player or versus an AI.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.amp&lt;br /&gt;
 | Format = [[AMP Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Combat maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Strategic maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.col&lt;br /&gt;
 | Format = [[COL Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bdt&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Graphics archive&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bdm&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = BDT headers&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.dat&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Graphics archive&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.dmp&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = DAT headers&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.dac&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Graphics archive&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.dmc&lt;br /&gt;
 | Format = [[DAT Format (Dark Legions)]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = DAC headers&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gif&lt;br /&gt;
 | Format = [[Graphics Interchange Format]] (GIF87a)&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Interface and tile set graphics&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.hmp&lt;br /&gt;
 | Format =  [[Human Machine Interfaces MIDI Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bnk&lt;br /&gt;
 | Format = [[AdLib Instrument Bank Format]] (v0.0)&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Instruments associated with HMP music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = Raw PCM audio, unsigned 8-bit PCM, mono, little-endian, 11025 Hz&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.flc&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Intro animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.arm&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Army saves?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gam&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Save games?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qgm&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Quickstart games?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sgm&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Save games?&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://rewiki.regengedanken.de/wiki/Dark_Legions Dark Legions on REwiki] - For known file format specs&lt;br /&gt;
&lt;br /&gt;
[[Category:Silicon Knights]]&lt;br /&gt;
[[Category:SSI]]&lt;br /&gt;
[[Category:Strategy]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10537</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10537"/>
		<updated>2022-05-20T18:41:53Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* HHE */ Port in more of my notes - things which have hardcoded peculiarities beyond the properties accessible in the Things panel.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded Behavior ===&lt;br /&gt;
&lt;br /&gt;
These are just some of the other special behaviors that are hardcoded to particular thing or frame numbers, etc. which are not noted or alterable in HHE.  {{TODO|There may be others.}}&lt;br /&gt;
&lt;br /&gt;
Thing #122 (Disciple of D&#039;Sparil) and thing #124 (Gargoyle) are forbidden from moving over/under other things of these two types even if they have PASSMOBJ set.&lt;br /&gt;
&lt;br /&gt;
Thing #122 (Disciple of D&#039;Sparil) has a 50% chance of using its sight sound instead of its active sound when playing active sounds.&lt;br /&gt;
&lt;br /&gt;
Thing #135 (dismounted D&#039;Sparil) will not retaliate against thing #122 (Disciple) in infighting.&lt;br /&gt;
&lt;br /&gt;
Thing #135 (dismounted D&#039;Sparil) makes active sounds at full volume regardless of distance.&lt;br /&gt;
&lt;br /&gt;
Thing #133 (mounted D&#039;Sparil), thing #135 (dismounted D&#039;Sparil) and thing #140 (maulotaur) are immune to splash damage from any source.&lt;br /&gt;
&lt;br /&gt;
=== Unused Data ===&lt;br /&gt;
Useful for making a small addition without having to disrupt the rest of the game&#039;s behavior, Heretic v1.3 does have some unused data that should be able to be recycled without incident:&lt;br /&gt;
&lt;br /&gt;
Thing #82 (described as &amp;quot;Wand Shot PL1&amp;quot;) is an unused thing.&lt;br /&gt;
&lt;br /&gt;
Frames 460 and 461 are frames whose only association is with the unused Thing #82.&lt;br /&gt;
&lt;br /&gt;
Frame 263 appears to be unused despite being referenced.  It would be the chicken beak raise state, but in-game testing suggests that the beak is already set in the ready state whenever players are morphed into chickens and when chicken players are reloaded from saved games.  It has an associated codepointer in slot 43.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Check duplicate weredragon ball objects and confirm that they&#039;re unused as well.}}&lt;br /&gt;
&lt;br /&gt;
Possible uses of these include adding a new scenery object or adding a ghost variant of a monster (such as the elusive ghost weredragon, perhaps).&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10536</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10536"/>
		<updated>2022-05-19T16:53:22Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Port in more of my notes - unused data that can be altered without replacing valid things&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unused Data ===&lt;br /&gt;
Useful for making a small addition without having to disrupt the rest of the game&#039;s behavior, Heretic v1.3 does have some unused data that should be able to be recycled without incident:&lt;br /&gt;
&lt;br /&gt;
Thing #82 (described as &amp;quot;Wand Shot PL1&amp;quot;) is an unused thing.&lt;br /&gt;
&lt;br /&gt;
Frames 460 and 461 are frames whose only association is with the unused Thing #82.&lt;br /&gt;
&lt;br /&gt;
Frame 263 appears to be unused despite being referenced.  It would be the chicken beak raise state, but in-game testing suggests that the beak is already set in the ready state whenever players are morphed into chickens and when chicken players are reloaded from saved games.  It has an associated codepointer in slot 43.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Check duplicate weredragon ball objects and confirm that they&#039;re unused as well.}}&lt;br /&gt;
&lt;br /&gt;
Possible uses of these include adding a new scenery object or adding a ghost variant of a monster (such as the elusive ghost weredragon, perhaps).&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10400</id>
		<title>Heretic</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10400"/>
		<updated>2022-04-26T08:08:12Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: EXE link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Heretic]] is a fantasy first-person shooter based on the engine of [[Doom]].  Its sequel is [[Hexen]].  Many utilities that support Doom can be used for Heretic as well.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = DeuTex&lt;br /&gt;
| Platform = DOS/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = &lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/sound_edit/midi2mus MIDI2MUS]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Occasionally, some MIDI files may produce conversion errors.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/exe_edit/hhe11 HHE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = Edit&lt;br /&gt;
| notes = Can be made to work with any EXE revision via INI adjustments, but some labels are accurate only for v1.0.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = HERETIC.EXE&lt;br /&gt;
 | Format = [[Heretic Executable]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Main game program&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Loading and exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
There is extensive information already on the [https://doomwiki.org Doom wiki].&lt;br /&gt;
&lt;br /&gt;
Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Heretic List of bugs present in the official DOS versions of Heretic]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10399</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10399"/>
		<updated>2022-04-26T08:06:11Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Move EXE patch notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic_Executable&amp;diff=10398</id>
		<title>Heretic Executable</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic_Executable&amp;diff=10398"/>
		<updated>2022-04-26T08:05:48Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Move EXE patch notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Heretic]] uses a DOS4GW-based executable ([[Linear Executable (LX/LE) Format]]), compiled with Watcom C.&lt;br /&gt;
&lt;br /&gt;
=== Intermission map locations ===&lt;br /&gt;
Between levels, the first three episodes have intermission maps which present a graphical display of which areas have been completed, and which area the player is about to enter.  For each level, there is an X,Y coordinate pair indicating where the next level arrow should point when entering the level, and where the level completed X should appear when the level has already been done.  The marks are placed on 320x200 VGA screen, so coordinates must remain within those bounds.  A bit of buffer area should also be reserved from the edges of the screen as a &amp;quot;Bad V_DrawPatch&amp;quot; error will occur if the indicator graphics try to draw outside the screen borders.&lt;br /&gt;
&lt;br /&gt;
The table of map locations appears at offset 0x09A8A8 in the v1.3 EXE.  Each entry consists of 8 bytes, an [[INT32LE]] X coordinate and [[INT32LE]] Y coordinate.  The table contains 27 entries, with the levels arranged in order from E1M1 through E3M9.  The Shadow of the Serpent Riders expansion episodes and the super-secret &amp;quot;episode&amp;quot; don&#039;t include intermission map screens so there are no coordinates stored for those even in v1.3.&lt;br /&gt;
&lt;br /&gt;
=== Music assignments ===&lt;br /&gt;
Unlike [[Doom]], Heretic includes each piece of background music in HERETIC.WAD only once, and relies on a table internal to the EXE to assign music to each level.  This allowed the developers to shave a little bloat off of the IWAD size, but makes things a bit more inconvenient for modders looking to include custom music.&lt;br /&gt;
&lt;br /&gt;
The music assignment table is found at offset 0x09C074 of the v1.3 HERETIC.EXE.  Each entry is 12 bytes: a 9-byte [[ASCIIZ]] string with the 8-character MUS lump name and NULL terminator, plus 3 padding bytes.  Assignments start at E1M1 and set music for every map in order through E6M3, then come assignments for the title screen, intermission, and end episode story screens in that order.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10385</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10385"/>
		<updated>2022-04-25T01:17:23Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: A couple locations in the EXE that can be usefully patched beyond what HHE exposes for editing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EXE edits (Non-HHE) ==&lt;br /&gt;
Other EXE edits that can achieve useful goals, but that aren&#039;t exposed by HHE.  Unless otherwise noted, the info here applies to v1.3 of the Heretic .EXE.&lt;br /&gt;
&lt;br /&gt;
=== Intermission map locations ===&lt;br /&gt;
Between levels, the first three episodes have intermission maps which present a graphical display of which areas have been completed, and which area the player is about to enter.  For each level, there is an X,Y coordinate pair indicating where the next level arrow should point when entering the level, and where the level completed X should appear when the level has already been done.  The marks are placed on 320x200 VGA screen, so coordinates must remain within those bounds.  A bit of buffer area should also be reserved from the edges of the screen as a &amp;quot;Bad V_DrawPatch&amp;quot; error will occur if the indicator graphics try to draw outside the screen borders.&lt;br /&gt;
&lt;br /&gt;
The table of map locations appears at offset 0x09A8A8 in the v1.3 EXE.  Each entry consists of 8 bytes, an [[INT32LE]] X coordinate and [[INT32LE]] Y coordinate.  The table contains 27 entries, with the levels arranged in order from E1M1 through E3M9.  The Shadow of the Serpent Riders expansion episodes and the super-secret &amp;quot;episode&amp;quot; don&#039;t include intermission map screens so there are no coordinates stored for those even in v1.3.&lt;br /&gt;
&lt;br /&gt;
=== Music assignments ===&lt;br /&gt;
Unlike [[Doom]], Heretic includes each piece of background music in HERETIC.WAD only once, and relies on a table internal to the EXE to assign music to each level.  This allowed the developers to shave a little bloat off of the IWAD size, but makes things a bit more inconvenient for modders looking to include custom music.&lt;br /&gt;
&lt;br /&gt;
The music assignment table is found at offset 0x09C074 of the v1.3 HERETIC.EXE.  Each entry is 12 bytes: a 9-byte [[ASCIIZ]] string with the 8-character MUS lump name and NULL terminator, plus 3 padding bytes.  Assignments start at E1M1 and set music for every map in order through E6M3, then come assignments for the title screen, intermission, and end episode story screens in that order.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer/Cheats&amp;diff=10357</id>
		<title>Mageslayer/Cheats</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer/Cheats&amp;diff=10357"/>
		<updated>2022-04-12T20:59:26Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Some known debug codes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use the tilde (~) key to access a command console.  You can then type a command and press enter.&lt;br /&gt;
&lt;br /&gt;
== Debug functions== &lt;br /&gt;
These let you look up internal data, manipulate various aspects of the game, or do other debug-related functions. Some can also be used to cheat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_friction (#)&#039;&#039;&#039;	Use without a number to check the friction setting, or with one to change it. Smaller numbers mean slipperier movement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_gravity (#)&#039;&#039;&#039;	Use without a number to check the gravity setting, or with one to change it. Smaller numbers mean weaker gravity; low gravity makes a better jump cheat than the fly command does.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_jumpheight (#)&#039;&#039;&#039;	Use without a number to check the jump height setting, or with one to change it. The default is 800, and 1776 is the maximum safe value before you will jump so high that you die coming back down. It appears not to be just a simple linear scale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_moveactor # # # #&#039;&#039;&#039;	Move the actor specified by the first number to the position specified by the remaining three numbers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_moveme # # #&#039;&#039;&#039;	Move the player to the position specified by the three numbers (west-east, north-south, down-up).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a_movemerel # # #&#039;&#039;&#039;	This is like a_moveme, but instead of using the true map coordinates, the values given are added to the current ones. Useful for tweaking one&#039;s position a little.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dir (name)&#039;&#039;&#039;	Print the directory listing of a directory inside the main data file. &#039;&#039;&#039;dir maps&#039;&#039;&#039; is a commonly referenced one for getting the map listing, but other directories like sprites, sounds, and music also exist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pc_dump #&#039;&#039;&#039;	Dump info about an actor on the map. Using 0 as the number will get the player&#039;s info and actor number. The player is usually the next-to-last actor (the last being the camera).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pc_runservice (name)&#039;&#039;&#039;	Asks for a Service Name as an argument, currently unsure of correct input.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pc_stats&#039;&#039;&#039;	Show tallies of some stuff, needs more research.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pc_top&#039;&#039;&#039;	Prints some debugging info, might be related to frequently used or most resource intensive game functions?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;positions&#039;&#039;&#039;	Show the position(s) of players in the game. One use of this is to get positions to move players or other things to with some of the other commands like a_moveme and a_moveactor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;res_fileinfo (name)&#039;&#039;&#039;	Display info about a lump in the main data file, invoked by lump name. You can get some of the lump names with dir or res_idlist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;res_idlist&#039;&#039;&#039;	Show a listing of lumps that have been loaded from the main data file, with the ID numbers of each lump (which can then be used with res_idstat)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;res_idstat #&#039;&#039;&#039;	Show info on the specified lump from the main data file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_flatshade (#)&#039;&#039;&#039;	Check or set a 0/1 toggle for flat shading. When set, renders the map&#039;s static geometry with flat colors instead of texturing them. Could be useful for modders analyzing map structure or checking for geometry problems, or to help understand the map format. Default is 0 (off).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_flatshadepolyobj (#)&#039;&#039;&#039;	Check or set a 0/1 toggle for polyobject flat shading. Like vp_flatshade but this one is for the map&#039;s polyobjects (moving parts like doors and traps). Default is 0 (off).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_fov (#)&#039;&#039;&#039;	Check or set the field of view setting. Higher numbers means a bigger view but also introduces some vertical distortion. You may also have to use the vp_renderdist command along with it if you want to avoid disappearing geometry on wider views.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_printfacedata #&#039;&#039;&#039;	Displays some info on the specified face number (&amp;quot;light size&amp;quot; and &amp;quot;plane&amp;quot;). Technical stuff I don&#039;t currently understand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_renderdist (#)&#039;&#039;&#039;	Check or set the render distance for map polygons. Setting a higher number keeps more distant geometry in view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vp_rendertorches (#)&#039;&#039;&#039;	Check or set a 0/1 toggle for whether the torch flames in levels will be rendered. Default is 1 (on).&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer&amp;diff=10356</id>
		<title>Mageslayer</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Mageslayer&amp;diff=10356"/>
		<updated>2022-04-12T19:54:30Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Created page with &amp;quot;{{NeedMoreInfo}} {{Game Infobox  | Levels = No  | Tiles = No  | Sprites = No  | Fullscreen = No  | Sound = No  | Music = No  | Text = No  | Story = No  | Interface = No }}  ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Mageslayer]] is a top-down fantasy action game for Windows 9x.  It is built on Raven Software&#039;s Vampire Engine and is aesthetically similar to [[Heretic]] and [[Hexen]], though it does not take place in the same universe as them.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.vpk&lt;br /&gt;
 | Format = [[Vampire Engine VPK]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Main data archive&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Overhead]]&lt;br /&gt;
[[Category:Raven Software]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Mysterioso&amp;diff=10355</id>
		<title>User:Mysterioso</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Mysterioso&amp;diff=10355"/>
		<updated>2022-04-12T17:05:45Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Some updates/cleanups.  Since the general consensus seems to be that work on Windows 9x games is allowed outside of those that are already overrepresented with modding info, I&amp;#039;ve dissolved the Windows list and distributed those entries between the &amp;quot;actively been poking at&amp;quot; and &amp;quot;passively curious about&amp;quot; lists.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AKA Eye of Antares (on REwiki, defunct) / ETTiNGRiNDER (most places)&lt;br /&gt;
== Tools of the trade ==&lt;br /&gt;
Some stuff I use.&lt;br /&gt;
* [https://sourceforge.net/projects/hexplorer/ ICY Hexplorer] - A really good hex editor for Windows, with wide compatibility with OS versions from 9x through to modern ones and with WINE on *NIX-style systems.  Includes handy features such as disassembly of x86 opcodes and a pixel view mode that is sometimes useful for helping to locate graphical data.&lt;br /&gt;
&lt;br /&gt;
== List of games I&#039;m interested in seeing on this wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Games I am working on / have worked on ===&lt;br /&gt;
* [[Abuse]] - Working on better documentation for formats / modding&lt;br /&gt;
* [[Chasm: The Rift]] - An unofficial engine remake exists which might be a good place to look for further format information; the author probably understands the inner workings better than I do&lt;br /&gt;
* [[Dark Legions]] - Still need to finish recovering/re-checking info I put on REwiki some years ago; there are also aspects that remain to be discovered.  Map format is mostly known, graphics formats are somewhat known&lt;br /&gt;
* [[Heretic]] - Particularly HHE / EXE patching&lt;br /&gt;
* [[Hexen]] - Deeper clarification of various modding aspects, EXE patching&lt;br /&gt;
* [[Star Goose]] - Basics of graphics and level format are now known.  EXE patching is needed for full level editing possibility.&lt;br /&gt;
* [[Witchaven]] - Most formats are understood, sound system and save game format need work&lt;br /&gt;
* [[Witchaven II]] - Most formats are understood, sound system and save game format need work&lt;br /&gt;
* [[Dark Angael]] - Based on the [[Abuse]] engine, probably same or similar formats. (Windows 9x)&lt;br /&gt;
* [[Disciples]] - official map editor exists (with some bugs/omissions), possible third-party graphics extractor.  I know a few map format tweaks to achieve things the map editor doesn&#039;t cover. (Windows 9x)&lt;br /&gt;
* [[Mageslayer]] / [[Take No Prisoners]] - same engine for both, probably same/similar formats.  The games contain debug codes that would be useful to jump-start RE of the level format. (Windows 9x)&lt;br /&gt;
&lt;br /&gt;
=== Games that I am aware of mods / modding info elsewhere that could be added or at least linked to ===&lt;br /&gt;
* [[Blake Stone]] - Extant mods and utilities not yet documented on this wiki&lt;br /&gt;
* [[Corridor 7]] - Extant utilities not yet documented on this wiki&lt;br /&gt;
* [[Dungeon Master]] - Most mods seem to use an unofficial Windows port but there might be some DOS format info / tools out there - check this&lt;br /&gt;
* [[Master of Magic]] - Insecticide mod (bugfix), possibly some other DOS mods remain available.&lt;br /&gt;
* [[Warcraft]] - Custom scenarios were made by hacking savegame files, using a Windows 16-bit utility by BJ Pollard.  A few other utilities like Stratlas and WarDraft may also have viewing functionality.  Archive format may be shared with Warcraft II.  Shareware/Demo version may have used an older format.&lt;br /&gt;
* [[Warcraft II]] - file format docs exist, official map editor, some extant 3rd party tools&lt;br /&gt;
* [[El-Fish]] - There is some format documentation out there: [https://www.vidarholen.net/contents/elfish/]&lt;br /&gt;
&lt;br /&gt;
=== Games that are not currently on my plate but I might work on in the future or would be glad to see worked on in general ===&lt;br /&gt;
* [[Alien Breed]]&lt;br /&gt;
* [[Alien Rampage]]&lt;br /&gt;
* [[Blackthorne]] (AKA Blackhawk in some versions)&lt;br /&gt;
* [[CyClones]] - Possibly same/similar engine to Shadowcaster?  There seems to be some knowledge on extracting images&lt;br /&gt;
* [[Demon Stalkers]] - Comes with some editing capability, no surviving mods?&lt;br /&gt;
* [[Fantasy Empires]] - Appears to share some similarities with [[Dark Legions]] so check for possible same formats (a cursory look suggests that it probably uses an older iteration of the Dark Legions DAT format)&lt;br /&gt;
* [[Gauntlet II]] - DOS port is competent, albeit with only PC speaker sound.  A graphics/text mod (with questionable content) also exists.&lt;br /&gt;
* [[Gods]] - A Java remake exists with level editing capacity but no modding for the original game that I am aware of&lt;br /&gt;
* [[Iron Blood]]&lt;br /&gt;
* [[Shadowcaster]] - A few things here and there are known, but more is needed to do more than just rip the resources&lt;br /&gt;
* [[Dark Vengeance]] - Developer comments suggested that modding support was intended, but no specs/tools were released that I am aware of. (Windows 9x)&lt;br /&gt;
* [[Deathtrap Dungeon]] - Possibly already known how to extract graphics (Windows 9x)&lt;br /&gt;
* [[Fire Fight]] (Windows 9x)&lt;br /&gt;
* [[Get Medieval]] - official level editor exists, no custom level releases that I&#039;m aware of (Windows 9x)&lt;br /&gt;
&lt;br /&gt;
=== File formats ===&lt;br /&gt;
* [[Human Machine Interfaces MIDI Format]] - Complete, detailed specs for various versions would be useful for [[Abuse]], [[Dark Legions]], [[Witchaven]], [[Witchaven II]] and many others not on my personal list.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10346</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10346"/>
		<updated>2022-04-07T22:19:25Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Pointers panel (F8) */ Partial reference table for which pointers connect to which frames in v1.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of pointer references for v1.3 ====&lt;br /&gt;
This table is intended to help you match the code pointers to their frames.  {{TODO|It is currently incomplete.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pointer&lt;br /&gt;
!Frame&lt;br /&gt;
!Default Action&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|10&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|19&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|31&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|30&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|40&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|87&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|86&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|194&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|193&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|195&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|212&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|211&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|221&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|237&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|236&lt;br /&gt;
|&lt;br /&gt;
|Frame only accessed by IDKFA cheat&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|243&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|242&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|241&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|240&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|239&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|238&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|247&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|246&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|244&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|262&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak lower, used if chicken player dies&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|261&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|267&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|265&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|264&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|263&lt;br /&gt;
|&lt;br /&gt;
|Chicken beak raise, likely unused&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|274&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet raise&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|273&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet lower&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|272&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|271&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|270&lt;br /&gt;
|&lt;br /&gt;
|Powered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|269&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet ready&lt;br /&gt;
|-&lt;br /&gt;
|50&lt;br /&gt;
|280&lt;br /&gt;
|&lt;br /&gt;
|Unpowered gauntlet refire&lt;br /&gt;
|-&lt;br /&gt;
|51&lt;br /&gt;
|279&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|278&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|277&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp fire&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|286&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|285&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p fire&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|284&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet fire&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|281&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet unp unflash&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|288&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p unflash&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|287&lt;br /&gt;
|&lt;br /&gt;
|Gauntlet p refire&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|298&lt;br /&gt;
|&lt;br /&gt;
|Claw ready&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|303&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|300&lt;br /&gt;
|&lt;br /&gt;
|Claw raise&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|299&lt;br /&gt;
|&lt;br /&gt;
|Claw lower&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|309&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|306&lt;br /&gt;
|&lt;br /&gt;
|Claw refire&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|Claw p refire&lt;br /&gt;
|-&lt;br /&gt;
|68&lt;br /&gt;
|348&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_MACEUP&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|347&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_MACEDOWN&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|346&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_MACEREADY&lt;br /&gt;
|-&lt;br /&gt;
|71&lt;br /&gt;
|354&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK1_6&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|73&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|74&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|75&lt;br /&gt;
|&lt;br /&gt;
|A_FireMacePL1 - 116208&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|360&lt;br /&gt;
|A_FireMacePL2 - 117056&lt;br /&gt;
|S_MACEATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|365&lt;br /&gt;
|A_MaceBallImpact - 116464&lt;br /&gt;
|S_MACEFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|78&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|79&lt;br /&gt;
|&lt;br /&gt;
|A_MacePL1Check - 116352&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|362&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_MACEATK2_4&lt;br /&gt;
|-&lt;br /&gt;
|81&lt;br /&gt;
|372&lt;br /&gt;
|A_MaceBallImpact2 - 116624&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|82&lt;br /&gt;
|378&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|S_HORNRODREADY&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|376&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|S_MACEFXI4_1&lt;br /&gt;
|-&lt;br /&gt;
|84&lt;br /&gt;
|383&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|85&lt;br /&gt;
|382&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|86&lt;br /&gt;
|381&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|87&lt;br /&gt;
|380&lt;br /&gt;
|A_Raise&lt;br /&gt;
|S_HORNRODUP&lt;br /&gt;
|-&lt;br /&gt;
|88&lt;br /&gt;
|379&lt;br /&gt;
|A_Lower&lt;br /&gt;
|S_HORNRODDOWN&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|388&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|90&lt;br /&gt;
|392&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|91&lt;br /&gt;
|402&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_2 &lt;br /&gt;
|-&lt;br /&gt;
|92&lt;br /&gt;
|405&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|S_HRODFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|93&lt;br /&gt;
|404&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|S_HRODFX2_4&lt;br /&gt;
|-&lt;br /&gt;
|94&lt;br /&gt;
|412&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|95&lt;br /&gt;
|411&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|96&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|97&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|98&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|99&lt;br /&gt;
|&lt;br /&gt;
|A_RainImpact - 118688&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|101&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|102&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|103&lt;br /&gt;
|457&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|104&lt;br /&gt;
|455&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|105&lt;br /&gt;
|453&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|106&lt;br /&gt;
|459&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|107&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|108&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|110&lt;br /&gt;
|&lt;br /&gt;
|A_FirePhoenixPL2 - 119136&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|A_InitPhoenixPL2 - 119120&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|112&lt;br /&gt;
|481&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|Phoenix PL1 refire&lt;br /&gt;
|-&lt;br /&gt;
|113&lt;br /&gt;
|478&lt;br /&gt;
|A_FirePhoenixPL1 - 118784&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|114&lt;br /&gt;
|487&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|Phoenix blast explode&lt;br /&gt;
|-&lt;br /&gt;
|115&lt;br /&gt;
|486&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|116&lt;br /&gt;
|485&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|117&lt;br /&gt;
|484&lt;br /&gt;
|&lt;br /&gt;
|Phoenix roaster refire&lt;br /&gt;
|-&lt;br /&gt;
|118&lt;br /&gt;
|505&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|119&lt;br /&gt;
|511&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|120&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|124&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|126&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|129&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|130&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|131&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|132&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|133&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|137&lt;br /&gt;
|536&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|A_Raise - 114480&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|139&lt;br /&gt;
|&lt;br /&gt;
|A_Lower - 114320&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|A_WeaponReady - 113728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|141&lt;br /&gt;
|554&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|142&lt;br /&gt;
|543&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|S_CRBOWATK1_8&lt;br /&gt;
|-&lt;br /&gt;
|143&lt;br /&gt;
|556&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|144&lt;br /&gt;
|551&lt;br /&gt;
|A_ReFire - 114256&lt;br /&gt;
|S_CRBOWATK2_8&lt;br /&gt;
|-&lt;br /&gt;
|145&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|146&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|147&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|148&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|149&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|150&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|151&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|152&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|153&lt;br /&gt;
|706&lt;br /&gt;
|A_BeastAttack - 77184&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|154&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|156&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|157&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse - 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|161&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|163&lt;br /&gt;
|589&lt;br /&gt;
|A_SkullPop - 80816&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|166&lt;br /&gt;
|&lt;br /&gt;
|A_AddPlayerCorpse 81168&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|167&lt;br /&gt;
|&lt;br /&gt;
|A_FlameSnd - 81264&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|170&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|171&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|172&lt;br /&gt;
|615&lt;br /&gt;
|A_CheckBurnGone - 81040&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|173&lt;br /&gt;
|622&lt;br /&gt;
|A_CheckSkullDone - 81008&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|174&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|175&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|176&lt;br /&gt;
|&lt;br /&gt;
|A_CheckSkullFloor - 80976&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|177&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|A_ChicChase - 74064&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|A_ChicLook - 74032&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|183&lt;br /&gt;
|&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|184&lt;br /&gt;
|&lt;br /&gt;
|A_Feathers - 74144&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|185&lt;br /&gt;
|&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|186&lt;br /&gt;
|639&lt;br /&gt;
|A_ChicAttack - 73952&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|187&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|188&lt;br /&gt;
|637&lt;br /&gt;
|A_ChicPain - 74096&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|189&lt;br /&gt;
|&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|190&lt;br /&gt;
|661&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|191&lt;br /&gt;
|660&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|192&lt;br /&gt;
|659&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|193&lt;br /&gt;
|658&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|657&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MUMMY_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|195&lt;br /&gt;
|667&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|196&lt;br /&gt;
|666&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|197&lt;br /&gt;
|665&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|198&lt;br /&gt;
|664&lt;br /&gt;
|A_MummyAttack - 74352&lt;br /&gt;
|S_MUMMY_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|199&lt;br /&gt;
|663&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMY_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|200&lt;br /&gt;
|662&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MUMMY_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|201&lt;br /&gt;
|673&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MUMMY_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|202&lt;br /&gt;
|671&lt;br /&gt;
|A_MummyAttack2 - 74464&lt;br /&gt;
|S_MUMMYL_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|203&lt;br /&gt;
|670&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|669&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|205&lt;br /&gt;
|668&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MUMMYL_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|206&lt;br /&gt;
|678&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MUMMY_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|207&lt;br /&gt;
|676&lt;br /&gt;
|A_MummySoul - 74592&lt;br /&gt;
|S_MUMMY_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|208&lt;br /&gt;
|675&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MUMMY_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|209&lt;br /&gt;
|692&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_4&lt;br /&gt;
|-&lt;br /&gt;
|210&lt;br /&gt;
|690&lt;br /&gt;
|A_MummyFX1Seek - 74560&lt;br /&gt;
|S_MUMMYFX1_2&lt;br /&gt;
|-&lt;br /&gt;
|211&lt;br /&gt;
|689&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_MUMMYFX1_1&lt;br /&gt;
|-&lt;br /&gt;
|212&lt;br /&gt;
|698&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|213&lt;br /&gt;
|697&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_BEAST_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|214&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|215&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|216&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|217&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|218&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|219&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|220&lt;br /&gt;
|&lt;br /&gt;
|A_BeastPuff - 73056&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|221&lt;br /&gt;
|759&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|758&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SNAKE_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|223&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|224&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|226&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|227&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|228&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|229&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|230&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|231&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|232&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|233&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|234&lt;br /&gt;
|&lt;br /&gt;
|A_SnakeAttack - 78112&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|235&lt;br /&gt;
|776&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SNAKE_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|236&lt;br /&gt;
|774&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SNAKE_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|237&lt;br /&gt;
|772&lt;br /&gt;
|A_SnakeAttack2 - 78192&lt;br /&gt;
|S_SNAKE_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|238&lt;br /&gt;
|781&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SNAKE_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|239&lt;br /&gt;
|802&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_HEAD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|240&lt;br /&gt;
|801&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_HEAD_FLOAT&lt;br /&gt;
|-&lt;br /&gt;
|241&lt;br /&gt;
|800&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_HEAD_LOOK&lt;br /&gt;
|-&lt;br /&gt;
|242&lt;br /&gt;
|807&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_HEAD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|243&lt;br /&gt;
|805&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_HEAD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|244&lt;br /&gt;
|803&lt;br /&gt;
|A_HeadAttack - 77296&lt;br /&gt;
|S_HEAD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|245&lt;br /&gt;
|812&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_HEAD_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|246&lt;br /&gt;
|810&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_HEAD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|247&lt;br /&gt;
|816&lt;br /&gt;
|A_HeadIceImpact - 77888&lt;br /&gt;
|S_HEADFXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|248&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|A_HeadFireGrow - 78048&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|A_WhirlwindSeek - 77728&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|851&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|255&lt;br /&gt;
|850&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|256&lt;br /&gt;
|849&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|257&lt;br /&gt;
|848&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_CLINK_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|258&lt;br /&gt;
|856&lt;br /&gt;
|A_ClinkAttack - 78272&lt;br /&gt;
|S_CLINK_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|259&lt;br /&gt;
|855&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|260&lt;br /&gt;
|854&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_CLINK_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|261&lt;br /&gt;
|853&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|262&lt;br /&gt;
|852&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_CLINK_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|263&lt;br /&gt;
|862&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_CLINK_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|264&lt;br /&gt;
|861&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_CLINK_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|265&lt;br /&gt;
|858&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_CLINK_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|266&lt;br /&gt;
|870&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|267&lt;br /&gt;
|869&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|268&lt;br /&gt;
|868&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|269&lt;br /&gt;
|867&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|270&lt;br /&gt;
|866&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_WIZARD_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|271&lt;br /&gt;
|873&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK6&lt;br /&gt;
|-&lt;br /&gt;
|272&lt;br /&gt;
|872&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK5&lt;br /&gt;
|-&lt;br /&gt;
|273&lt;br /&gt;
|970&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_KNIGHT_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|976&lt;br /&gt;
|A_ContMobjSound - 111056&lt;br /&gt;
|S_SPINAXE1&lt;br /&gt;
|-&lt;br /&gt;
|275&lt;br /&gt;
|983&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE2&lt;br /&gt;
|-&lt;br /&gt;
|276&lt;br /&gt;
|982&lt;br /&gt;
|A_DripBlood - 72592&lt;br /&gt;
|S_REDAXE1&lt;br /&gt;
|-&lt;br /&gt;
|277&lt;br /&gt;
|993&lt;br /&gt;
|A_Sor1Pain - 74640&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|278&lt;br /&gt;
|992&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|279&lt;br /&gt;
|991&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|280&lt;br /&gt;
|990&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|281&lt;br /&gt;
|989&lt;br /&gt;
|A_Sor1Chase - 74688&lt;br /&gt;
|S_SRCR1_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|282&lt;br /&gt;
|988&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|283&lt;br /&gt;
|987&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_SRCR1_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|284&lt;br /&gt;
|999&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|285&lt;br /&gt;
|998&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|286&lt;br /&gt;
|997&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|287&lt;br /&gt;
|996&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|288&lt;br /&gt;
|995&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|994&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SRCR1_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|290&lt;br /&gt;
|1002&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_SRCR1_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|291&lt;br /&gt;
|1000&lt;br /&gt;
|A_Srcr1Attack - 74736&lt;br /&gt;
|S_SRCR1_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|292&lt;br /&gt;
|1008&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|293&lt;br /&gt;
|1017&lt;br /&gt;
|A_SorcererRise - 75024&lt;br /&gt;
|S_SRCR1_DIE17&lt;br /&gt;
|-&lt;br /&gt;
|294&lt;br /&gt;
|1012&lt;br /&gt;
|A_SorZap - 76000&lt;br /&gt;
|S_SRCR1_DIE12&lt;br /&gt;
|-&lt;br /&gt;
|295&lt;br /&gt;
|876&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|296&lt;br /&gt;
|875&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK8&lt;br /&gt;
|-&lt;br /&gt;
|297&lt;br /&gt;
|874&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_WIZARD_WALK7&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|882&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK7&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|881&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|300&lt;br /&gt;
|880&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|301&lt;br /&gt;
|879&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|302&lt;br /&gt;
|878&lt;br /&gt;
|A_WizAtk1 - 78384&lt;br /&gt;
|S_WIZARD_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|303&lt;br /&gt;
|877&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|304&lt;br /&gt;
|888&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_WIZARD_DIE2&lt;br /&gt;
|-&lt;br /&gt;
|305&lt;br /&gt;
|887&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|306&lt;br /&gt;
|886&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_WIZARD_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|307&lt;br /&gt;
|885&lt;br /&gt;
|A_GhostOff - 78368&lt;br /&gt;
|S_WIZARD_PAIN1&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|884&lt;br /&gt;
|A_WizAtk3 - 78448&lt;br /&gt;
|S_WIZARD_ATK9&lt;br /&gt;
|-&lt;br /&gt;
|309&lt;br /&gt;
|883&lt;br /&gt;
|A_WizAtk2 - 78416&lt;br /&gt;
|S_WIZARD_ATK8&lt;br /&gt;
|-&lt;br /&gt;
|310&lt;br /&gt;
|891&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_WIZARD_DIE5&lt;br /&gt;
|-&lt;br /&gt;
|311&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|312&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|313&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|314&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|315&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|316&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|318&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|320&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|322&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|323&lt;br /&gt;
|918&lt;br /&gt;
|A_ImpMsAttack - 73248&lt;br /&gt;
|S_IMP_MSATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|324&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|325&lt;br /&gt;
|916&lt;br /&gt;
|A_ImpMeAttack - 73168&lt;br /&gt;
|S_IMP_MEATK3&lt;br /&gt;
|-&lt;br /&gt;
|326&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|328&lt;br /&gt;
|925&lt;br /&gt;
|A_ImpMsAttack2 - 73456&lt;br /&gt;
|S_IMP_MSATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|329&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|331&lt;br /&gt;
|930&lt;br /&gt;
|A_ImpXDeath1 - 73600&lt;br /&gt;
|S_IMP_XDIE1&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|928&lt;br /&gt;
|A_ImpDeath - 73552&lt;br /&gt;
|S_IMP_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|333&lt;br /&gt;
|927&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_IMP_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|334&lt;br /&gt;
|936&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_IMP_CRASH2&lt;br /&gt;
|-&lt;br /&gt;
|335&lt;br /&gt;
|935&lt;br /&gt;
|A_ImpExplode - 72880&lt;br /&gt;
|S_IMP_CRASH1&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|933&lt;br /&gt;
|A_ImpXDeath2 - 73648&lt;br /&gt;
|S_IMP_XDIE4&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|338&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|341&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|342&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|343&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|344&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|968&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_KNIGHT_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|346&lt;br /&gt;
|966&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK6&lt;br /&gt;
|-&lt;br /&gt;
|347&lt;br /&gt;
|965&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK5&lt;br /&gt;
|-&lt;br /&gt;
|348&lt;br /&gt;
|964&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_KNIGHT_ATK4&lt;br /&gt;
|-&lt;br /&gt;
|349&lt;br /&gt;
|963&lt;br /&gt;
|A_KnightAttack - 72736&lt;br /&gt;
|S_KNIGHT_ATK3&lt;br /&gt;
|-&lt;br /&gt;
|350&lt;br /&gt;
|972&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_KNIGHT_DIE4&lt;br /&gt;
|-&lt;br /&gt;
|351&lt;br /&gt;
|1028&lt;br /&gt;
|A_SorRise - 76032&lt;br /&gt;
|S_SOR2_RISE3&lt;br /&gt;
|-&lt;br /&gt;
|352&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|356&lt;br /&gt;
|1032&lt;br /&gt;
|A_SorSightSnd - 76160&lt;br /&gt;
|S_SOR2_RISE7&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|1042&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_SOR2_ATK2&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|1041&lt;br /&gt;
|A_Srcr2Decide - 75360&lt;br /&gt;
|S_SOR2_ATK1&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|1040&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_SOR2_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|360&lt;br /&gt;
|1038&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|361&lt;br /&gt;
|1037&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_SOR2_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|1043&lt;br /&gt;
|A_Srcr2Attack  - 75440&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|1052&lt;br /&gt;
|A_SorDSph - 76064&lt;br /&gt;
|S_SOR2_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|364&lt;br /&gt;
|1050&lt;br /&gt;
|A_Sor2DthInit - 75936&lt;br /&gt;
|S_SOR2_DIE1&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|1060&lt;br /&gt;
|A_SorDBon - 76128&lt;br /&gt;
|S_SOR2_DIE11&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|1059&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_SOR2_DIE10&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|1056&lt;br /&gt;
|A_SorDExp - 76096&lt;br /&gt;
|S_SOR2_DIE7&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|1055&lt;br /&gt;
|A_Sor2DthLoop - 75968&lt;br /&gt;
|S_SOR2_DIE6&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|1066&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_2&lt;br /&gt;
|-&lt;br /&gt;
|370&lt;br /&gt;
|1065&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_1&lt;br /&gt;
|-&lt;br /&gt;
|371&lt;br /&gt;
|1064&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_SOR2_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|1068&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_SOR2FXI1_1&lt;br /&gt;
|-&lt;br /&gt;
|373&lt;br /&gt;
|1067&lt;br /&gt;
|A_BlueSpark - 75664&lt;br /&gt;
|S_SOR2FX1_3&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|1078&lt;br /&gt;
|A_GenWizard - 75776&lt;br /&gt;
|S_SOR2FX2_2&lt;br /&gt;
|-&lt;br /&gt;
|375&lt;br /&gt;
|1091&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK1&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|1097&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_1&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|1096&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK4&lt;br /&gt;
|-&lt;br /&gt;
|378&lt;br /&gt;
|1095&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK3&lt;br /&gt;
|-&lt;br /&gt;
|379&lt;br /&gt;
|1094&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK2&lt;br /&gt;
|-&lt;br /&gt;
|380&lt;br /&gt;
|1093&lt;br /&gt;
|A_Chase - 71920&lt;br /&gt;
|S_MNTR_WALK1&lt;br /&gt;
|-&lt;br /&gt;
|381&lt;br /&gt;
|1092&lt;br /&gt;
|A_Look - 71792&lt;br /&gt;
|S_MNTR_LOOK2&lt;br /&gt;
|-&lt;br /&gt;
|382&lt;br /&gt;
|1103&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_1&lt;br /&gt;
|-&lt;br /&gt;
|383&lt;br /&gt;
|1102&lt;br /&gt;
|A_MinotaurAtk2 - 76656&lt;br /&gt;
|S_MNTR_ATK2_3&lt;br /&gt;
|-&lt;br /&gt;
|384&lt;br /&gt;
|1101&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK2_2&lt;br /&gt;
|-&lt;br /&gt;
|385&lt;br /&gt;
|1100&lt;br /&gt;
|A_MinotaurDecide - 76304&lt;br /&gt;
|S_MNTR_ATK2_1&lt;br /&gt;
|-&lt;br /&gt;
|386&lt;br /&gt;
|1099&lt;br /&gt;
|A_MinotaurAtk1 - 76192&lt;br /&gt;
|S_MNTR_ATK1_3&lt;br /&gt;
|-&lt;br /&gt;
|387&lt;br /&gt;
|1098&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK1_2&lt;br /&gt;
|-&lt;br /&gt;
|388&lt;br /&gt;
|1109&lt;br /&gt;
|A_Pain - 72560&lt;br /&gt;
|S_MNTR_PAIN2&lt;br /&gt;
|-&lt;br /&gt;
|389&lt;br /&gt;
|1107&lt;br /&gt;
|A_MinotaurCharge - 76576&lt;br /&gt;
|S_MNTR_ATK4_1&lt;br /&gt;
|-&lt;br /&gt;
|390&lt;br /&gt;
|1105&lt;br /&gt;
|A_MinotaurAtk3 - 76896&lt;br /&gt;
|S_MNTR_ATK3_3&lt;br /&gt;
|-&lt;br /&gt;
|391&lt;br /&gt;
|1104&lt;br /&gt;
|A_FaceTarget - 72464&lt;br /&gt;
|S_MNTR_ATK3_2&lt;br /&gt;
|-&lt;br /&gt;
|392&lt;br /&gt;
|1112&lt;br /&gt;
|A_Scream - 78640&lt;br /&gt;
|S_MNTR_DIE3&lt;br /&gt;
|-&lt;br /&gt;
|393&lt;br /&gt;
|1117&lt;br /&gt;
|A_NoBlocking - 78896&lt;br /&gt;
|S_MNTR_DIE8&lt;br /&gt;
|-&lt;br /&gt;
|394&lt;br /&gt;
|1124&lt;br /&gt;
|A_BossDeath - 79872&lt;br /&gt;
|S_MNTR_DIE15&lt;br /&gt;
|-&lt;br /&gt;
|395&lt;br /&gt;
|1134&lt;br /&gt;
|A_Explode - 79312&lt;br /&gt;
|S_MNTRFXI2_1&lt;br /&gt;
|-&lt;br /&gt;
|396&lt;br /&gt;
|1133&lt;br /&gt;
|A_MntrFloorFire - 77072&lt;br /&gt;
|S_MNTRFX2_1&lt;br /&gt;
|-&lt;br /&gt;
|397&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|398&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Environment sounds&lt;br /&gt;
|-&lt;br /&gt;
|399&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|-&lt;br /&gt;
|400&lt;br /&gt;
|Invalid&lt;br /&gt;
|Invalid&lt;br /&gt;
|Do not alter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10344</id>
		<title>Heretic</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10344"/>
		<updated>2022-04-06T16:57:27Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: connect Hexen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Heretic]] is a fantasy first-person shooter based on the engine of [[Doom]].  Its sequel is [[Hexen]].  Many utilities that support Doom can be used for Heretic as well.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = DeuTex&lt;br /&gt;
| Platform = DOS/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = &lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/sound_edit/midi2mus MIDI2MUS]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Occasionally, some MIDI files may produce conversion errors.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/exe_edit/hhe11 HHE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = Edit&lt;br /&gt;
| notes = Can be made to work with any EXE revision via INI adjustments, but some labels are accurate only for v1.0.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Loading and exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
There is extensive information already on the [https://doomwiki.org Doom wiki].&lt;br /&gt;
&lt;br /&gt;
Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Heretic List of bugs present in the official DOS versions of Heretic]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Mods&amp;diff=10334</id>
		<title>Hexen/Mods</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Mods&amp;diff=10334"/>
		<updated>2022-04-02T00:40:28Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Created page with &amp;quot;Too many mods exist to list every one here. Sites to check include: * [https://www.doomworld.com/idgames/levels/hexen/ Idgames Hexen section] * [https://www.wad-archive.com/Ca...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Too many mods exist to list every one here. Sites to check include:&lt;br /&gt;
* [https://www.doomworld.com/idgames/levels/hexen/ Idgames Hexen section]&lt;br /&gt;
* [https://www.wad-archive.com/Category/WADs/Game/Hexen WAD-Archive Hexen section]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Mods&amp;diff=10327</id>
		<title>Heretic/Mods</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Mods&amp;diff=10327"/>
		<updated>2022-04-01T12:06:51Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Mod links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Too many mods exist to list every one here.  Sites to check include:&lt;br /&gt;
&lt;br /&gt;
* [https://www.doomworld.com/idgames/levels/heretic/ Idgames Heretic section]&lt;br /&gt;
* [https://www.wad-archive.com/Category/WADs/Game/Heretic WAD-Archive Heretic section]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10326</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10326"/>
		<updated>2022-04-01T11:38:43Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Polyobjects */ A little cleanup and technique clarification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (trigger type 1) and expect it to work without incident. The Polyobj_ExplicitLine (trigger type 5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
&lt;br /&gt;
====Polyobject movement====&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.  To do this, set the clockwise-moving door as a mirror of the counter-clockwise-moving door, and have all trigger lines that operate the doors set to activate the counter-clockwise-moving door.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;br /&gt;
&lt;br /&gt;
=== Spawnables ===&lt;br /&gt;
The following objects can be spawned by script and by the destruction of certain items. DEFS.ACS (included via COMMON.ACS) gives names to them for when you are spawning via script, but for appearing out of breakable objects you can only refer to them by number. The names are generally meant to be easy mnemonics for the object spawned, but some of them are a bit obscure.&lt;br /&gt;
&lt;br /&gt;
Spawned objects in vanilla Hexen cannot be assigned TIDs. This is particularly significant for the &amp;quot;thrust spike&amp;quot; objects which can be spawned, but not subsequently activated/deactivated.&lt;br /&gt;
&lt;br /&gt;
In scripts, these things can be created using the &#039;&#039;&#039;Thing_Spawn&#039;&#039;&#039;, &#039;&#039;&#039;Thing_SpawnNoFog&#039;&#039;&#039;, &#039;&#039;&#039;Thing_Projectile&#039;&#039;&#039; and &#039;&#039;&#039;Thing_ProjectileGravity&#039;&#039;&#039; functions. The number of a particular type of thing currently on the map can also be retrieved using the &#039;&#039;&#039;thingcount&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
You may also place any of these spawnable objects inside some types of breakable scenery. To have an item spawn out of a breakable object (pots, decorative armor), you should leave the breakable object&#039;s special at 0 but set its first argument to the spawn number of the item you want it to contain. Certain objects do not behave logically when spawned this way; for instance, projectiles (such as those listed here in the &amp;quot;trap&amp;quot; category), will hang inertly in place and cannot cause damage. Objects that have a significant angle property (e.g. monsters) will spawn facing east.&lt;br /&gt;
&lt;br /&gt;
The pairs 66/97 and 67/99 (permanent small flames and permanent large flames) are redundant spawn numbers. 66 and 97 both spawn the same permanent small flame, while 67 and 99 both spawn the same permanent large flame. Use whichever one you prefer, but ideally pick one or the other and be consistent about it.&lt;br /&gt;
&lt;br /&gt;
The pair of sapphire planets, and the pair of emerald planets, are not interchangeable despite looking identical, and there are actually separate sprite entries for each of them. Puzzle slots will demand a particular sapphire or emerald and won&#039;t accept the other one.&lt;br /&gt;
&lt;br /&gt;
The phantom &amp;quot;mash&amp;quot; monsters are special versions of certain normal monsters that are translucent and do not leave corpses when killed. In the core levels, they appear only while fighting Korax, and are spawned by one of his battle scripts.&lt;br /&gt;
&lt;br /&gt;
Using out-of-bounds spawn numbers is not recommended. It might spawn something, but is unlikely to be consistent across varying ports (even vanilla vs. chocolate). The defined numbers range from 0 to 108. Things that do not appear in this table cannot be spawned without port extensions; notably, the Firestorm and Arc of Death weapons and the Brown Chaos Serpent enemy do not have spawn numbers, and many monster projectiles cannot be fired from scripted traps.&lt;br /&gt;
&lt;br /&gt;
==== Table of spawnable things ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Thing&lt;br /&gt;
!DEFS name&lt;br /&gt;
!Number&lt;br /&gt;
!Category&lt;br /&gt;
|-&lt;br /&gt;
|Nothing&lt;br /&gt;
|T_NONE&lt;br /&gt;
|0&lt;br /&gt;
|Nothing&lt;br /&gt;
|-&lt;br /&gt;
|Centaur&lt;br /&gt;
|T_CENTAUR&lt;br /&gt;
|1&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Slaughtaur&lt;br /&gt;
|T_CENTAURLEADER&lt;br /&gt;
|2&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Green Chaos Serpent&lt;br /&gt;
|T_DEMON&lt;br /&gt;
|3&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Ettin&lt;br /&gt;
|T_ETTIN&lt;br /&gt;
|4&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Afrit&lt;br /&gt;
|T_FIREGARGOYLE&lt;br /&gt;
|5&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker&lt;br /&gt;
|T_WATERLURKER&lt;br /&gt;
|6&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker Boss&lt;br /&gt;
|T_WATERLURKERLEADER&lt;br /&gt;
|7&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver&lt;br /&gt;
|T_WRAITH&lt;br /&gt;
|8&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver (buried)&lt;br /&gt;
|T_WRAITHBURIED&lt;br /&gt;
|9&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Lava ball projectile&lt;br /&gt;
|T_FIREBALL1&lt;br /&gt;
|10&lt;br /&gt;
|Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue mana&lt;br /&gt;
|T_MANA1&lt;br /&gt;
|11&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Green mana&lt;br /&gt;
|T_MANA2&lt;br /&gt;
|12&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Boots of Speed                    &lt;br /&gt;
| T_ITEMBOOTS         &lt;br /&gt;
| 13     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator                       &lt;br /&gt;
| T_ITEMEGG           &lt;br /&gt;
| 14     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Wings of Wrath                    &lt;br /&gt;
| T_ITEMFLIGHT       &lt;br /&gt;
| 15     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Servant                     &lt;br /&gt;
| T_ITEMSUMMON        &lt;br /&gt;
| 16     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Banishment Device                 &lt;br /&gt;
| T_ITEMTPORTOTHER    &lt;br /&gt;
| 17     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Device                     &lt;br /&gt;
| T_ITEMTELEPORT      &lt;br /&gt;
| 18     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Bishop                       &lt;br /&gt;
| T_BISHOP            &lt;br /&gt;
| 19     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Wendigo                           &lt;br /&gt;
| T_ICEGOLEM          &lt;br /&gt;
| 20     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Magic Bridge                      &lt;br /&gt;
| T_BRIDGE            &lt;br /&gt;
| 21     &lt;br /&gt;
| Platform&lt;br /&gt;
|-&lt;br /&gt;
|Dragonskin Bracers                &lt;br /&gt;
|T_DRAGONSKINBRACERS&lt;br /&gt;
|22     &lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Vial                      &lt;br /&gt;
| T_ITEMHEALTHPOTION &lt;br /&gt;
| 23    &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Quartz Flask                      &lt;br /&gt;
| T_ITEMHEALTHFLASK   &lt;br /&gt;
| 24     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Mystic Urn                        &lt;br /&gt;
| T_ITEMHEALTHFULL   &lt;br /&gt;
| 25     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Krater of Might                   &lt;br /&gt;
| T_ITEMBOOSTMANA     &lt;br /&gt;
| 26     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Timon&#039;s Axe                       &lt;br /&gt;
| T_FIGHTERAXE        &lt;br /&gt;
| 27     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Hammer of Retribution             &lt;br /&gt;
| T_FIGHTERHAMMER     &lt;br /&gt;
| 28     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (1)           &lt;br /&gt;
| T_FIGHTERSWORD1     &lt;br /&gt;
| 29     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (2)            &lt;br /&gt;
| T_FIGHTERSWORD2     &lt;br /&gt;
| 30     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (3)           &lt;br /&gt;
| T_FIGHTERSWORD3     &lt;br /&gt;
| 31     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Serpent Staff                     &lt;br /&gt;
| T_CLERICSTAFF       &lt;br /&gt;
| 32     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (1)        &lt;br /&gt;
| T_CLERICHOLY1       &lt;br /&gt;
| 33     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (2)        &lt;br /&gt;
| T_CLERICHOLY2       &lt;br /&gt;
| 34     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (3)        &lt;br /&gt;
| T_CLERICHOLY3       &lt;br /&gt;
| 35     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Frost Shards                      &lt;br /&gt;
| T_MAGESHARDS        &lt;br /&gt;
| 36     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (1)       &lt;br /&gt;
| T_MAGESTAFF1        &lt;br /&gt;
| 37     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (2)       &lt;br /&gt;
| T_MAGESTAFF2        &lt;br /&gt;
| 38     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (3)       &lt;br /&gt;
| T_MAGESTAFF3       &lt;br /&gt;
| 39     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator trap projectile        &lt;br /&gt;
| T_MORPHBLAST        &lt;br /&gt;
| 40     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (larger)              &lt;br /&gt;
| T_ROCK1             &lt;br /&gt;
| 41     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (medium)              &lt;br /&gt;
| T_ROCK2             &lt;br /&gt;
| 42     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (smaller)             &lt;br /&gt;
| T_ROCK3             &lt;br /&gt;
| 43     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (1)  &lt;br /&gt;
| T_DIRT1             &lt;br /&gt;
| 44     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (2)  &lt;br /&gt;
| T_DIRT2            &lt;br /&gt;
| 45     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (3)  &lt;br /&gt;
| T_DIRT3             &lt;br /&gt;
| 46     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small grey pebble                 &lt;br /&gt;
| T_DIRT4             &lt;br /&gt;
| 47     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green particle                    &lt;br /&gt;
| T_DIRT5             &lt;br /&gt;
| 48     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown particle                    &lt;br /&gt;
| T_DIRT6             &lt;br /&gt;
| 49     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Arrow trap projectile             &lt;br /&gt;
| T_ARROW             &lt;br /&gt;
| 50     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile              &lt;br /&gt;
| T_DART              &lt;br /&gt;
| 51     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile (poisoned)   &lt;br /&gt;
| T_POISONDART        &lt;br /&gt;
| 52     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Spiked ball projectile            &lt;br /&gt;
| T_RIPPERBALL        &lt;br /&gt;
| 53     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue glass shard                  &lt;br /&gt;
| T_STAINEDGLASS1     &lt;br /&gt;
| 54     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Yellow glass shard                &lt;br /&gt;
| T_STAINEDGLASS2     &lt;br /&gt;
| 55     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Purple glass shard                &lt;br /&gt;
| T_STAINEDGLASS3     &lt;br /&gt;
| 56     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green glass shard                 &lt;br /&gt;
| T_STAINEDGLASS4     &lt;br /&gt;
| 57     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Gold glass shard                  &lt;br /&gt;
| T_STAINEDGLASS5     &lt;br /&gt;
| 58     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small blue glass shard            &lt;br /&gt;
| T_STAINEDGLASS6     &lt;br /&gt;
| 59     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (1)      &lt;br /&gt;
| T_STAINEDGLASS7     &lt;br /&gt;
| 60     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (2)      &lt;br /&gt;
| T_STAINEDGLASS8     &lt;br /&gt;
| 61     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small purple glass shard          &lt;br /&gt;
| T_STAINEDGLASS9     &lt;br /&gt;
| 62     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small green glass shard           &lt;br /&gt;
| T_STAINEDGLASS0     &lt;br /&gt;
| 63     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Serrated blade projectile         &lt;br /&gt;
| T_BLADE             &lt;br /&gt;
| 64     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Frost shard projectile            &lt;br /&gt;
| T_ICESHARD          &lt;br /&gt;
| 65     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Small flame on ground             &lt;br /&gt;
| T_FLAME_SMALL       &lt;br /&gt;
| 66     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Large flame on ground             &lt;br /&gt;
| T_FLAME_LARGE       &lt;br /&gt;
| 67     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Mesh Armor                        &lt;br /&gt;
| T_MESHARMOR         &lt;br /&gt;
| 68     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Falcon Shield                     &lt;br /&gt;
| T_FALCONSHIELD      &lt;br /&gt;
| 69     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Platinum Helm                     &lt;br /&gt;
| T_PLATINUMHELM      &lt;br /&gt;
| 70     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Amulet of Warding                 &lt;br /&gt;
| T_AMULETOFWARDING   &lt;br /&gt;
| 71     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Flechette                         &lt;br /&gt;
| T_ITEMFLECHETTE     &lt;br /&gt;
| 72     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Torch (item)                      &lt;br /&gt;
| T_ITEMTORCH         &lt;br /&gt;
| 73     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Disc of Repulsion                 &lt;br /&gt;
| T_ITEMREPULSION     &lt;br /&gt;
| 74     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Combined Mana                     &lt;br /&gt;
| T_MANA3             &lt;br /&gt;
| 75     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Yorick&#039;s Skull                    &lt;br /&gt;
| T_PUZZSKULL         &lt;br /&gt;
| 76     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Heart of D&#039;sparil                 &lt;br /&gt;
| T_PUZZGEMBIG        &lt;br /&gt;
| 77     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Ruby Planet                       &lt;br /&gt;
| T_PUZZGEMRED        &lt;br /&gt;
| 78     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (1)                &lt;br /&gt;
| T_PUZZGEMGREEN1     &lt;br /&gt;
| 79     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (2)                &lt;br /&gt;
| T_PUZZGEMGREEN2     &lt;br /&gt;
| 80     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (1)               &lt;br /&gt;
| T_PUZZGEMBLUE1      &lt;br /&gt;
| 81     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (2)               &lt;br /&gt;
| T_PUZZGEMBLUE2      &lt;br /&gt;
| 82     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Daemon Codex (&amp;quot;O&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK1         &lt;br /&gt;
| 83     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Liber Oscura (&amp;quot;A&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK2         &lt;br /&gt;
| 84     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Steel Key                         &lt;br /&gt;
| T_METALKEY          &lt;br /&gt;
| 85     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Cave Key                          &lt;br /&gt;
| T_SMALLMETALKEY     &lt;br /&gt;
| 86     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Axe Key                           &lt;br /&gt;
| T_AXEKEY            &lt;br /&gt;
| 87     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Fire Key                          &lt;br /&gt;
| T_FIREKEY           &lt;br /&gt;
| 88     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Key                       &lt;br /&gt;
| T_GREENKEY          &lt;br /&gt;
| 89     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Key                       &lt;br /&gt;
| T_MACEKEY          &lt;br /&gt;
| 90     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Silver Key                       &lt;br /&gt;
| T_SILVERKEY         &lt;br /&gt;
| 91     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Rusted Key                        &lt;br /&gt;
| T_RUSTYKEY          &lt;br /&gt;
| 92     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Horn Key                          &lt;br /&gt;
| T_HORNKEY           &lt;br /&gt;
| 93     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Swamp Key                         &lt;br /&gt;
| T_SERPENTKEY        &lt;br /&gt;
| 94     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Drop of water                     &lt;br /&gt;
| T_WATERDRIP         &lt;br /&gt;
| 95     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary small flame             &lt;br /&gt;
| T_TEMPSMALLFLAME    &lt;br /&gt;
| 96    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent small flame            &lt;br /&gt;
| T_PERMSMALLFLAME    &lt;br /&gt;
| 97     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary large flame            &lt;br /&gt;
| T_TEMPLARGEFLAME   &lt;br /&gt;
| 98   &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent large flame        &lt;br /&gt;
| T_PERMLARGEFLAME  &lt;br /&gt;
| 99  &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Green Chaos Serpent  &lt;br /&gt;
| T_DEMON_MASH &lt;br /&gt;
| 100&lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Brown Chaos Serpent &lt;br /&gt;
| T_DEMON2_MASH      &lt;br /&gt;
| 101    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Ettin                     &lt;br /&gt;
| T_ETTIN_MASH        &lt;br /&gt;
| 102    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Centaur                   &lt;br /&gt;
| T_CENTAUR_MASH      &lt;br /&gt;
| 103    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (up)                  &lt;br /&gt;
| T_THRUSTSPIKEUP     &lt;br /&gt;
| 104    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (buried)              &lt;br /&gt;
| T_THRUSTSPIKEDOWN   &lt;br /&gt;
| 105    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Reiver skin drip                  &lt;br /&gt;
| T_FLESH_DRIP1       &lt;br /&gt;
| 106    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver chainmail drip             &lt;br /&gt;
| T_FLESH_DRIP2       &lt;br /&gt;
| 107    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver spark drip                 &lt;br /&gt;
| T_SPARK_DRIP        &lt;br /&gt;
| 108    &lt;br /&gt;
| Effects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
There are two ways that Hexen can play background music: from MUS tracks in a WAD or from the Hexen CD. The majority of people (especially nowadays) probaby use the MUS soundtrack, but there are a few things that should be noted regarding the CD. Particularly, only about half of the MUS tracks have CD equivalents, and several of the CD tracks were taken by the storyline/intermission tracks (which are also used in a few levels when playing CD audio).&lt;br /&gt;
&lt;br /&gt;
There are two different methods for assigning the two different types of music. CD tracks are assigned in the MAPINFO lump with a &#039;&#039;&#039;cdtrack #&#039;&#039;&#039; key for each map where # is the CD track number. MUS tracks are assigned in the SNDINFO lump with a &#039;&#039;&#039;$MAP # track&#039;&#039;&#039; key, where # is the map number and track is the name of the MUS lump to play.&lt;br /&gt;
&lt;br /&gt;
For example, to play the Winnowing Hall music on MAP01 in the IWAD, MAPINFO includes:&lt;br /&gt;
&lt;br /&gt;
    cdtrack 13&lt;br /&gt;
&lt;br /&gt;
and SNDINFO includes:&lt;br /&gt;
&lt;br /&gt;
    $MAP 1 Winnowr&lt;br /&gt;
&lt;br /&gt;
If you wish to include a custom MUS track in a PWAD for vanilla Hexen, bear in mind that it must really be in MUS format; autoconversion of MIDI lumps was a feature added to the Doom engine after the Heretic/Hexen codebase was forked from it.&lt;br /&gt;
&lt;br /&gt;
=== CD Tracks ===&lt;br /&gt;
&lt;br /&gt;
Here are the CD tracks and their equivalent MUS name. Track 1 is the data track and should not be played as audio. There is an oddity in Deathkings, in that tracks are sometimes substituted even if the MUS track is available on the CD.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD track MUS equivalents ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Track Number&lt;br /&gt;
! MUS name&lt;br /&gt;
! Deathkings Substitution&lt;br /&gt;
|-&lt;br /&gt;
|2	          &lt;br /&gt;
| Jachr              &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|3	          &lt;br /&gt;
| Blechr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|4	          &lt;br /&gt;
| Hexen              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5	          &lt;br /&gt;
| Orb                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6	          &lt;br /&gt;
| Hall               &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7	          &lt;br /&gt;
| Chess              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8	          &lt;br /&gt;
| Cryptr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|9	          &lt;br /&gt;
| Falconr            &lt;br /&gt;
| 18 (Chap_4r), 10 (Octor)&lt;br /&gt;
|-&lt;br /&gt;
|10	          &lt;br /&gt;
| Octor              &lt;br /&gt;
| 5 (Orb)&lt;br /&gt;
|-&lt;br /&gt;
|11	          &lt;br /&gt;
| Rithmr             &lt;br /&gt;
| 19 (Fantar)&lt;br /&gt;
|-&lt;br /&gt;
|12	          &lt;br /&gt;
| Sixater            &lt;br /&gt;
| 21 (Levelr)&lt;br /&gt;
|-&lt;br /&gt;
|13	          &lt;br /&gt;
| Winnowr            &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|14	          &lt;br /&gt;
| Swampr             &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
|15	          &lt;br /&gt;
| Wutzitr            &lt;br /&gt;
| 20 (Foojar)&lt;br /&gt;
|-&lt;br /&gt;
|16	          &lt;br /&gt;
| Bonesr             &lt;br /&gt;
| 8 (Cryptr)&lt;br /&gt;
|-&lt;br /&gt;
|17	          &lt;br /&gt;
| Chap_1r            &lt;br /&gt;
| 14 (Swampr)&lt;br /&gt;
|-&lt;br /&gt;
|18	          &lt;br /&gt;
| Chap_4r            &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19	          &lt;br /&gt;
| Fantar             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20	          &lt;br /&gt;
| Foojar             &lt;br /&gt;
| 17 (Chap_1r)&lt;br /&gt;
|-&lt;br /&gt;
|21	          &lt;br /&gt;
| Levelr             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22	          &lt;br /&gt;
| Simonr             &lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CD Substitutions ===&lt;br /&gt;
&lt;br /&gt;
The omitted tracks on the CD leave fifteen MUS tracks that do not have a CD track equivalent, so you may have to select a next-best track out of the ones available on the CD. Both the original campaign and Deathkings substitute CD tracks for these missing pieces in their MAPINFO, but Deathkings substitutes them differently from the main game. &amp;quot;Chartr&amp;quot; exists in the Hexen IWAD but goes unused in both campaigns.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD missing track substitutions ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MUS name &lt;br /&gt;
! Beyond Heretic substitution &lt;br /&gt;
! Deathkings substitution&lt;br /&gt;
|-&lt;br /&gt;
| Borkr    &lt;br /&gt;
| 17 (Chap_1r)                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chap_2r  &lt;br /&gt;
|&lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|-&lt;br /&gt;
| Chap_3r&lt;br /&gt;
| 10 (Octor)                  &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Chartr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chippyr  &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Crucibr  &lt;br /&gt;
| 2 (Jachr)                   &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Deepr    &lt;br /&gt;
| 20 (Foojar)                 &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Fortr    &lt;br /&gt;
| 16 (Bonesr)                 &lt;br /&gt;
| 13 (Winnowr)&lt;br /&gt;
|-&lt;br /&gt;
| Fubasr   &lt;br /&gt;
| 6 (Hall)                    &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Grover   &lt;br /&gt;
| 5 (Orb)                     &lt;br /&gt;
| 7 (Chess)&lt;br /&gt;
|-&lt;br /&gt;
| Percr    &lt;br /&gt;
| 21 (Levelr)                 &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Secretr  &lt;br /&gt;
| 14 (Swampr)                 &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Stalkr   &lt;br /&gt;
| 9 (Falconr)                 &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
| Voidr    &lt;br /&gt;
| 19 (Fantar)                 &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|-&lt;br /&gt;
| Wobabyr  &lt;br /&gt;
| 15 (Wutzitr)                &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10307</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10307"/>
		<updated>2022-03-22T17:26:01Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Spawnables */ Format cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (1) and expect it to work without incident. The Polyobj_ExplicitLine (5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
Polyobject movement&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;br /&gt;
&lt;br /&gt;
=== Spawnables ===&lt;br /&gt;
The following objects can be spawned by script and by the destruction of certain items. DEFS.ACS (included via COMMON.ACS) gives names to them for when you are spawning via script, but for appearing out of breakable objects you can only refer to them by number. The names are generally meant to be easy mnemonics for the object spawned, but some of them are a bit obscure.&lt;br /&gt;
&lt;br /&gt;
Spawned objects in vanilla Hexen cannot be assigned TIDs. This is particularly significant for the &amp;quot;thrust spike&amp;quot; objects which can be spawned, but not subsequently activated/deactivated.&lt;br /&gt;
&lt;br /&gt;
In scripts, these things can be created using the &#039;&#039;&#039;Thing_Spawn&#039;&#039;&#039;, &#039;&#039;&#039;Thing_SpawnNoFog&#039;&#039;&#039;, &#039;&#039;&#039;Thing_Projectile&#039;&#039;&#039; and &#039;&#039;&#039;Thing_ProjectileGravity&#039;&#039;&#039; functions. The number of a particular type of thing currently on the map can also be retrieved using the &#039;&#039;&#039;thingcount&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
You may also place any of these spawnable objects inside some types of breakable scenery. To have an item spawn out of a breakable object (pots, decorative armor), you should leave the breakable object&#039;s special at 0 but set its first argument to the spawn number of the item you want it to contain. Certain objects do not behave logically when spawned this way; for instance, projectiles (such as those listed here in the &amp;quot;trap&amp;quot; category), will hang inertly in place and cannot cause damage. Objects that have a significant angle property (e.g. monsters) will spawn facing east.&lt;br /&gt;
&lt;br /&gt;
The pairs 66/97 and 67/99 (permanent small flames and permanent large flames) are redundant spawn numbers. 66 and 97 both spawn the same permanent small flame, while 67 and 99 both spawn the same permanent large flame. Use whichever one you prefer, but ideally pick one or the other and be consistent about it.&lt;br /&gt;
&lt;br /&gt;
The pair of sapphire planets, and the pair of emerald planets, are not interchangeable despite looking identical, and there are actually separate sprite entries for each of them. Puzzle slots will demand a particular sapphire or emerald and won&#039;t accept the other one.&lt;br /&gt;
&lt;br /&gt;
The phantom &amp;quot;mash&amp;quot; monsters are special versions of certain normal monsters that are translucent and do not leave corpses when killed. In the core levels, they appear only while fighting Korax, and are spawned by one of his battle scripts.&lt;br /&gt;
&lt;br /&gt;
Using out-of-bounds spawn numbers is not recommended. It might spawn something, but is unlikely to be consistent across varying ports (even vanilla vs. chocolate). The defined numbers range from 0 to 108. Things that do not appear in this table cannot be spawned without port extensions; notably, the Firestorm and Arc of Death weapons and the Brown Chaos Serpent enemy do not have spawn numbers, and many monster projectiles cannot be fired from scripted traps.&lt;br /&gt;
&lt;br /&gt;
==== Table of spawnable things ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Thing&lt;br /&gt;
!DEFS name&lt;br /&gt;
!Number&lt;br /&gt;
!Category&lt;br /&gt;
|-&lt;br /&gt;
|Nothing&lt;br /&gt;
|T_NONE&lt;br /&gt;
|0&lt;br /&gt;
|Nothing&lt;br /&gt;
|-&lt;br /&gt;
|Centaur&lt;br /&gt;
|T_CENTAUR&lt;br /&gt;
|1&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Slaughtaur&lt;br /&gt;
|T_CENTAURLEADER&lt;br /&gt;
|2&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Green Chaos Serpent&lt;br /&gt;
|T_DEMON&lt;br /&gt;
|3&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Ettin&lt;br /&gt;
|T_ETTIN&lt;br /&gt;
|4&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Afrit&lt;br /&gt;
|T_FIREGARGOYLE&lt;br /&gt;
|5&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker&lt;br /&gt;
|T_WATERLURKER&lt;br /&gt;
|6&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker Boss&lt;br /&gt;
|T_WATERLURKERLEADER&lt;br /&gt;
|7&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver&lt;br /&gt;
|T_WRAITH&lt;br /&gt;
|8&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver (buried)&lt;br /&gt;
|T_WRAITHBURIED&lt;br /&gt;
|9&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Lava ball projectile&lt;br /&gt;
|T_FIREBALL1&lt;br /&gt;
|10&lt;br /&gt;
|Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue mana&lt;br /&gt;
|T_MANA1&lt;br /&gt;
|11&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Green mana&lt;br /&gt;
|T_MANA2&lt;br /&gt;
|12&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Boots of Speed                    &lt;br /&gt;
| T_ITEMBOOTS         &lt;br /&gt;
| 13     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator                       &lt;br /&gt;
| T_ITEMEGG           &lt;br /&gt;
| 14     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Wings of Wrath                    &lt;br /&gt;
| T_ITEMFLIGHT       &lt;br /&gt;
| 15     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Servant                     &lt;br /&gt;
| T_ITEMSUMMON        &lt;br /&gt;
| 16     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Banishment Device                 &lt;br /&gt;
| T_ITEMTPORTOTHER    &lt;br /&gt;
| 17     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Device                     &lt;br /&gt;
| T_ITEMTELEPORT      &lt;br /&gt;
| 18     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Bishop                       &lt;br /&gt;
| T_BISHOP            &lt;br /&gt;
| 19     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Wendigo                           &lt;br /&gt;
| T_ICEGOLEM          &lt;br /&gt;
| 20     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Magic Bridge                      &lt;br /&gt;
| T_BRIDGE            &lt;br /&gt;
| 21     &lt;br /&gt;
| Platform&lt;br /&gt;
|-&lt;br /&gt;
|Dragonskin Bracers                &lt;br /&gt;
|T_DRAGONSKINBRACERS&lt;br /&gt;
|22     &lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Vial                      &lt;br /&gt;
| T_ITEMHEALTHPOTION &lt;br /&gt;
| 23    &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Quartz Flask                      &lt;br /&gt;
| T_ITEMHEALTHFLASK   &lt;br /&gt;
| 24     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Mystic Urn                        &lt;br /&gt;
| T_ITEMHEALTHFULL   &lt;br /&gt;
| 25     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Krater of Might                   &lt;br /&gt;
| T_ITEMBOOSTMANA     &lt;br /&gt;
| 26     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Timon&#039;s Axe                       &lt;br /&gt;
| T_FIGHTERAXE        &lt;br /&gt;
| 27     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Hammer of Retribution             &lt;br /&gt;
| T_FIGHTERHAMMER     &lt;br /&gt;
| 28     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (1)           &lt;br /&gt;
| T_FIGHTERSWORD1     &lt;br /&gt;
| 29     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (2)            &lt;br /&gt;
| T_FIGHTERSWORD2     &lt;br /&gt;
| 30     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (3)           &lt;br /&gt;
| T_FIGHTERSWORD3     &lt;br /&gt;
| 31     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Serpent Staff                     &lt;br /&gt;
| T_CLERICSTAFF       &lt;br /&gt;
| 32     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (1)        &lt;br /&gt;
| T_CLERICHOLY1       &lt;br /&gt;
| 33     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (2)        &lt;br /&gt;
| T_CLERICHOLY2       &lt;br /&gt;
| 34     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (3)        &lt;br /&gt;
| T_CLERICHOLY3       &lt;br /&gt;
| 35     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Frost Shards                      &lt;br /&gt;
| T_MAGESHARDS        &lt;br /&gt;
| 36     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (1)       &lt;br /&gt;
| T_MAGESTAFF1        &lt;br /&gt;
| 37     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (2)       &lt;br /&gt;
| T_MAGESTAFF2        &lt;br /&gt;
| 38     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (3)       &lt;br /&gt;
| T_MAGESTAFF3       &lt;br /&gt;
| 39     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator trap projectile        &lt;br /&gt;
| T_MORPHBLAST        &lt;br /&gt;
| 40     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (larger)              &lt;br /&gt;
| T_ROCK1             &lt;br /&gt;
| 41     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (medium)              &lt;br /&gt;
| T_ROCK2             &lt;br /&gt;
| 42     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (smaller)             &lt;br /&gt;
| T_ROCK3             &lt;br /&gt;
| 43     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (1)  &lt;br /&gt;
| T_DIRT1             &lt;br /&gt;
| 44     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (2)  &lt;br /&gt;
| T_DIRT2            &lt;br /&gt;
| 45     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (3)  &lt;br /&gt;
| T_DIRT3             &lt;br /&gt;
| 46     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small grey pebble                 &lt;br /&gt;
| T_DIRT4             &lt;br /&gt;
| 47     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green particle                    &lt;br /&gt;
| T_DIRT5             &lt;br /&gt;
| 48     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown particle                    &lt;br /&gt;
| T_DIRT6             &lt;br /&gt;
| 49     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Arrow trap projectile             &lt;br /&gt;
| T_ARROW             &lt;br /&gt;
| 50     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile              &lt;br /&gt;
| T_DART              &lt;br /&gt;
| 51     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile (poisoned)   &lt;br /&gt;
| T_POISONDART        &lt;br /&gt;
| 52     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Spiked ball projectile            &lt;br /&gt;
| T_RIPPERBALL        &lt;br /&gt;
| 53     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue glass shard                  &lt;br /&gt;
| T_STAINEDGLASS1     &lt;br /&gt;
| 54     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Yellow glass shard                &lt;br /&gt;
| T_STAINEDGLASS2     &lt;br /&gt;
| 55     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Purple glass shard                &lt;br /&gt;
| T_STAINEDGLASS3     &lt;br /&gt;
| 56     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green glass shard                 &lt;br /&gt;
| T_STAINEDGLASS4     &lt;br /&gt;
| 57     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Gold glass shard                  &lt;br /&gt;
| T_STAINEDGLASS5     &lt;br /&gt;
| 58     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small blue glass shard            &lt;br /&gt;
| T_STAINEDGLASS6     &lt;br /&gt;
| 59     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (1)      &lt;br /&gt;
| T_STAINEDGLASS7     &lt;br /&gt;
| 60     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (2)      &lt;br /&gt;
| T_STAINEDGLASS8     &lt;br /&gt;
| 61     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small purple glass shard          &lt;br /&gt;
| T_STAINEDGLASS9     &lt;br /&gt;
| 62     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small green glass shard           &lt;br /&gt;
| T_STAINEDGLASS0     &lt;br /&gt;
| 63     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Serrated blade projectile         &lt;br /&gt;
| T_BLADE             &lt;br /&gt;
| 64     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Frost shard projectile            &lt;br /&gt;
| T_ICESHARD          &lt;br /&gt;
| 65     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Small flame on ground             &lt;br /&gt;
| T_FLAME_SMALL       &lt;br /&gt;
| 66     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Large flame on ground             &lt;br /&gt;
| T_FLAME_LARGE       &lt;br /&gt;
| 67     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Mesh Armor                        &lt;br /&gt;
| T_MESHARMOR         &lt;br /&gt;
| 68     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Falcon Shield                     &lt;br /&gt;
| T_FALCONSHIELD      &lt;br /&gt;
| 69     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Platinum Helm                     &lt;br /&gt;
| T_PLATINUMHELM      &lt;br /&gt;
| 70     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Amulet of Warding                 &lt;br /&gt;
| T_AMULETOFWARDING   &lt;br /&gt;
| 71     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Flechette                         &lt;br /&gt;
| T_ITEMFLECHETTE     &lt;br /&gt;
| 72     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Torch (item)                      &lt;br /&gt;
| T_ITEMTORCH         &lt;br /&gt;
| 73     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Disc of Repulsion                 &lt;br /&gt;
| T_ITEMREPULSION     &lt;br /&gt;
| 74     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Combined Mana                     &lt;br /&gt;
| T_MANA3             &lt;br /&gt;
| 75     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Yorick&#039;s Skull                    &lt;br /&gt;
| T_PUZZSKULL         &lt;br /&gt;
| 76     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Heart of D&#039;sparil                 &lt;br /&gt;
| T_PUZZGEMBIG        &lt;br /&gt;
| 77     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Ruby Planet                       &lt;br /&gt;
| T_PUZZGEMRED        &lt;br /&gt;
| 78     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (1)                &lt;br /&gt;
| T_PUZZGEMGREEN1     &lt;br /&gt;
| 79     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (2)                &lt;br /&gt;
| T_PUZZGEMGREEN2     &lt;br /&gt;
| 80     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (1)               &lt;br /&gt;
| T_PUZZGEMBLUE1      &lt;br /&gt;
| 81     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (2)               &lt;br /&gt;
| T_PUZZGEMBLUE2      &lt;br /&gt;
| 82     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Daemon Codex (&amp;quot;O&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK1         &lt;br /&gt;
| 83     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Liber Oscura (&amp;quot;A&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK2         &lt;br /&gt;
| 84     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Steel Key                         &lt;br /&gt;
| T_METALKEY          &lt;br /&gt;
| 85     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Cave Key                          &lt;br /&gt;
| T_SMALLMETALKEY     &lt;br /&gt;
| 86     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Axe Key                           &lt;br /&gt;
| T_AXEKEY            &lt;br /&gt;
| 87     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Fire Key                          &lt;br /&gt;
| T_FIREKEY           &lt;br /&gt;
| 88     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Key                       &lt;br /&gt;
| T_GREENKEY          &lt;br /&gt;
| 89     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Key                       &lt;br /&gt;
| T_MACEKEY          &lt;br /&gt;
| 90     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Silver Key                       &lt;br /&gt;
| T_SILVERKEY         &lt;br /&gt;
| 91     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Rusted Key                        &lt;br /&gt;
| T_RUSTYKEY          &lt;br /&gt;
| 92     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Horn Key                          &lt;br /&gt;
| T_HORNKEY           &lt;br /&gt;
| 93     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Swamp Key                         &lt;br /&gt;
| T_SERPENTKEY        &lt;br /&gt;
| 94     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Drop of water                     &lt;br /&gt;
| T_WATERDRIP         &lt;br /&gt;
| 95     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary small flame             &lt;br /&gt;
| T_TEMPSMALLFLAME    &lt;br /&gt;
| 96    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent small flame            &lt;br /&gt;
| T_PERMSMALLFLAME    &lt;br /&gt;
| 97     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary large flame            &lt;br /&gt;
| T_TEMPLARGEFLAME   &lt;br /&gt;
| 98   &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent large flame        &lt;br /&gt;
| T_PERMLARGEFLAME  &lt;br /&gt;
| 99  &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Green Chaos Serpent  &lt;br /&gt;
| T_DEMON_MASH &lt;br /&gt;
| 100&lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Brown Chaos Serpent &lt;br /&gt;
| T_DEMON2_MASH      &lt;br /&gt;
| 101    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Ettin                     &lt;br /&gt;
| T_ETTIN_MASH        &lt;br /&gt;
| 102    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Centaur                   &lt;br /&gt;
| T_CENTAUR_MASH      &lt;br /&gt;
| 103    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (up)                  &lt;br /&gt;
| T_THRUSTSPIKEUP     &lt;br /&gt;
| 104    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (buried)              &lt;br /&gt;
| T_THRUSTSPIKEDOWN   &lt;br /&gt;
| 105    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Reiver skin drip                  &lt;br /&gt;
| T_FLESH_DRIP1       &lt;br /&gt;
| 106    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver chainmail drip             &lt;br /&gt;
| T_FLESH_DRIP2       &lt;br /&gt;
| 107    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver spark drip                 &lt;br /&gt;
| T_SPARK_DRIP        &lt;br /&gt;
| 108    &lt;br /&gt;
| Effects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
There are two ways that Hexen can play background music: from MUS tracks in a WAD or from the Hexen CD. The majority of people (especially nowadays) probaby use the MUS soundtrack, but there are a few things that should be noted regarding the CD. Particularly, only about half of the MUS tracks have CD equivalents, and several of the CD tracks were taken by the storyline/intermission tracks (which are also used in a few levels when playing CD audio).&lt;br /&gt;
&lt;br /&gt;
There are two different methods for assigning the two different types of music. CD tracks are assigned in the MAPINFO lump with a &#039;&#039;&#039;cdtrack #&#039;&#039;&#039; key for each map where # is the CD track number. MUS tracks are assigned in the SNDINFO lump with a &#039;&#039;&#039;$MAP # track&#039;&#039;&#039; key, where # is the map number and track is the name of the MUS lump to play.&lt;br /&gt;
&lt;br /&gt;
For example, to play the Winnowing Hall music on MAP01 in the IWAD, MAPINFO includes:&lt;br /&gt;
&lt;br /&gt;
    cdtrack 13&lt;br /&gt;
&lt;br /&gt;
and SNDINFO includes:&lt;br /&gt;
&lt;br /&gt;
    $MAP 1 Winnowr&lt;br /&gt;
&lt;br /&gt;
If you wish to include a custom MUS track in a PWAD for vanilla Hexen, bear in mind that it must really be in MUS format; autoconversion of MIDI lumps was a feature added to the Doom engine after the Heretic/Hexen codebase was forked from it.&lt;br /&gt;
&lt;br /&gt;
=== CD Tracks ===&lt;br /&gt;
&lt;br /&gt;
Here are the CD tracks and their equivalent MUS name. Track 1 is the data track and should not be played as audio. There is an oddity in Deathkings, in that tracks are sometimes substituted even if the MUS track is available on the CD.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD track MUS equivalents ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Track Number&lt;br /&gt;
! MUS name&lt;br /&gt;
! Deathkings Substitution&lt;br /&gt;
|-&lt;br /&gt;
|2	          &lt;br /&gt;
| Jachr              &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|3	          &lt;br /&gt;
| Blechr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|4	          &lt;br /&gt;
| Hexen              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5	          &lt;br /&gt;
| Orb                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6	          &lt;br /&gt;
| Hall               &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7	          &lt;br /&gt;
| Chess              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8	          &lt;br /&gt;
| Cryptr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|9	          &lt;br /&gt;
| Falconr            &lt;br /&gt;
| 18 (Chap_4r), 10 (Octor)&lt;br /&gt;
|-&lt;br /&gt;
|10	          &lt;br /&gt;
| Octor              &lt;br /&gt;
| 5 (Orb)&lt;br /&gt;
|-&lt;br /&gt;
|11	          &lt;br /&gt;
| Rithmr             &lt;br /&gt;
| 19 (Fantar)&lt;br /&gt;
|-&lt;br /&gt;
|12	          &lt;br /&gt;
| Sixater            &lt;br /&gt;
| 21 (Levelr)&lt;br /&gt;
|-&lt;br /&gt;
|13	          &lt;br /&gt;
| Winnowr            &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|14	          &lt;br /&gt;
| Swampr             &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
|15	          &lt;br /&gt;
| Wutzitr            &lt;br /&gt;
| 20 (Foojar)&lt;br /&gt;
|-&lt;br /&gt;
|16	          &lt;br /&gt;
| Bonesr             &lt;br /&gt;
| 8 (Cryptr)&lt;br /&gt;
|-&lt;br /&gt;
|17	          &lt;br /&gt;
| Chap_1r            &lt;br /&gt;
| 14 (Swampr)&lt;br /&gt;
|-&lt;br /&gt;
|18	          &lt;br /&gt;
| Chap_4r            &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19	          &lt;br /&gt;
| Fantar             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20	          &lt;br /&gt;
| Foojar             &lt;br /&gt;
| 17 (Chap_1r)&lt;br /&gt;
|-&lt;br /&gt;
|21	          &lt;br /&gt;
| Levelr             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22	          &lt;br /&gt;
| Simonr             &lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CD Substitutions ===&lt;br /&gt;
&lt;br /&gt;
The omitted tracks on the CD leave fifteen MUS tracks that do not have a CD track equivalent, so you may have to select a next-best track out of the ones available on the CD. Both the original campaign and Deathkings substitute CD tracks for these missing pieces in their MAPINFO, but Deathkings substitutes them differently from the main game. &amp;quot;Chartr&amp;quot; exists in the Hexen IWAD but goes unused in both campaigns.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD missing track substitutions ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MUS name &lt;br /&gt;
! Beyond Heretic substitution &lt;br /&gt;
! Deathkings substitution&lt;br /&gt;
|-&lt;br /&gt;
| Borkr    &lt;br /&gt;
| 17 (Chap_1r)                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chap_2r  &lt;br /&gt;
|&lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|-&lt;br /&gt;
| Chap_3r&lt;br /&gt;
| 10 (Octor)                  &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Chartr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chippyr  &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Crucibr  &lt;br /&gt;
| 2 (Jachr)                   &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Deepr    &lt;br /&gt;
| 20 (Foojar)                 &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Fortr    &lt;br /&gt;
| 16 (Bonesr)                 &lt;br /&gt;
| 13 (Winnowr)&lt;br /&gt;
|-&lt;br /&gt;
| Fubasr   &lt;br /&gt;
| 6 (Hall)                    &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Grover   &lt;br /&gt;
| 5 (Orb)                     &lt;br /&gt;
| 7 (Chess)&lt;br /&gt;
|-&lt;br /&gt;
| Percr    &lt;br /&gt;
| 21 (Levelr)                 &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Secretr  &lt;br /&gt;
| 14 (Swampr)                 &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Stalkr   &lt;br /&gt;
| 9 (Falconr)                 &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
| Voidr    &lt;br /&gt;
| 19 (Fantar)                 &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|-&lt;br /&gt;
| Wobabyr  &lt;br /&gt;
| 15 (Wutzitr)                &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10306</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10306"/>
		<updated>2022-03-22T17:24:19Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Music&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (1) and expect it to work without incident. The Polyobj_ExplicitLine (5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
Polyobject movement&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;br /&gt;
&lt;br /&gt;
=== Spawnables ===&lt;br /&gt;
The following objects can be spawned by script and by the destruction of certain items. DEFS.ACS (included via COMMON.ACS) gives names to them for when you are spawning via script, but for appearing out of breakable objects you can only refer to them by number. The names are generally meant to be easy mnemonics for the object spawned, but some of them are a bit obscure.&lt;br /&gt;
&lt;br /&gt;
Spawned objects in vanilla Hexen cannot be assigned TIDs. This is particularly significant for the &amp;quot;thrust spike&amp;quot; objects which can be spawned, but not subsequently activated/deactivated.&lt;br /&gt;
&lt;br /&gt;
In scripts, these things can be created using the `Thing_Spawn`, `Thing_SpawnNoFog`, `Thing_Projectile` and `Thing_ProjectileGravity` functions. The number of a particular type of thing currently on the map can also be retrieved using the `thingcount` function.&lt;br /&gt;
&lt;br /&gt;
You may also place any of these spawnable objects inside some types of breakable scenery. To have an item spawn out of a breakable object (pots, decorative armor), you should leave the breakable object&#039;s special at 0 but set its first argument to the spawn number of the item you want it to contain. Certain objects do not behave logically when spawned this way; for instance, projectiles (such as those listed here in the &amp;quot;trap&amp;quot; category), will hang inertly in place and cannot cause damage. Objects that have a significant angle property (e.g. monsters) will spawn facing east.&lt;br /&gt;
&lt;br /&gt;
The pairs 66/97 and 67/99 (permanent small flames and permanent large flames) are redundant spawn numbers. 66 and 97 both spawn the same permanent small flame, while 67 and 99 both spawn the same permanent large flame. Use whichever one you prefer, but ideally pick one or the other and be consistent about it.&lt;br /&gt;
&lt;br /&gt;
The pair of sapphire planets, and the pair of emerald planets, are not interchangeable despite looking identical, and there are actually separate sprite entries for each of them. Puzzle slots will demand a particular sapphire or emerald and won&#039;t accept the other one.&lt;br /&gt;
&lt;br /&gt;
The phantom &amp;quot;mash&amp;quot; monsters are special versions of certain normal monsters that are translucent and do not leave corpses when killed. In the core levels, they appear only while fighting Korax, and are spawned by one of his battle scripts.&lt;br /&gt;
&lt;br /&gt;
Using out-of-bounds spawn numbers is not recommended. It might spawn something, but is unlikely to be consistent across varying ports (even vanilla vs. chocolate). The defined numbers range from 0 to 108. Things that do not appear in this table cannot be spawned without port extensions; notably, the Firestorm and Arc of Death weapons and the Brown Chaos Serpent enemy do not have spawn numbers, and many monster projectiles cannot be fired from scripted traps.&lt;br /&gt;
&lt;br /&gt;
==== Table of spawnable things ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Thing&lt;br /&gt;
!DEFS name&lt;br /&gt;
!Number&lt;br /&gt;
!Category&lt;br /&gt;
|-&lt;br /&gt;
|Nothing&lt;br /&gt;
|T_NONE&lt;br /&gt;
|0&lt;br /&gt;
|Nothing&lt;br /&gt;
|-&lt;br /&gt;
|Centaur&lt;br /&gt;
|T_CENTAUR&lt;br /&gt;
|1&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Slaughtaur&lt;br /&gt;
|T_CENTAURLEADER&lt;br /&gt;
|2&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Green Chaos Serpent&lt;br /&gt;
|T_DEMON&lt;br /&gt;
|3&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Ettin&lt;br /&gt;
|T_ETTIN&lt;br /&gt;
|4&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Afrit&lt;br /&gt;
|T_FIREGARGOYLE&lt;br /&gt;
|5&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker&lt;br /&gt;
|T_WATERLURKER&lt;br /&gt;
|6&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker Boss&lt;br /&gt;
|T_WATERLURKERLEADER&lt;br /&gt;
|7&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver&lt;br /&gt;
|T_WRAITH&lt;br /&gt;
|8&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver (buried)&lt;br /&gt;
|T_WRAITHBURIED&lt;br /&gt;
|9&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Lava ball projectile&lt;br /&gt;
|T_FIREBALL1&lt;br /&gt;
|10&lt;br /&gt;
|Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue mana&lt;br /&gt;
|T_MANA1&lt;br /&gt;
|11&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Green mana&lt;br /&gt;
|T_MANA2&lt;br /&gt;
|12&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Boots of Speed                    &lt;br /&gt;
| T_ITEMBOOTS         &lt;br /&gt;
| 13     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator                       &lt;br /&gt;
| T_ITEMEGG           &lt;br /&gt;
| 14     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Wings of Wrath                    &lt;br /&gt;
| T_ITEMFLIGHT       &lt;br /&gt;
| 15     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Servant                     &lt;br /&gt;
| T_ITEMSUMMON        &lt;br /&gt;
| 16     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Banishment Device                 &lt;br /&gt;
| T_ITEMTPORTOTHER    &lt;br /&gt;
| 17     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Device                     &lt;br /&gt;
| T_ITEMTELEPORT      &lt;br /&gt;
| 18     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Bishop                       &lt;br /&gt;
| T_BISHOP            &lt;br /&gt;
| 19     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Wendigo                           &lt;br /&gt;
| T_ICEGOLEM          &lt;br /&gt;
| 20     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Magic Bridge                      &lt;br /&gt;
| T_BRIDGE            &lt;br /&gt;
| 21     &lt;br /&gt;
| Platform&lt;br /&gt;
|-&lt;br /&gt;
|Dragonskin Bracers                &lt;br /&gt;
|T_DRAGONSKINBRACERS&lt;br /&gt;
|22     &lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Vial                      &lt;br /&gt;
| T_ITEMHEALTHPOTION &lt;br /&gt;
| 23    &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Quartz Flask                      &lt;br /&gt;
| T_ITEMHEALTHFLASK   &lt;br /&gt;
| 24     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Mystic Urn                        &lt;br /&gt;
| T_ITEMHEALTHFULL   &lt;br /&gt;
| 25     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Krater of Might                   &lt;br /&gt;
| T_ITEMBOOSTMANA     &lt;br /&gt;
| 26     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Timon&#039;s Axe                       &lt;br /&gt;
| T_FIGHTERAXE        &lt;br /&gt;
| 27     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Hammer of Retribution             &lt;br /&gt;
| T_FIGHTERHAMMER     &lt;br /&gt;
| 28     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (1)           &lt;br /&gt;
| T_FIGHTERSWORD1     &lt;br /&gt;
| 29     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (2)            &lt;br /&gt;
| T_FIGHTERSWORD2     &lt;br /&gt;
| 30     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (3)           &lt;br /&gt;
| T_FIGHTERSWORD3     &lt;br /&gt;
| 31     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Serpent Staff                     &lt;br /&gt;
| T_CLERICSTAFF       &lt;br /&gt;
| 32     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (1)        &lt;br /&gt;
| T_CLERICHOLY1       &lt;br /&gt;
| 33     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (2)        &lt;br /&gt;
| T_CLERICHOLY2       &lt;br /&gt;
| 34     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (3)        &lt;br /&gt;
| T_CLERICHOLY3       &lt;br /&gt;
| 35     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Frost Shards                      &lt;br /&gt;
| T_MAGESHARDS        &lt;br /&gt;
| 36     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (1)       &lt;br /&gt;
| T_MAGESTAFF1        &lt;br /&gt;
| 37     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (2)       &lt;br /&gt;
| T_MAGESTAFF2        &lt;br /&gt;
| 38     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (3)       &lt;br /&gt;
| T_MAGESTAFF3       &lt;br /&gt;
| 39     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator trap projectile        &lt;br /&gt;
| T_MORPHBLAST        &lt;br /&gt;
| 40     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (larger)              &lt;br /&gt;
| T_ROCK1             &lt;br /&gt;
| 41     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (medium)              &lt;br /&gt;
| T_ROCK2             &lt;br /&gt;
| 42     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (smaller)             &lt;br /&gt;
| T_ROCK3             &lt;br /&gt;
| 43     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (1)  &lt;br /&gt;
| T_DIRT1             &lt;br /&gt;
| 44     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (2)  &lt;br /&gt;
| T_DIRT2            &lt;br /&gt;
| 45     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (3)  &lt;br /&gt;
| T_DIRT3             &lt;br /&gt;
| 46     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small grey pebble                 &lt;br /&gt;
| T_DIRT4             &lt;br /&gt;
| 47     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green particle                    &lt;br /&gt;
| T_DIRT5             &lt;br /&gt;
| 48     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown particle                    &lt;br /&gt;
| T_DIRT6             &lt;br /&gt;
| 49     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Arrow trap projectile             &lt;br /&gt;
| T_ARROW             &lt;br /&gt;
| 50     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile              &lt;br /&gt;
| T_DART              &lt;br /&gt;
| 51     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile (poisoned)   &lt;br /&gt;
| T_POISONDART        &lt;br /&gt;
| 52     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Spiked ball projectile            &lt;br /&gt;
| T_RIPPERBALL        &lt;br /&gt;
| 53     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue glass shard                  &lt;br /&gt;
| T_STAINEDGLASS1     &lt;br /&gt;
| 54     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Yellow glass shard                &lt;br /&gt;
| T_STAINEDGLASS2     &lt;br /&gt;
| 55     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Purple glass shard                &lt;br /&gt;
| T_STAINEDGLASS3     &lt;br /&gt;
| 56     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green glass shard                 &lt;br /&gt;
| T_STAINEDGLASS4     &lt;br /&gt;
| 57     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Gold glass shard                  &lt;br /&gt;
| T_STAINEDGLASS5     &lt;br /&gt;
| 58     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small blue glass shard            &lt;br /&gt;
| T_STAINEDGLASS6     &lt;br /&gt;
| 59     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (1)      &lt;br /&gt;
| T_STAINEDGLASS7     &lt;br /&gt;
| 60     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (2)      &lt;br /&gt;
| T_STAINEDGLASS8     &lt;br /&gt;
| 61     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small purple glass shard          &lt;br /&gt;
| T_STAINEDGLASS9     &lt;br /&gt;
| 62     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small green glass shard           &lt;br /&gt;
| T_STAINEDGLASS0     &lt;br /&gt;
| 63     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Serrated blade projectile         &lt;br /&gt;
| T_BLADE             &lt;br /&gt;
| 64     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Frost shard projectile            &lt;br /&gt;
| T_ICESHARD          &lt;br /&gt;
| 65     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Small flame on ground             &lt;br /&gt;
| T_FLAME_SMALL       &lt;br /&gt;
| 66     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Large flame on ground             &lt;br /&gt;
| T_FLAME_LARGE       &lt;br /&gt;
| 67     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Mesh Armor                        &lt;br /&gt;
| T_MESHARMOR         &lt;br /&gt;
| 68     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Falcon Shield                     &lt;br /&gt;
| T_FALCONSHIELD      &lt;br /&gt;
| 69     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Platinum Helm                     &lt;br /&gt;
| T_PLATINUMHELM      &lt;br /&gt;
| 70     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Amulet of Warding                 &lt;br /&gt;
| T_AMULETOFWARDING   &lt;br /&gt;
| 71     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Flechette                         &lt;br /&gt;
| T_ITEMFLECHETTE     &lt;br /&gt;
| 72     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Torch (item)                      &lt;br /&gt;
| T_ITEMTORCH         &lt;br /&gt;
| 73     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Disc of Repulsion                 &lt;br /&gt;
| T_ITEMREPULSION     &lt;br /&gt;
| 74     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Combined Mana                     &lt;br /&gt;
| T_MANA3             &lt;br /&gt;
| 75     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Yorick&#039;s Skull                    &lt;br /&gt;
| T_PUZZSKULL         &lt;br /&gt;
| 76     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Heart of D&#039;sparil                 &lt;br /&gt;
| T_PUZZGEMBIG        &lt;br /&gt;
| 77     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Ruby Planet                       &lt;br /&gt;
| T_PUZZGEMRED        &lt;br /&gt;
| 78     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (1)                &lt;br /&gt;
| T_PUZZGEMGREEN1     &lt;br /&gt;
| 79     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (2)                &lt;br /&gt;
| T_PUZZGEMGREEN2     &lt;br /&gt;
| 80     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (1)               &lt;br /&gt;
| T_PUZZGEMBLUE1      &lt;br /&gt;
| 81     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (2)               &lt;br /&gt;
| T_PUZZGEMBLUE2      &lt;br /&gt;
| 82     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Daemon Codex (&amp;quot;O&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK1         &lt;br /&gt;
| 83     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Liber Oscura (&amp;quot;A&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK2         &lt;br /&gt;
| 84     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Steel Key                         &lt;br /&gt;
| T_METALKEY          &lt;br /&gt;
| 85     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Cave Key                          &lt;br /&gt;
| T_SMALLMETALKEY     &lt;br /&gt;
| 86     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Axe Key                           &lt;br /&gt;
| T_AXEKEY            &lt;br /&gt;
| 87     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Fire Key                          &lt;br /&gt;
| T_FIREKEY           &lt;br /&gt;
| 88     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Key                       &lt;br /&gt;
| T_GREENKEY          &lt;br /&gt;
| 89     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Key                       &lt;br /&gt;
| T_MACEKEY          &lt;br /&gt;
| 90     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Silver Key                       &lt;br /&gt;
| T_SILVERKEY         &lt;br /&gt;
| 91     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Rusted Key                        &lt;br /&gt;
| T_RUSTYKEY          &lt;br /&gt;
| 92     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Horn Key                          &lt;br /&gt;
| T_HORNKEY           &lt;br /&gt;
| 93     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Swamp Key                         &lt;br /&gt;
| T_SERPENTKEY        &lt;br /&gt;
| 94     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Drop of water                     &lt;br /&gt;
| T_WATERDRIP         &lt;br /&gt;
| 95     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary small flame             &lt;br /&gt;
| T_TEMPSMALLFLAME    &lt;br /&gt;
| 96    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent small flame            &lt;br /&gt;
| T_PERMSMALLFLAME    &lt;br /&gt;
| 97     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary large flame            &lt;br /&gt;
| T_TEMPLARGEFLAME   &lt;br /&gt;
| 98   &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent large flame        &lt;br /&gt;
| T_PERMLARGEFLAME  &lt;br /&gt;
| 99  &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Green Chaos Serpent  &lt;br /&gt;
| T_DEMON_MASH &lt;br /&gt;
| 100&lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Brown Chaos Serpent &lt;br /&gt;
| T_DEMON2_MASH      &lt;br /&gt;
| 101    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Ettin                     &lt;br /&gt;
| T_ETTIN_MASH        &lt;br /&gt;
| 102    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Centaur                   &lt;br /&gt;
| T_CENTAUR_MASH      &lt;br /&gt;
| 103    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (up)                  &lt;br /&gt;
| T_THRUSTSPIKEUP     &lt;br /&gt;
| 104    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (buried)              &lt;br /&gt;
| T_THRUSTSPIKEDOWN   &lt;br /&gt;
| 105    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Reiver skin drip                  &lt;br /&gt;
| T_FLESH_DRIP1       &lt;br /&gt;
| 106    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver chainmail drip             &lt;br /&gt;
| T_FLESH_DRIP2       &lt;br /&gt;
| 107    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver spark drip                 &lt;br /&gt;
| T_SPARK_DRIP        &lt;br /&gt;
| 108    &lt;br /&gt;
| Effects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
&lt;br /&gt;
There are two ways that Hexen can play background music: from MUS tracks in a WAD or from the Hexen CD. The majority of people (especially nowadays) probaby use the MUS soundtrack, but there are a few things that should be noted regarding the CD. Particularly, only about half of the MUS tracks have CD equivalents, and several of the CD tracks were taken by the storyline/intermission tracks (which are also used in a few levels when playing CD audio).&lt;br /&gt;
&lt;br /&gt;
There are two different methods for assigning the two different types of music. CD tracks are assigned in the MAPINFO lump with a &#039;&#039;&#039;cdtrack #&#039;&#039;&#039; key for each map where # is the CD track number. MUS tracks are assigned in the SNDINFO lump with a &#039;&#039;&#039;$MAP # track&#039;&#039;&#039; key, where # is the map number and track is the name of the MUS lump to play.&lt;br /&gt;
&lt;br /&gt;
For example, to play the Winnowing Hall music on MAP01 in the IWAD, MAPINFO includes:&lt;br /&gt;
&lt;br /&gt;
    cdtrack 13&lt;br /&gt;
&lt;br /&gt;
and SNDINFO includes:&lt;br /&gt;
&lt;br /&gt;
    $MAP 1 Winnowr&lt;br /&gt;
&lt;br /&gt;
If you wish to include a custom MUS track in a PWAD for vanilla Hexen, bear in mind that it must really be in MUS format; autoconversion of MIDI lumps was a feature added to the Doom engine after the Heretic/Hexen codebase was forked from it.&lt;br /&gt;
&lt;br /&gt;
=== CD Tracks ===&lt;br /&gt;
&lt;br /&gt;
Here are the CD tracks and their equivalent MUS name. Track 1 is the data track and should not be played as audio. There is an oddity in Deathkings, in that tracks are sometimes substituted even if the MUS track is available on the CD.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD track MUS equivalents ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Track Number&lt;br /&gt;
! MUS name&lt;br /&gt;
! Deathkings Substitution&lt;br /&gt;
|-&lt;br /&gt;
|2	          &lt;br /&gt;
| Jachr              &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|3	          &lt;br /&gt;
| Blechr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|4	          &lt;br /&gt;
| Hexen              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5	          &lt;br /&gt;
| Orb                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6	          &lt;br /&gt;
| Hall               &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7	          &lt;br /&gt;
| Chess              &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8	          &lt;br /&gt;
| Cryptr             &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|9	          &lt;br /&gt;
| Falconr            &lt;br /&gt;
| 18 (Chap_4r), 10 (Octor)&lt;br /&gt;
|-&lt;br /&gt;
|10	          &lt;br /&gt;
| Octor              &lt;br /&gt;
| 5 (Orb)&lt;br /&gt;
|-&lt;br /&gt;
|11	          &lt;br /&gt;
| Rithmr             &lt;br /&gt;
| 19 (Fantar)&lt;br /&gt;
|-&lt;br /&gt;
|12	          &lt;br /&gt;
| Sixater            &lt;br /&gt;
| 21 (Levelr)&lt;br /&gt;
|-&lt;br /&gt;
|13	          &lt;br /&gt;
| Winnowr            &lt;br /&gt;
| Matches&lt;br /&gt;
|-&lt;br /&gt;
|14	          &lt;br /&gt;
| Swampr             &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
|15	          &lt;br /&gt;
| Wutzitr            &lt;br /&gt;
| 20 (Foojar)&lt;br /&gt;
|-&lt;br /&gt;
|16	          &lt;br /&gt;
| Bonesr             &lt;br /&gt;
| 8 (Cryptr)&lt;br /&gt;
|-&lt;br /&gt;
|17	          &lt;br /&gt;
| Chap_1r            &lt;br /&gt;
| 14 (Swampr)&lt;br /&gt;
|-&lt;br /&gt;
|18	          &lt;br /&gt;
| Chap_4r            &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19	          &lt;br /&gt;
| Fantar             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20	          &lt;br /&gt;
| Foojar             &lt;br /&gt;
| 17 (Chap_1r)&lt;br /&gt;
|-&lt;br /&gt;
|21	          &lt;br /&gt;
| Levelr             &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22	          &lt;br /&gt;
| Simonr             &lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CD Substitutions ===&lt;br /&gt;
&lt;br /&gt;
The omitted tracks on the CD leave fifteen MUS tracks that do not have a CD track equivalent, so you may have to select a next-best track out of the ones available on the CD. Both the original campaign and Deathkings substitute CD tracks for these missing pieces in their MAPINFO, but Deathkings substitutes them differently from the main game. &amp;quot;Chartr&amp;quot; exists in the Hexen IWAD but goes unused in both campaigns.&lt;br /&gt;
&lt;br /&gt;
==== Table of Hexen CD missing track substitutions ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MUS name &lt;br /&gt;
! Beyond Heretic substitution &lt;br /&gt;
! Deathkings substitution&lt;br /&gt;
|-&lt;br /&gt;
| Borkr    &lt;br /&gt;
| 17 (Chap_1r)                &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chap_2r  &lt;br /&gt;
|&lt;br /&gt;
| 6 (Hall)&lt;br /&gt;
|-&lt;br /&gt;
| Chap_3r&lt;br /&gt;
| 10 (Octor)                  &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Chartr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Chippyr  &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Crucibr  &lt;br /&gt;
| 2 (Jachr)                   &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Deepr    &lt;br /&gt;
| 20 (Foojar)                 &lt;br /&gt;
| 15 (Wutzitr)&lt;br /&gt;
|-&lt;br /&gt;
| Fortr    &lt;br /&gt;
| 16 (Bonesr)                 &lt;br /&gt;
| 13 (Winnowr)&lt;br /&gt;
|-&lt;br /&gt;
| Fubasr   &lt;br /&gt;
| 6 (Hall)                    &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Grover   &lt;br /&gt;
| 5 (Orb)                     &lt;br /&gt;
| 7 (Chess)&lt;br /&gt;
|-&lt;br /&gt;
| Percr    &lt;br /&gt;
| 21 (Levelr)                 &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|-&lt;br /&gt;
| Secretr  &lt;br /&gt;
| 14 (Swampr)                 &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Stalkr   &lt;br /&gt;
| 9 (Falconr)                 &lt;br /&gt;
| 16 (Bonesr)&lt;br /&gt;
|-&lt;br /&gt;
| Voidr    &lt;br /&gt;
| 19 (Fantar)                 &lt;br /&gt;
| 22 (Simonr)&lt;br /&gt;
|-&lt;br /&gt;
| Wobabyr  &lt;br /&gt;
| 15 (Wutzitr)                &lt;br /&gt;
| 9 (Falconr)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10305</id>
		<title>Hexen</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10305"/>
		<updated>2022-03-22T16:31:29Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Tools */ MIDI2MUS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hexen]] is the follow-up game to [[Heretic]].  It added some more mod-friendly definition files for cases such as music assignment, level name and story texts, and animated textures, thus removing some of the necessity of EXE patchers that were required for some of these tasks in Heretic.  It also added features such as moving walls (with some limitations) and level scripting.  Many utilities that support [[Doom]] can be used for Hexen as well, with the notable caveat that Hexen uses an updated version of the level format which must be specifically supported by level editors.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = Some&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Text editing applies only for those strings which can be loaded from a WAD file.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = DeuTex&lt;br /&gt;
| Platform = DOS/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = Some&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Text editing applies only for those strings which can be loaded from a WAD file.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/sound_edit/midi2mus MIDI2MUS]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Occasionally, some MIDI files may produce conversion errors.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
[https://www.doomworld.com/idgames/docs/editing/hexspc09 The Official Hexen Specs] is the original groundwork for understanding how to make levels for the game, although there are slight inaccuracies in a couple of places.&lt;br /&gt;
&lt;br /&gt;
There is extensive information on the [https://doomwiki.org Doom wiki].  Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Hexen List of bugs present in the official DOS versions of Hexen]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10304</id>
		<title>Heretic</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic&amp;diff=10304"/>
		<updated>2022-03-22T16:29:04Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Tools */ Deutex, MIDI2MUS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Heretic]] is a fantasy first-person shooter based on the engine of [[Doom]].  Many utilities that support Doom can be used for Heretic as well.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = DeuTex&lt;br /&gt;
| Platform = DOS/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = &lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/sound_edit/midi2mus MIDI2MUS]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Occasionally, some MIDI files may produce conversion errors.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://www.doomworld.com/idgames/utils/exe_edit/hhe11 HHE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = Edit&lt;br /&gt;
| notes = Can be made to work with any EXE revision via INI adjustments, but some labels are accurate only for v1.0.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Loading and exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
There is extensive information already on the [https://doomwiki.org Doom wiki].&lt;br /&gt;
&lt;br /&gt;
Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Heretic List of bugs present in the official DOS versions of Heretic]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10302</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10302"/>
		<updated>2022-03-20T18:10:53Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Spawnables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (1) and expect it to work without incident. The Polyobj_ExplicitLine (5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
Polyobject movement&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;br /&gt;
&lt;br /&gt;
=== Spawnables ===&lt;br /&gt;
The following objects can be spawned by script and by the destruction of certain items. DEFS.ACS (included via COMMON.ACS) gives names to them for when you are spawning via script, but for appearing out of breakable objects you can only refer to them by number. The names are generally meant to be easy mnemonics for the object spawned, but some of them are a bit obscure.&lt;br /&gt;
&lt;br /&gt;
Spawned objects in vanilla Hexen cannot be assigned TIDs. This is particularly significant for the &amp;quot;thrust spike&amp;quot; objects which can be spawned, but not subsequently activated/deactivated.&lt;br /&gt;
&lt;br /&gt;
In scripts, these things can be created using the `Thing_Spawn`, `Thing_SpawnNoFog`, `Thing_Projectile` and `Thing_ProjectileGravity` functions. The number of a particular type of thing currently on the map can also be retrieved using the `thingcount` function.&lt;br /&gt;
&lt;br /&gt;
You may also place any of these spawnable objects inside some types of breakable scenery. To have an item spawn out of a breakable object (pots, decorative armor), you should leave the breakable object&#039;s special at 0 but set its first argument to the spawn number of the item you want it to contain. Certain objects do not behave logically when spawned this way; for instance, projectiles (such as those listed here in the &amp;quot;trap&amp;quot; category), will hang inertly in place and cannot cause damage. Objects that have a significant angle property (e.g. monsters) will spawn facing east.&lt;br /&gt;
&lt;br /&gt;
The pairs 66/97 and 67/99 (permanent small flames and permanent large flames) are redundant spawn numbers. 66 and 97 both spawn the same permanent small flame, while 67 and 99 both spawn the same permanent large flame. Use whichever one you prefer, but ideally pick one or the other and be consistent about it.&lt;br /&gt;
&lt;br /&gt;
The pair of sapphire planets, and the pair of emerald planets, are not interchangeable despite looking identical, and there are actually separate sprite entries for each of them. Puzzle slots will demand a particular sapphire or emerald and won&#039;t accept the other one.&lt;br /&gt;
&lt;br /&gt;
The phantom &amp;quot;mash&amp;quot; monsters are special versions of certain normal monsters that are translucent and do not leave corpses when killed. In the core levels, they appear only while fighting Korax, and are spawned by one of his battle scripts.&lt;br /&gt;
&lt;br /&gt;
Using out-of-bounds spawn numbers is not recommended. It might spawn something, but is unlikely to be consistent across varying ports (even vanilla vs. chocolate). The defined numbers range from 0 to 108. Things that do not appear in this table cannot be spawned without port extensions; notably, the Firestorm and Arc of Death weapons and the Brown Chaos Serpent enemy do not have spawn numbers, and many monster projectiles cannot be fired from scripted traps.&lt;br /&gt;
&lt;br /&gt;
==== Table of spawnable things ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Thing&lt;br /&gt;
!DEFS name&lt;br /&gt;
!Number&lt;br /&gt;
!Category&lt;br /&gt;
|-&lt;br /&gt;
|Nothing&lt;br /&gt;
|T_NONE&lt;br /&gt;
|0&lt;br /&gt;
|Nothing&lt;br /&gt;
|-&lt;br /&gt;
|Centaur&lt;br /&gt;
|T_CENTAUR&lt;br /&gt;
|1&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Slaughtaur&lt;br /&gt;
|T_CENTAURLEADER&lt;br /&gt;
|2&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Green Chaos Serpent&lt;br /&gt;
|T_DEMON&lt;br /&gt;
|3&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Ettin&lt;br /&gt;
|T_ETTIN&lt;br /&gt;
|4&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Afrit&lt;br /&gt;
|T_FIREGARGOYLE&lt;br /&gt;
|5&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker&lt;br /&gt;
|T_WATERLURKER&lt;br /&gt;
|6&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Stalker Boss&lt;br /&gt;
|T_WATERLURKERLEADER&lt;br /&gt;
|7&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver&lt;br /&gt;
|T_WRAITH&lt;br /&gt;
|8&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Reiver (buried)&lt;br /&gt;
|T_WRAITHBURIED&lt;br /&gt;
|9&lt;br /&gt;
|Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Lava ball projectile&lt;br /&gt;
|T_FIREBALL1&lt;br /&gt;
|10&lt;br /&gt;
|Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue mana&lt;br /&gt;
|T_MANA1&lt;br /&gt;
|11&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Green mana&lt;br /&gt;
|T_MANA2&lt;br /&gt;
|12&lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Boots of Speed                    &lt;br /&gt;
| T_ITEMBOOTS         &lt;br /&gt;
| 13     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator                       &lt;br /&gt;
| T_ITEMEGG           &lt;br /&gt;
| 14     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Wings of Wrath                    &lt;br /&gt;
| T_ITEMFLIGHT       &lt;br /&gt;
| 15     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Servant                     &lt;br /&gt;
| T_ITEMSUMMON        &lt;br /&gt;
| 16     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Banishment Device                 &lt;br /&gt;
| T_ITEMTPORTOTHER    &lt;br /&gt;
| 17     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Device                     &lt;br /&gt;
| T_ITEMTELEPORT      &lt;br /&gt;
| 18     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Dark Bishop                       &lt;br /&gt;
| T_BISHOP            &lt;br /&gt;
| 19     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Wendigo                           &lt;br /&gt;
| T_ICEGOLEM          &lt;br /&gt;
| 20     &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Magic Bridge                      &lt;br /&gt;
| T_BRIDGE            &lt;br /&gt;
| 21     &lt;br /&gt;
| Platform&lt;br /&gt;
|-&lt;br /&gt;
|Dragonskin Bracers                &lt;br /&gt;
|T_DRAGONSKINBRACERS&lt;br /&gt;
|22     &lt;br /&gt;
|Item&lt;br /&gt;
|-&lt;br /&gt;
|Crystal Vial                      &lt;br /&gt;
| T_ITEMHEALTHPOTION &lt;br /&gt;
| 23    &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Quartz Flask                      &lt;br /&gt;
| T_ITEMHEALTHFLASK   &lt;br /&gt;
| 24     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Mystic Urn                        &lt;br /&gt;
| T_ITEMHEALTHFULL   &lt;br /&gt;
| 25     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Krater of Might                   &lt;br /&gt;
| T_ITEMBOOSTMANA     &lt;br /&gt;
| 26     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Timon&#039;s Axe                       &lt;br /&gt;
| T_FIGHTERAXE        &lt;br /&gt;
| 27     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Hammer of Retribution             &lt;br /&gt;
| T_FIGHTERHAMMER     &lt;br /&gt;
| 28     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (1)           &lt;br /&gt;
| T_FIGHTERSWORD1     &lt;br /&gt;
| 29     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (2)            &lt;br /&gt;
| T_FIGHTERSWORD2     &lt;br /&gt;
| 30     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Quietus (3)           &lt;br /&gt;
| T_FIGHTERSWORD3     &lt;br /&gt;
| 31     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Serpent Staff                     &lt;br /&gt;
| T_CLERICSTAFF       &lt;br /&gt;
| 32     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (1)        &lt;br /&gt;
| T_CLERICHOLY1       &lt;br /&gt;
| 33     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (2)        &lt;br /&gt;
| T_CLERICHOLY2       &lt;br /&gt;
| 34     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Wraithverge (3)        &lt;br /&gt;
| T_CLERICHOLY3       &lt;br /&gt;
| 35     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Frost Shards                      &lt;br /&gt;
| T_MAGESHARDS        &lt;br /&gt;
| 36     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (1)       &lt;br /&gt;
| T_MAGESTAFF1        &lt;br /&gt;
| 37     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (2)       &lt;br /&gt;
| T_MAGESTAFF2        &lt;br /&gt;
| 38     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Segment of Bloodscourge (3)       &lt;br /&gt;
| T_MAGESTAFF3       &lt;br /&gt;
| 39     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Porkalator trap projectile        &lt;br /&gt;
| T_MORPHBLAST        &lt;br /&gt;
| 40     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (larger)              &lt;br /&gt;
| T_ROCK1             &lt;br /&gt;
| 41     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (medium)              &lt;br /&gt;
| T_ROCK2             &lt;br /&gt;
| 42     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Grey rubble (smaller)             &lt;br /&gt;
| T_ROCK3             &lt;br /&gt;
| 43     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (1)  &lt;br /&gt;
| T_DIRT1             &lt;br /&gt;
| 44     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (2)  &lt;br /&gt;
| T_DIRT2            &lt;br /&gt;
| 45     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown clod with green specks (3)  &lt;br /&gt;
| T_DIRT3             &lt;br /&gt;
| 46     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small grey pebble                 &lt;br /&gt;
| T_DIRT4             &lt;br /&gt;
| 47     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green particle                    &lt;br /&gt;
| T_DIRT5             &lt;br /&gt;
| 48     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Brown particle                    &lt;br /&gt;
| T_DIRT6             &lt;br /&gt;
| 49     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Arrow trap projectile             &lt;br /&gt;
| T_ARROW             &lt;br /&gt;
| 50     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile              &lt;br /&gt;
| T_DART              &lt;br /&gt;
| 51     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Dart trap projectile (poisoned)   &lt;br /&gt;
| T_POISONDART        &lt;br /&gt;
| 52     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Spiked ball projectile            &lt;br /&gt;
| T_RIPPERBALL        &lt;br /&gt;
| 53     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Blue glass shard                  &lt;br /&gt;
| T_STAINEDGLASS1     &lt;br /&gt;
| 54     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Yellow glass shard                &lt;br /&gt;
| T_STAINEDGLASS2     &lt;br /&gt;
| 55     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Purple glass shard                &lt;br /&gt;
| T_STAINEDGLASS3     &lt;br /&gt;
| 56     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Green glass shard                 &lt;br /&gt;
| T_STAINEDGLASS4     &lt;br /&gt;
| 57     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Gold glass shard                  &lt;br /&gt;
| T_STAINEDGLASS5     &lt;br /&gt;
| 58     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small blue glass shard            &lt;br /&gt;
| T_STAINEDGLASS6     &lt;br /&gt;
| 59     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (1)      &lt;br /&gt;
| T_STAINEDGLASS7     &lt;br /&gt;
| 60     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small yellow glass shard (2)      &lt;br /&gt;
| T_STAINEDGLASS8     &lt;br /&gt;
| 61     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small purple glass shard          &lt;br /&gt;
| T_STAINEDGLASS9     &lt;br /&gt;
| 62     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Small green glass shard           &lt;br /&gt;
| T_STAINEDGLASS0     &lt;br /&gt;
| 63     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Serrated blade projectile         &lt;br /&gt;
| T_BLADE             &lt;br /&gt;
| 64     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Frost shard projectile            &lt;br /&gt;
| T_ICESHARD          &lt;br /&gt;
| 65     &lt;br /&gt;
| Trap&lt;br /&gt;
|-&lt;br /&gt;
|Small flame on ground             &lt;br /&gt;
| T_FLAME_SMALL       &lt;br /&gt;
| 66     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Large flame on ground             &lt;br /&gt;
| T_FLAME_LARGE       &lt;br /&gt;
| 67     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Mesh Armor                        &lt;br /&gt;
| T_MESHARMOR         &lt;br /&gt;
| 68     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Falcon Shield                     &lt;br /&gt;
| T_FALCONSHIELD      &lt;br /&gt;
| 69     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Platinum Helm                     &lt;br /&gt;
| T_PLATINUMHELM      &lt;br /&gt;
| 70     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Amulet of Warding                 &lt;br /&gt;
| T_AMULETOFWARDING   &lt;br /&gt;
| 71     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Flechette                         &lt;br /&gt;
| T_ITEMFLECHETTE     &lt;br /&gt;
| 72     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Torch (item)                      &lt;br /&gt;
| T_ITEMTORCH         &lt;br /&gt;
| 73     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Disc of Repulsion                 &lt;br /&gt;
| T_ITEMREPULSION     &lt;br /&gt;
| 74     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Combined Mana                     &lt;br /&gt;
| T_MANA3             &lt;br /&gt;
| 75     &lt;br /&gt;
| Item&lt;br /&gt;
|-&lt;br /&gt;
|Yorick&#039;s Skull                    &lt;br /&gt;
| T_PUZZSKULL         &lt;br /&gt;
| 76     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Heart of D&#039;sparil                 &lt;br /&gt;
| T_PUZZGEMBIG        &lt;br /&gt;
| 77     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Ruby Planet                       &lt;br /&gt;
| T_PUZZGEMRED        &lt;br /&gt;
| 78     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (1)                &lt;br /&gt;
| T_PUZZGEMGREEN1     &lt;br /&gt;
| 79     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Planet (2)                &lt;br /&gt;
| T_PUZZGEMGREEN2     &lt;br /&gt;
| 80     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (1)               &lt;br /&gt;
| T_PUZZGEMBLUE1      &lt;br /&gt;
| 81     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Sapphire Planet (2)               &lt;br /&gt;
| T_PUZZGEMBLUE2      &lt;br /&gt;
| 82     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Daemon Codex (&amp;quot;O&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK1         &lt;br /&gt;
| 83     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Liber Oscura (&amp;quot;A&amp;quot; book)           &lt;br /&gt;
| T_PUZZBOOK2         &lt;br /&gt;
| 84     &lt;br /&gt;
| Puzzle item&lt;br /&gt;
|-&lt;br /&gt;
|Steel Key                         &lt;br /&gt;
| T_METALKEY          &lt;br /&gt;
| 85     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Cave Key                          &lt;br /&gt;
| T_SMALLMETALKEY     &lt;br /&gt;
| 86     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Axe Key                           &lt;br /&gt;
| T_AXEKEY            &lt;br /&gt;
| 87     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Fire Key                          &lt;br /&gt;
| T_FIREKEY           &lt;br /&gt;
| 88     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Emerald Key                       &lt;br /&gt;
| T_GREENKEY          &lt;br /&gt;
| 89     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Dungeon Key                       &lt;br /&gt;
| T_MACEKEY          &lt;br /&gt;
| 90     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Silver Key                       &lt;br /&gt;
| T_SILVERKEY         &lt;br /&gt;
| 91     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Rusted Key                        &lt;br /&gt;
| T_RUSTYKEY          &lt;br /&gt;
| 92     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Horn Key                          &lt;br /&gt;
| T_HORNKEY           &lt;br /&gt;
| 93     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Swamp Key                         &lt;br /&gt;
| T_SERPENTKEY        &lt;br /&gt;
| 94     &lt;br /&gt;
| Key item&lt;br /&gt;
|-&lt;br /&gt;
|Drop of water                     &lt;br /&gt;
| T_WATERDRIP         &lt;br /&gt;
| 95     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary small flame             &lt;br /&gt;
| T_TEMPSMALLFLAME    &lt;br /&gt;
| 96    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent small flame            &lt;br /&gt;
| T_PERMSMALLFLAME    &lt;br /&gt;
| 97     &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Temporary large flame            &lt;br /&gt;
| T_TEMPLARGEFLAME   &lt;br /&gt;
| 98   &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Permanent large flame        &lt;br /&gt;
| T_PERMLARGEFLAME  &lt;br /&gt;
| 99  &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Green Chaos Serpent  &lt;br /&gt;
| T_DEMON_MASH &lt;br /&gt;
| 100&lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Brown Chaos Serpent &lt;br /&gt;
| T_DEMON2_MASH      &lt;br /&gt;
| 101    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Ettin                     &lt;br /&gt;
| T_ETTIN_MASH        &lt;br /&gt;
| 102    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Phantom Centaur                   &lt;br /&gt;
| T_CENTAUR_MASH      &lt;br /&gt;
| 103    &lt;br /&gt;
| Enemy&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (up)                  &lt;br /&gt;
| T_THRUSTSPIKEUP     &lt;br /&gt;
| 104    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Giant spike (buried)              &lt;br /&gt;
| T_THRUSTSPIKEDOWN   &lt;br /&gt;
| 105    &lt;br /&gt;
| Scenery&lt;br /&gt;
|-&lt;br /&gt;
|Reiver skin drip                  &lt;br /&gt;
| T_FLESH_DRIP1       &lt;br /&gt;
| 106    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver chainmail drip             &lt;br /&gt;
| T_FLESH_DRIP2       &lt;br /&gt;
| 107    &lt;br /&gt;
| Effects&lt;br /&gt;
|-&lt;br /&gt;
|Reiver spark drip                 &lt;br /&gt;
| T_SPARK_DRIP        &lt;br /&gt;
| 108    &lt;br /&gt;
| Effects&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10301</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10301"/>
		<updated>2022-03-20T17:12:24Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Slight adjustments and clear a couple of TODOs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills by things with this flag will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.  Works when set on projectiles, and for monsters&#039; melee attacks if set on the monster.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers panel (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many.  The cap appears to be 32.&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable to 350.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10298</id>
		<title>Hexen/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen/Modding_Tips&amp;diff=10298"/>
		<updated>2022-03-18T14:12:27Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Port in my map editing notes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Map Design ==&lt;br /&gt;
Notes here are supplemental/errata to the Official Hexen Specs; consult that for additional information.&lt;br /&gt;
&lt;br /&gt;
=== Sector Specials ===&lt;br /&gt;
&lt;br /&gt;
==== Light sequences ====&lt;br /&gt;
Automatic light sequences flow towards the sector tagged with special 2, passing through alternating sectors of type 3 and 4. Beware that attempting to implement forked paths with the automatic specials won’t work in vanilla Hexen, and if the pattern assignment breaks then the game will crash when a player touches one of the unassigned sectors. If you need a light sequence that branches or is otherwise more complex, you’ll have to use the Light_Phased special or an ACS script instead.&lt;br /&gt;
&lt;br /&gt;
=== Polyobjects ===&lt;br /&gt;
Polyobjects can take some time to fully understand. You may want to start out with a close study of how the Hexen IWAD levels set them up.&lt;br /&gt;
&lt;br /&gt;
A polyobject is formed by creating solid walls (one-sided linedefs) inside a dummy sector which I’ll refer to as the polyobject cage. The properties of this sector don’t matter, only the properties of the linedefs that are to become your polyobject.&lt;br /&gt;
&lt;br /&gt;
While it’s reasonable to allow for some space to grow the map, try to keep the polyobject cage somewhat close to the actual map sectors. The game might experience strange problems if it’s stuck too far out into the void.&lt;br /&gt;
&lt;br /&gt;
Each polyobject is associated with an anchor and a start spot. These are numbered by a special case use of the thing angle property, rather than by the TID system.&lt;br /&gt;
&lt;br /&gt;
The anchor points are placed in the polyobject cage area, often within the polyobject’s void space. The polyobject’s anchor point determines the point that will be placed on the polyobject start spot, and the point that the polyobject will rotate around when rotation specials are used.&lt;br /&gt;
&lt;br /&gt;
The start spots are placed in the actual map space and determine where the polyobject will appear during play. To minimize the possibility of errors, every polyobject start location should be contained in its own rectangular sector, separate from others and encompassing the entirety of the space that the polyobject in question must move within. This is particularly important for pairs of doors. Polyobjects cannot share a subsector, and the map will not load in game if it finds that they do.&lt;br /&gt;
&lt;br /&gt;
Polyobjects don’t have to be convex shapes, though it’s simpler if they are since you can then use Polyobj_StartLine (1) and expect it to work without incident. The Polyobj_ExplicitLine (5) special exists for the purpose of making non-convex polyobject constructions render correctly; you may have to use a little trial-and-error on the line ordering if you’re making a complex shape, but a general rule of thumb is that the lines on the inside of a concave shape should generally have a higher order number than the lines on the outside.&lt;br /&gt;
Polyobject movement&lt;br /&gt;
&lt;br /&gt;
Rotation specials make a polyobject rotate around its anchor point. Rotate right means rotate clockwise, and rotate left means rotate counter-clockwise. Since map special arguments have a maximum value of 255, &amp;quot;byte angles&amp;quot; are used for the angle values. A byte angle of 0 will make the polyobject do a full 360-degree revolution. 64 will result in a 90-degree quarter-turn, 128 results in a half-turn. Finer values also work as expected based on this.&lt;br /&gt;
&lt;br /&gt;
The door swing special is somewhat similar, but it rotates the polyobject counter-clockwise, pauses for the specified delay, then rotates the polyobject clockwise back to its starting position. The maximum valid angle for a swinging door is 128, to do a 180-degree turn. The door swing speed is treated as a signed value, so if you use a value higher than 127 it will actually go clockwise instead of moving any faster. This is a little tricky to arrange since you have to subtract your intended speed value from 256 and use the result for clockwise rotations. If your doors are paired, it’s easier to just move the one you want moving counter-clockwise normally, and let the other one mirror the movement.&lt;br /&gt;
&lt;br /&gt;
For swinging doors, the polyobject’s anchors should be placed inside the polyobject approximately where hinges would be, near the side of the door adjacent to the wall. A centrally placed anchor will result in a door that rotates like a revolving door instead. When an anchor is placed outside the polyobject itself, the rotation specials will cause it to &amp;quot;orbit&amp;quot; its start spot.&lt;br /&gt;
&lt;br /&gt;
=== Special Boss Setup ===&lt;br /&gt;
Some of the bosses require special settings to function properly.&lt;br /&gt;
&lt;br /&gt;
==== Heresiarch ====&lt;br /&gt;
There is just one gotcha when setting up a Heresiarch. Instead of the normal action special with arguments, special actions to be performed upon his death should instead be invoked by putting a script number where you would normally put the number of the action special, and leaving the arguments at zero. This script will be run when the Heresiarch is killed.&lt;br /&gt;
&lt;br /&gt;
The technical reason for this exception to normal thing specials is because the Heresiarch’s internal AI code highjacks the argument slots for its own use.&lt;br /&gt;
&lt;br /&gt;
==== Death Wyvern ====&lt;br /&gt;
The death wyvern is the most finicky boss to set up. If you do it improperly, you can end up with the wyvern being stuck in place and emitting a continuous, annoying scream, or even worse, the game could hang.&lt;br /&gt;
&lt;br /&gt;
Death wyvern essentials:&lt;br /&gt;
* The death wyvern itself. It requires a TID and can be given any action special you want.&lt;br /&gt;
* A thing with an identical TID to the wyvern, requiring arguments containing the TID(s) at least one waypoint. It need not be a map spot (Hypostyle uses an ettin).&lt;br /&gt;
* Map spots that serve as waypoints. Each should have a unique TID and arguments containing the TID(s) of at least one other waypoint.&lt;br /&gt;
&lt;br /&gt;
A very basic setup would be:&lt;br /&gt;
* Death Wyvern: TID = 1, Special/Arguments can be any reasonable action to execute upon wyvern’s death&lt;br /&gt;
* Map Spot: TID = 1, Special = 0, Arg1 = 2, Arg2 = 3&lt;br /&gt;
* Map Spot: TID = 2, Special = 0, Arg1 = 3&lt;br /&gt;
* Map Spot: TID = 3, Special = 0, Arg1 = 2&lt;br /&gt;
&lt;br /&gt;
With this setup, the wyvern will behave as follows: upon waking, fly to the map spot with TID 1 (since that one matches the Wyvern’s own). According to the args on this map spot, randomly choose between the map spot with TID 2 or the one with TID 3 and fly there. The wyvern will then continuously patrol back and forth between map spot 2 and map spot 3 until slain.&lt;br /&gt;
&lt;br /&gt;
The wyvern swoops around in arcs when changing direction but will try to head for the exact position of its target map spot, taking into account its Z height setting as well, you can control its general altitude along the path. Another interesting thing to note: you can make a waypoint map spot reference its own TID as one of the arguments. When following this destination, the wyvern will circle around and back to that spot (may only work for spots that reference solely themselves, not 100% sure).&lt;br /&gt;
&lt;br /&gt;
In addition to thing setup, the death wyvern requires some careful testing and preparation of its area to ensure that it will not get stuck, as it has no awareness of walls in its navigation. Make sure that the path between any two linked waypoints is clear with enough space to spare to account for the swooping movements.&lt;br /&gt;
&lt;br /&gt;
NB: The official specs, and by extension map editing utilities based on them, may erroneously lead you to believe that the map spot destination numbers should be placed in the arguments of the wyvern itself. That is a mistake which will at best result in the arguments being ignored (if you gave the wyvern a TID and a first destination with matching TID) and at worst leave you with a stuck wyvern.&lt;br /&gt;
&lt;br /&gt;
==== Korax ====&lt;br /&gt;
&lt;br /&gt;
Korax expects there to be a few special scripts and map settings as well, but unlike the death wyvern he doesn’t necessarily break down totally without them. However, it is theoretically possible for missing Korax scripts to cause a crash under certain circumstances and Chocolate Hexen currently treats missing Korax scripts as a fatal error, although vanilla generally continues running despite this. Lack of the scripts will at best cause error messages to appear at the top of the screen and make things look sloppy to the player, so it behooves you to provide them (plus, it offers many opportunities to give the battle more &amp;quot;oomph&amp;quot;, though if you really don’t want them you can always provide dummy scripts in those slots just to prevent the undesirable consequences of missing scripts).&lt;br /&gt;
&lt;br /&gt;
The script numbers used are:&lt;br /&gt;
* 249: Run when Korax is injured to below 50% HP.&lt;br /&gt;
* 250: Randomly invoked battle script.&lt;br /&gt;
* 251: Randomly invoked battle script.&lt;br /&gt;
* 252: Randomly invoked battle script.&lt;br /&gt;
* 253: Randomly invoked battle script.&lt;br /&gt;
* 254: Randomly invoked battle script used only after Korax is below half health.&lt;br /&gt;
* 255: Run when Korax is slain.&lt;br /&gt;
&lt;br /&gt;
As with ACS in general, the battle scripts can be used for a variety of effects; the Dark Crucible is set up for such things as setting off traps, calling minions, and altering the battle field. When Korax performs the &amp;quot;attack&amp;quot; where he raises his fist and sends a lightning bolt to the ceiling, a battle script will be invoked. Unfortunately, a well-equipped and skilled player allowed to get near to Korax can often kill him before he gets a chance to do much with these scripts.&lt;br /&gt;
&lt;br /&gt;
Korax is also capable of teleporting himself. There are no adverse effects to not setting this up, but again, it can help add challenge and interest to the fight. Korax will only teleport once his health is below 50%. Once at this point, he can randomly choose from any map spots given a TID of 249 and teleport to one of them.&lt;br /&gt;
&lt;br /&gt;
=== ACS Scripts ===&lt;br /&gt;
Be aware that vanilla Hexen is not compatible with ZDoom ACS. If you intend to make your mod work with non-ZDoom ports, make sure you compile your scripts to the original ACS format. This can be achieved by using the original ACC released by Raven, or using the separate &amp;quot;compile to Hexen bytecode&amp;quot; button if you’re compiling your scripts from SLADE.&lt;br /&gt;
&lt;br /&gt;
==== Inserting dummy scripts ====&lt;br /&gt;
Vanilla Hexen maps cannot run without a proper BEHAVIOR lump (a 0-length entry named BEHAVIOR is not enough). If you really do not want to include scripts in your map, you need to run tests on it before scripts have been added, or you want to override a special script requirement (e.g. Korax scripts), a dummy script which performs no action but satisfies the requirement that a script exist may be written like this:&lt;br /&gt;
&lt;br /&gt;
 script 1 (void)&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Displaying Strings ====&lt;br /&gt;
Strings to be displayed by Print or PrintBold in vanilla Hexen should be given in ALL CAPS (the Hexen font uses lowercase letters only, so the in-game message will appear in lowercase.) Strings that contain lowercase letters may be displayed as gibberish.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10262</id>
		<title>Hexen</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10262"/>
		<updated>2022-03-03T21:37:19Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: /* Tools */ SLADE can edit some texts, depending on if they are loaded from a WAD or hardcoded.  Also add DeuTex.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hexen]] is the follow-up game to [[Heretic]].  It added some more mod-friendly definition files for cases such as music assignment, level name and story texts, and animated textures, thus removing some of the necessity of EXE patchers that were required for some of these tasks in Heretic.  It also added features such as moving walls (with some limitations) and level scripting.  Many utilities that support [[Doom]] can be used for Hexen as well, with the notable caveat that Hexen uses an updated version of the level format which must be specifically supported by level editors.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = Some&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Text editing applies only for those strings which can be loaded from a WAD file.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = DeuTex&lt;br /&gt;
| Platform = DOS/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = Some&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Text editing applies only for those strings which can be loaded from a WAD file.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
[https://www.doomworld.com/idgames/docs/editing/hexspc09 The Official Hexen Specs] is the original groundwork for understanding how to make levels for the game, although there are slight inaccuracies in a couple of places.&lt;br /&gt;
&lt;br /&gt;
There is extensive information on the [https://doomwiki.org Doom wiki].  Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Hexen List of bugs present in the official DOS versions of Hexen]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10255</id>
		<title>Hexen</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hexen&amp;diff=10255"/>
		<updated>2022-03-02T01:06:48Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Hexen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Edit&lt;br /&gt;
 | Interface = Edit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hexen]] is the follow-up game to [[Heretic]].  It added some more mod-friendly definition files for cases such as music assignment, level name and story texts, and animated textures, thus removing some of the necessity of EXE patchers that were required for some of these tasks in Heretic.  It also added features such as moving walls (with some limitations) and level scripting.  Many utilities that support [[Doom]] can be used for Hexen as well, with the notable caveat that Hexen uses an updated version of the level format which must be specifically supported by level editors.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto Online#gamearchive.js|Camoto/gamearchive.js]]&lt;br /&gt;
| Platform = Any&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://eureka-editor.sourceforge.net/ Eureka]&lt;br /&gt;
| Platform = Windows/Mac/Linux&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://slade.mancubus.net SLADE]&lt;br /&gt;
| Platform = Windows/Mac&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Edit&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[MUS Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = GENMIDI&lt;br /&gt;
 | Format = [[OP2 Bank Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = FM patches for MUS/MIDI music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = N/A&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.wad&lt;br /&gt;
 | Format = [[WAD Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== More detail ==&lt;br /&gt;
&lt;br /&gt;
[https://www.doomworld.com/idgames/docs/editing/hexspc09 The Official Hexen Specs] is the original groundwork for understanding how to make levels for the game, although there are slight inaccuracies in a couple of places.&lt;br /&gt;
&lt;br /&gt;
There is extensive information on the [https://doomwiki.org Doom wiki].  Some modding-relevant pages include:&lt;br /&gt;
* [https://doomwiki.org/wiki/Engine_bugs_in_Hexen List of bugs present in the official DOS versions of Hexen]&lt;br /&gt;
* [https://doomwiki.org/wiki/Adding_custom_music Adding custom music]&lt;br /&gt;
&lt;br /&gt;
[[Category:Raven Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10254</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10254"/>
		<updated>2022-02-22T20:52:59Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Table of action pointer offsets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills with this weapon will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins; HHE presents the offsets in decimal rather than hex, and they correspond to runtime offsets rather than file ones.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;br /&gt;
&lt;br /&gt;
==== Table of action pointer offsets ====&lt;br /&gt;
Here are the action pointers as named in the Heretic source code, their corresponding HHE offsets, and what function they perform.  Frame reference numbers are based on v1.3 of the Heretic EXE and may differ in earlier versions.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Some actions have a hardcoded sound effect initiated by them as well, which is not always noted on these descriptions.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Offset (v1.3)&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
|A_Look&lt;br /&gt;
|71792&lt;br /&gt;
|Monster - Watch for a player to target&lt;br /&gt;
|-&lt;br /&gt;
|A_Chase&lt;br /&gt;
|71920&lt;br /&gt;
|Monster - Move around, try to approach current target&lt;br /&gt;
|-&lt;br /&gt;
|A_FaceTarget&lt;br /&gt;
|72464&lt;br /&gt;
|Monster - Adjust angle to face towards target&lt;br /&gt;
|-&lt;br /&gt;
|A_Pain&lt;br /&gt;
|72560&lt;br /&gt;
|Play the calling thing&#039;s pain sound, if there is one (customizable with thing properties).&lt;br /&gt;
|-&lt;br /&gt;
|A_DripBlood&lt;br /&gt;
|72592&lt;br /&gt;
|Spawn a blood drip thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_KnightAttack&lt;br /&gt;
|72736&lt;br /&gt;
|Monster - Deal 1d8×3 damage at melee range, otherwise if caller is a ghost knight or by random chance throw a red axe, otherwise throw a green axe.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpExplode&lt;br /&gt;
|72880&lt;br /&gt;
|Throw one of each of the two gargoyle gib things in a random direction.  Potentially forces the calling actor into frame 939.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastPuff&lt;br /&gt;
|73056&lt;br /&gt;
|Approximately 1/4 chance to spawn weredragon fireball&#039;s smoke puffs with somewhat randomized spawn position.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMeAttack&lt;br /&gt;
|73168&lt;br /&gt;
|Monster - Melee attack for 5 to 12 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack&lt;br /&gt;
|73248&lt;br /&gt;
|Monster - Thing charges at target (gargoyle swoop). Random chance to not attack and go back to sight state instead.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpMsAttack2&lt;br /&gt;
|73456&lt;br /&gt;
|Monster - Deal 5 to 12 damage at melee range, or else throw a gargoyle fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpDeath&lt;br /&gt;
|73552&lt;br /&gt;
|Handles gargoyle death fall, forces thing to frame 935 when it hits the floor.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath1&lt;br /&gt;
|73600&lt;br /&gt;
|Setup flags (unsets solid, sets nogravity and footclip) and special for gargoyle crash splatter.&lt;br /&gt;
|-&lt;br /&gt;
|A_ImpXDeath2&lt;br /&gt;
|73648&lt;br /&gt;
|Unsets nogravity flag, checks if thing has hit floor and if so forces its state to frame 935.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicAttack&lt;br /&gt;
|73952&lt;br /&gt;
|Calls some internal checking for chickens {{TODO|What does it do?}}, if passed, do a melee attack for 1 to 2 damage.&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicLook&lt;br /&gt;
|74032&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Look&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicChase&lt;br /&gt;
|74064&lt;br /&gt;
|Calls some internal checking for chickens, if passed, do A_Chase&lt;br /&gt;
|-&lt;br /&gt;
|A_ChicPain&lt;br /&gt;
|74096&lt;br /&gt;
|Calls some internal checking for chickens, then plays the calling thing&#039;s pain sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_Feathers&lt;br /&gt;
|74144&lt;br /&gt;
|Randomly spawn one or two feathers if the calling thing is alive, or 5 to 8 of them if the caller is dead.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack&lt;br /&gt;
|74352&lt;br /&gt;
|Monster - Melee attack for 1d8×2 damage (Golem punch).&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyAttack2&lt;br /&gt;
|74464&lt;br /&gt;
|Deal 1d8×2 damage to target at melee range or else launch a flaming skull projectile (Nitrogolem attack)&lt;br /&gt;
|-&lt;br /&gt;
|A_MummyFX1Seek&lt;br /&gt;
|74560&lt;br /&gt;
|Seeking function for nitrogolem projectiles.&lt;br /&gt;
|-&lt;br /&gt;
|A_MummySoul&lt;br /&gt;
|74592&lt;br /&gt;
|Spawns a golem soul with upwards momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Pain&lt;br /&gt;
|74640&lt;br /&gt;
|Sets the calling thing&#039;s special variable to 20 (for Chaos Serpent rage speedup), then calls A_Pain&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor1Chase&lt;br /&gt;
|74688&lt;br /&gt;
|If the calling thing&#039;s special variable is set, decrement it and speed up the thing&#039;s animation. Then calls A_Chase.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr1Attack&lt;br /&gt;
|74736&lt;br /&gt;
|Deal 1d8×8 damage at melee range, or shoot chaos serpent fireballs. If health is less than 2/3 max then fires spreadshots. If health is less than 1/3 max then additionally gets a random chance for double attacks (can force thing&#039;s frame to 997).&lt;br /&gt;
|-&lt;br /&gt;
|A_SorcererRise&lt;br /&gt;
|75024&lt;br /&gt;
|Spawn thing D&#039;Sparil on foot and makes the calling actor non-blocking. Sets the spawned D&#039;Sparil into frame 1026.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Decide&lt;br /&gt;
|75360&lt;br /&gt;
|By random chance weighted by thing&#039;s level of HP remaining, potentially pick one of D&#039;Sparil&#039;s teleport destinations and warp there.&lt;br /&gt;
|-&lt;br /&gt;
|A_Srcr2Attack&lt;br /&gt;
|75440&lt;br /&gt;
|Monster - Deal 1d8×20 damage at melee range, otherwise by random chance weighted by thing&#039;s remaining HP, either shoot two summoning rings to the sides or one thunderbolt at the target.&lt;br /&gt;
|-&lt;br /&gt;
|A_BlueSpark&lt;br /&gt;
|75664&lt;br /&gt;
|Spawn a thunderbolt sparkle with randomized momentum&lt;br /&gt;
|-&lt;br /&gt;
|A_GenWizard&lt;br /&gt;
|75776&lt;br /&gt;
|Spawn a Disciple of D&#039;Sparil if there is space; calling actor then enters its death state and spawns a teleport flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthInit&lt;br /&gt;
|75936&lt;br /&gt;
|Set actor&#039;s special variable to 7 and kill all monsters&lt;br /&gt;
|-&lt;br /&gt;
|A_Sor2DthLoop&lt;br /&gt;
|75968&lt;br /&gt;
|Decrements the actor&#039;s special variable and if it&#039;s still not zero, set actor&#039;s frame to 1052.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorZap&lt;br /&gt;
|76000&lt;br /&gt;
|Play sound &amp;quot;sorzap&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorRise&lt;br /&gt;
|76032&lt;br /&gt;
|Play sound &amp;quot;sorrise&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDSph&lt;br /&gt;
|76064&lt;br /&gt;
|Play sound &amp;quot;sordsph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDExp&lt;br /&gt;
|76096&lt;br /&gt;
|Play sound &amp;quot;sordexp&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorDBon&lt;br /&gt;
|76128&lt;br /&gt;
|Play sound &amp;quot;sordbon&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_SorSightSnd&lt;br /&gt;
|76160&lt;br /&gt;
|Play sound &amp;quot;sorsit&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk1&lt;br /&gt;
|76192&lt;br /&gt;
|Maulotaur hammer smash for 1d8×4 melee damage, knocks player view down, hardcoded hit sound &amp;quot;stfpow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurDecide&lt;br /&gt;
|76304&lt;br /&gt;
|Maulotaur multi-attack handler and charging initiator. Can force calling thing into frame 1103 or 1107.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurCharge&lt;br /&gt;
|76576&lt;br /&gt;
|Maulotaur charging handler, spawns phoenix smoke puffs and decrements special counter, ends charge if counter has run down. Actual charge is initiated by A_MinotaurDecide.&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk2&lt;br /&gt;
|76656&lt;br /&gt;
|Fire a spreadshot of 5 maulotaur fire shots or do 1d8×5 melee damage, depending on target range&lt;br /&gt;
|-&lt;br /&gt;
|A_MinotaurAtk3&lt;br /&gt;
|76896&lt;br /&gt;
|1d8×5 melee strike if in range, or spawn Maulotaur fire trail head, random chance of looping to frame 1106&lt;br /&gt;
|-&lt;br /&gt;
|A_MntrFloorFire&lt;br /&gt;
|77072&lt;br /&gt;
|Do Maulotaur floor fire trail, spawns fire tail&lt;br /&gt;
|-&lt;br /&gt;
|A_BeastAttack&lt;br /&gt;
|77184&lt;br /&gt;
|Do 1d8×3 damage at melee range or else shoot a weredragon fireball.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadAttack&lt;br /&gt;
|77296&lt;br /&gt;
|Deals 1d8×6 damage at melee range or else fire an iron lich projectile: possibilities are ice ball, fire (potentially forced to frame 830), or tornado.&lt;br /&gt;
|-&lt;br /&gt;
|A_WhirlwindSeek&lt;br /&gt;
|77728&lt;br /&gt;
|Handler for tornado seeking its target.&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadIceImpact&lt;br /&gt;
|77888&lt;br /&gt;
|Fire a ring of 8 Iron Lich ice shards (designed to be called from a projectile, monsters may hurt themselves if they call it directly).&lt;br /&gt;
|-&lt;br /&gt;
|A_HeadFireGrow&lt;br /&gt;
|78048&lt;br /&gt;
|Counts down using the things health variable, adjusting its vertical position. When health is 0, force frame to 830.&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack&lt;br /&gt;
|78112&lt;br /&gt;
|Fires Ophidian shot type 1, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_SnakeAttack2&lt;br /&gt;
|78192&lt;br /&gt;
|Fires Ophidian shot type 2, or forces actor to frame 760 if no target&lt;br /&gt;
|-&lt;br /&gt;
|A_ClinkAttack&lt;br /&gt;
|78272&lt;br /&gt;
|Melee attack for 8 to 10 damage (Sabreclaw slash)&lt;br /&gt;
|-&lt;br /&gt;
|A_GhostOff&lt;br /&gt;
|78368&lt;br /&gt;
|Removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk1&lt;br /&gt;
|78384&lt;br /&gt;
|Calls A_FaceTarget and removes the ghost flag from the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk2&lt;br /&gt;
|78416&lt;br /&gt;
|Calls A_FaceTarget and sets the ghost flag on the calling thing.&lt;br /&gt;
|-&lt;br /&gt;
|A_WizAtk3&lt;br /&gt;
|78448&lt;br /&gt;
|Removes the ghost flag from the calling thing, deal 1d8×4 damage at melee range or else fire a spread of three wizard shots.&lt;br /&gt;
|-&lt;br /&gt;
|A_Scream&lt;br /&gt;
|78640&lt;br /&gt;
|Plays a thing&#039;s death sound. Maulotaurs, mounted D&#039;Sparils, and chicken players make full-volume screams. Players make one of four different sounds depending on the intensity of death {{TODO|Note the sound names}}. Otherwise just makes the death sound normally.&lt;br /&gt;
|-&lt;br /&gt;
|A_NoBlocking&lt;br /&gt;
|78896&lt;br /&gt;
|Unsets the SOLID flag, and also does random item drops for certain thing types.&lt;br /&gt;
|-&lt;br /&gt;
|A_Explode&lt;br /&gt;
|79312&lt;br /&gt;
|Deal blast damage. Time Bombs, Maulotaur fire and D&#039;Sparil lightning have some individual hardcoded effects here, everything else just explodes like a Doom rocket/barrel.&lt;br /&gt;
|-&lt;br /&gt;
|A_PodPain&lt;br /&gt;
|79424&lt;br /&gt;
|Randomly spawn pod particles. {{TODO|Randomly according to what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_RemovePod&lt;br /&gt;
|79584&lt;br /&gt;
|Decrement parent&#039;s special variable (pod spawn limiting counter).&lt;br /&gt;
|-&lt;br /&gt;
|A_MakePod&lt;br /&gt;
|79632&lt;br /&gt;
|As long as the calling actor&#039;s special variable is not 16, attempt to create a pod if there is space. The new pod&#039;s frame is forced to 103.&lt;br /&gt;
|-&lt;br /&gt;
|A_BossDeath&lt;br /&gt;
|79872&lt;br /&gt;
|Handle boss monster death specials (tag 666 when map number is 8), with hardcoded boss types per episode (Iron Lich, Maulotaur, D&#039;Sparil, Iron Lich, Maulotaur respectively). Potentially kill all other monsters if episode is not E1.&lt;br /&gt;
|-&lt;br /&gt;
|A_ESound&lt;br /&gt;
|80000&lt;br /&gt;
|Play waterfall or wind sounds. Thing type is hardcoded and does not work for any other thing number, and HHE does not conveniently extend to these things. Sounds won&#039;t play on other things.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter&lt;br /&gt;
|80048&lt;br /&gt;
|Spawner for teleport glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnTeleGlitter2&lt;br /&gt;
|80128&lt;br /&gt;
|Spawner for exit glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_AccTeleGlitter&lt;br /&gt;
|80208&lt;br /&gt;
|Increment calling actor&#039;s health variable and if it exceeds 35, increase vertical momentum by 50% of its current value.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitKeyGizmo&lt;br /&gt;
|80256&lt;br /&gt;
|Create an orb. The frame of this orb is decided by the calling thing&#039;s type. {{TODO|Note the possible results properly.}}&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoSet&lt;br /&gt;
|80352&lt;br /&gt;
|Randomizes the tic duration of the calling thing&#039;s current frame, from 105 to 232.&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcanoBlast&lt;br /&gt;
|80384&lt;br /&gt;
|Volcano eruption launching 1 to 3 large lava balls&lt;br /&gt;
|-&lt;br /&gt;
|A_VolcBallImpact&lt;br /&gt;
|80608&lt;br /&gt;
|Handle explosion of a lava ball, spawning for little lava bits.&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullPop&lt;br /&gt;
|80816&lt;br /&gt;
|Spawns a player&#039;s decapitated head, attaches player&#039;s view to it (not advisable to use on non-players) {{TODO|I&#039;m sure bad things may happen if used on a non-player, but what are they?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullFloor&lt;br /&gt;
|80976&lt;br /&gt;
|If calling thing has hit floor, force it to frame 622.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckSkullDone&lt;br /&gt;
|81008&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 623.&lt;br /&gt;
|-&lt;br /&gt;
|A_CheckBurnGone&lt;br /&gt;
|81040&lt;br /&gt;
|If calling things&#039;s special2 variable has reached 666, force thing&#039;s frame to 616.&lt;br /&gt;
|-&lt;br /&gt;
|A_FreeTargMobj&lt;br /&gt;
|81072&lt;br /&gt;
|Unsets SHOOTABLE, SOLID, FLOAT, SKULLFLY, PASSMOBJ, and LOGRAV flags, sets CORPSE, DROPOFF, NOGRAVITY flags, detaches thing from a player.&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerCorpse&lt;br /&gt;
|81168&lt;br /&gt;
|Manage a list for existing player corpses and delete an old one if there are too many. {{TODO|How many is &amp;quot;too many&amp;quot;?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameSnd&lt;br /&gt;
|81264&lt;br /&gt;
|Play sound &amp;quot;headat1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideThing&lt;br /&gt;
|81296&lt;br /&gt;
|Set calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_UnHideThing&lt;br /&gt;
|81312&lt;br /&gt;
|Unset calling thing&#039;s DONTDRAW flag.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreArtifact&lt;br /&gt;
|84528&lt;br /&gt;
|Respawns an item, with a respawning sound effect.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing1&lt;br /&gt;
|84608&lt;br /&gt;
|If the calling thing is a firemace, then call the mace pickup randomizer. Regardless, make the calling thing visible and play a respawn sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_RestoreSpecialThing2&lt;br /&gt;
|84656&lt;br /&gt;
|Respawn an item, without sound.&lt;br /&gt;
|-&lt;br /&gt;
|A_ContMobjSound&lt;br /&gt;
|111056&lt;br /&gt;
|Hardcoded sound handler for projectiles, if the calling thing type is a knight axe plays sound &amp;quot;kgtatk&amp;quot;, for nitrogolem shots plays &amp;quot;mumhed&amp;quot;. Does nothing otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|A_WeaponReady&lt;br /&gt;
|113728&lt;br /&gt;
|Weapon - placed on frames where the weapon is prepared to respond to the player&#039;s fire button. Contains some special handling, for instance, if called from frame 240 then there is a random chance of playing sound &amp;quot;stfcrk&amp;quot;. {{TODO|Description implies there&#039;s other special handling, what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakReady&lt;br /&gt;
|114128&lt;br /&gt;
|Weapon - Special handling for chicken beak&#039;s ready states&lt;br /&gt;
|-&lt;br /&gt;
|A_ReFire&lt;br /&gt;
|114256&lt;br /&gt;
|Weapon - Check if the player is holding down the fire button, and continue firing the weapon if appropriate.&lt;br /&gt;
|-&lt;br /&gt;
|A_Lower&lt;br /&gt;
|114320&lt;br /&gt;
|Weapon - Handler for putting a weapon away (lowers sprite towards bottom of screen and switches weapons when it&#039;s lowered enough.) Also handles weapon disappearing from screen if player is killed.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakRaise&lt;br /&gt;
|114416&lt;br /&gt;
|Weapon - Special handler for the chicken beak becoming the current weapon. Weapon raising is done instantly and does not take into account Tome of Power status.&lt;br /&gt;
|-&lt;br /&gt;
|A_Raise&lt;br /&gt;
|114480&lt;br /&gt;
|Weapon - Handler for selecting a new weapon, shows sprite rising onto the screen and selects weapon ready state depending on if the Tome of Power is active.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL1&lt;br /&gt;
|114720&lt;br /&gt;
|Weapon - Beak peck, melee attack for 1 to 4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_BeakAttackPL2&lt;br /&gt;
|114896&lt;br /&gt;
|Weapon - Super beak peck, melee attack for 1d8×4 damage and sets player&#039;s &amp;quot;chickenPeck&amp;quot; variable to 12.&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL1&lt;br /&gt;
|115088&lt;br /&gt;
|Weapon - Staff normal jab, deal 5 to 20 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_StaffAttackPL2&lt;br /&gt;
|115232&lt;br /&gt;
|Weapon - Staff tomed jab, deal 18 to 81 melee damage (no ammo)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL1&lt;br /&gt;
|115376&lt;br /&gt;
|Weapon - Dragon Claw fire, hitscan for 1d8×4 damage, accuracy decreases if refiring (1 energy orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireBlasterPL2&lt;br /&gt;
|115520&lt;br /&gt;
|Weapon - Dragon Claw tomed fire, launches a tomed claw projectile (thing #65) which is given special fast-projectile movement logic (5 energy orbs)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL1&lt;br /&gt;
|115600&lt;br /&gt;
|Weapon - Elven Wand fire, hitscan for 7 to 14 damage, accuracy decreases if refiring (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireGoldWandPL2&lt;br /&gt;
|115744&lt;br /&gt;
|Weapon - Elven Wand tomed fire, launch two wand projectiles at angles, plus a spread of five hitscans that do 1 to 8 damage each (1 wand crystal)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL1&lt;br /&gt;
|116208&lt;br /&gt;
|Weapon - Firemace fire, usually fires a small mace ball, but has random chance to lob a larger ball with momentum affected by the firing player&#039;s momentum (1 mace sphere)&lt;br /&gt;
|-&lt;br /&gt;
|A_MacePL1Check&lt;br /&gt;
|116352&lt;br /&gt;
|Decrements the calling thing&#039;s special variable and if it&#039;s brought to or below 0, turn on the LOGRAV flag and adjust its angle/momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact&lt;br /&gt;
|116464&lt;br /&gt;
|Handle mace balls bouncing or landing in liquid, also being destroyed when done bouncing.&lt;br /&gt;
|-&lt;br /&gt;
|A_MaceBallImpact2&lt;br /&gt;
|116624&lt;br /&gt;
|Similar to the above but also spawns a pair of tiny mace balls.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireMacePL2&lt;br /&gt;
|117056&lt;br /&gt;
|Weapon - Firemace tomed fire, lobs a giant ball with momentum affected by the firing player&#039;s movement (5 mace spheres)&lt;br /&gt;
|-&lt;br /&gt;
|A_DeathBallImpact&lt;br /&gt;
|117184&lt;br /&gt;
|Handles bouncing and target-seeking properties of the giant mace ball.&lt;br /&gt;
|-&lt;br /&gt;
|A_SpawnRippers&lt;br /&gt;
|117520&lt;br /&gt;
|Tomed Dragon Claw blast ring, spawns a ring of eight claw rippers.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL1&lt;br /&gt;
|117664&lt;br /&gt;
|Weapon - Crossbow fire, shoot one centered large bolt and two small ones at angles (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireCrossbowPL2&lt;br /&gt;
|117744&lt;br /&gt;
|Weapon - Crossbow tomed fire, shoot three super bolts and two small ones (1 arrow)&lt;br /&gt;
|-&lt;br /&gt;
|A_BoltSpark&lt;br /&gt;
|117888&lt;br /&gt;
|Spawns crossbow bolt glitter.&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL1&lt;br /&gt;
|118000&lt;br /&gt;
|Weapon - Hellstaff fire, shoot a projectile with a random chance to force the projectile&#039;s frame to 394 (1 rune)&lt;br /&gt;
|-&lt;br /&gt;
|A_FireSkullRodPL2&lt;br /&gt;
|118080&lt;br /&gt;
|Weapon - Hellstaff tomed fire, shoot a tomed projectile, uses special variable for seeking/sounds and special 2 variable to remember owning player (5 runes)&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodPL2Seek&lt;br /&gt;
|118208&lt;br /&gt;
|Calls seeking missile function with parameters set for Hellstaff&#039;s tomed shots&lt;br /&gt;
|-&lt;br /&gt;
|A_AddPlayerRain&lt;br /&gt;
|118240&lt;br /&gt;
|Handler for initializing acid rain storms from Hellstaff&lt;br /&gt;
|-&lt;br /&gt;
|A_SkullRodStorm&lt;br /&gt;
|118416&lt;br /&gt;
|Spawn raindrops, thing type varies depending on the calling actor&#039;s special 2 variable (different color rain for the four players).&lt;br /&gt;
|-&lt;br /&gt;
|A_RainImpact&lt;br /&gt;
|118688&lt;br /&gt;
|Potentially set thing&#039;s frame to 437 through 440 depending on it&#039;s special 2 variable.&lt;br /&gt;
|-&lt;br /&gt;
|A_HideInCeiling&lt;br /&gt;
|118752&lt;br /&gt;
|Move the calling thing up into the ceiling.&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL1&lt;br /&gt;
|118784&lt;br /&gt;
|Weapon - Phoenix Rod fire, launch a phoenix projectile and apply recoil momentum to the firing player&lt;br /&gt;
|-&lt;br /&gt;
|A_PhoenixPuff&lt;br /&gt;
|118896&lt;br /&gt;
|Spawns two Phoenix shot smoke trails.&lt;br /&gt;
|-&lt;br /&gt;
|A_InitPhoenixPL2&lt;br /&gt;
|119120&lt;br /&gt;
|Weapon - sets firing player&#039;s &amp;quot;flamecount&amp;quot; variable {{TODO|To what?}}&lt;br /&gt;
|-&lt;br /&gt;
|A_FirePhoenixPL2&lt;br /&gt;
|119136&lt;br /&gt;
|Weapon - Decreases player&#039;s flamecount variable and forces weapon frame to 485 if the fire has run out, otherwise shoots phoenix flames with influence from player&#039;s momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_ShutdownPhoenixPL2&lt;br /&gt;
|119504&lt;br /&gt;
|Weapon - Decrements player&#039;s Phoenix Rod ammo (1 flame orb)&lt;br /&gt;
|-&lt;br /&gt;
|A_FlameEnd&lt;br /&gt;
|119520&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_FloatPuff&lt;br /&gt;
|119552&lt;br /&gt;
|Adjusts calling thing&#039;s vertical momentum.&lt;br /&gt;
|-&lt;br /&gt;
|A_GauntletAttack&lt;br /&gt;
|119584&lt;br /&gt;
|Weapon - Gauntlet, if player is Tomed, do extended-range melee for 1d8×2 damage with red puff and life steal for half of damage dealt, otherwise do 1d8×2 melee damage with green puff, both modes also set weapon light flash.&lt;br /&gt;
|-&lt;br /&gt;
|A_Light0&lt;br /&gt;
|120064&lt;br /&gt;
|Weapon - Turns off weapon&#039;s light flash&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10253</id>
		<title>Heretic/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Heretic/Modding_Tips&amp;diff=10253"/>
		<updated>2022-02-22T16:45:15Z</updated>

		<summary type="html">&lt;p&gt;Mysterioso: Table of thing bit flags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HHE ==&lt;br /&gt;
&lt;br /&gt;
=== Using HHE with Heretic v1.3 ===&lt;br /&gt;
For working with Heretic: Shadow of the Serpent Riders (aka Heretic v1.3) some changes to the default HHE.INI file are required. The values to use are as follows:&lt;br /&gt;
&lt;br /&gt;
    size = 728031&lt;br /&gt;
    thingoff = 617600&lt;br /&gt;
    soundoff = 639734&lt;br /&gt;
    frameoff = 583860&lt;br /&gt;
    spriteoff = 583348&lt;br /&gt;
    ammooff = 635780&lt;br /&gt;
    weaponoff = 636204&lt;br /&gt;
    textoff = 563284&lt;br /&gt;
    codepoff = 258020&lt;br /&gt;
&lt;br /&gt;
HHE gives the wrong names for some of the things in the Things panel when used with v1.3.  Heretic&#039;s internal thing table was altered between versions; the discrepancy begins at entry 88 and it seems that the &amp;quot;Phoenix Puff&amp;quot; object was removed.  At this point, the next thing name after the thing in question is the one that the thing should actually have.  Thing 159 is the wind ambient sound and thing 160 is the HHE clipboard as usual.&lt;br /&gt;
&lt;br /&gt;
=== Things panel (F2) ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;burning frame&amp;quot; is actually a &amp;quot;crash frame&amp;quot; used when falling gargoyles splatter on the ground.  Only players have a special burning death, and monsters cannot be given this property.&lt;br /&gt;
&lt;br /&gt;
==== Table of Thing Flags ====&lt;br /&gt;
Several of the flag descriptions HHE gives for the thing bits are incomplete, unhelpful or outright incorrect. Here&#039;s a table of what internal names they correspond to and what they do, arranged in the same way that the HHE screen itself presents them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 1 (flags) &amp;lt;br /&amp;gt; The original flags set inherited from Doom, with a few adjustments&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Gettable Thing&lt;br /&gt;
MF_SPECIAL: Will trigger thing pickup code depending on what the thing&#039;s sprite is currently set at. If the sprite is not on the list of valid gettables, the game will terminate.&lt;br /&gt;
| width=50% | 16 Projectiles&lt;br /&gt;
MF_MISSILE: Handle this object as a missile.&lt;br /&gt;
|-&lt;br /&gt;
|1 Obstacle&lt;br /&gt;
MF_SOLID: Will block movement of other things.&lt;br /&gt;
|17 Disappearing Item&lt;br /&gt;
MF_DROPPED: Item will not respawn and can be crushed by moving sectors. Automatically set on items dropped by monsters.&lt;br /&gt;
|-&lt;br /&gt;
|2 Shootable Thing&lt;br /&gt;
MF_SHOOTABLE: Handle this object as one which can be shot and damaged.&lt;br /&gt;
|18 Partial Invisibility&lt;br /&gt;
MF_SHADOW: Drawn translucent; when applied to shootable things, they are treated as ghosts (THRUGHOST projectiles pass through them without causing damage, staff cannot hit them, monsters have trouble targeting.)  This is a single flag in standard Heretic, as opposed to ports which decouple translucency from ghostliness.&lt;br /&gt;
|-&lt;br /&gt;
|3 Total Invisibility&lt;br /&gt;
MF_NOSECTOR: Used for certain invisible support objects like teleport destinations and pod/glitter spawners. Unsure of the separation between this and MF2_DONTDRAW, aside that NOSECTOR flagged items don&#039;t get linked to a subsector.&lt;br /&gt;
|19 Puffs (vs. bleeds)&lt;br /&gt;
MF_NOBLOOD: Don&#039;t spawn blood splatters when hit (used together with SHOOTABLE).&lt;br /&gt;
|-&lt;br /&gt;
|4 &#039;Automatics&#039;&lt;br /&gt;
MF_NOBLOCKMAP: Don&#039;t link into the blockmap. Things with this flag set will be walk-through and shoot-through; overrides SHOOTABLE and SOLID if they are also set. By default, projectiles are flagged with this, among other things.&lt;br /&gt;
|20 Sliding Helpless&lt;br /&gt;
MF_CORPSE: Internally set on dead bodies to make them tumble down stairs.&lt;br /&gt;
|-&lt;br /&gt;
|5 Semi-Deaf&lt;br /&gt;
MF_AMBUSH: Typically set by map designer rather than directly on enemies. Thing will not activate its chase sequence unless there is a line of sight to its intended target; hearing weapon fire gives it 360-degree vision but will not otherwise &amp;quot;awaken&amp;quot; it.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
MF_INFLOAT: Used internally when an enemy is in the process of floating to a different height.&lt;br /&gt;
|-&lt;br /&gt;
|6 In Pain&lt;br /&gt;
MF_JUSTHIT: Used internally for infighting retaliation. Setting it on a thing at spawn time makes projectile enemies respond aggressively when first activated but the flag will then be flipped back off.&lt;br /&gt;
|22 Counts for Kills&lt;br /&gt;
MF_COUNTKILL: Counts for kills on the end of level score. Is also treated as a monster for a few other purposes: -respawn and -nomonsters modes, and will also receive massive (gibbing) damage if a Massacre event is triggered (boss death event, cheat code)&lt;br /&gt;
|-&lt;br /&gt;
|7 Unknown&lt;br /&gt;
MF_JUSTATTACKED: Used internally for projectile attack limiting when not on the top skill level. Setting it on a thing at spawn time makes projectile enemies less aggressive when first activated but the flag will then be flipped back off. If JUSTATTACKED and JUSTHIT are both set at spawn time, JUSTATTACKED is the one that holds sway.&lt;br /&gt;
|23 Counts for Items&lt;br /&gt;
MF_COUNTITEM: Counts for items on the end of level score.&lt;br /&gt;
|-&lt;br /&gt;
|8 Hangs from Ceiling&lt;br /&gt;
MF_SPAWNCEILING: Start at ceiling height instead of on the ground. Will fall unless NOGRAVITY is also set.&lt;br /&gt;
|24 Running&lt;br /&gt;
MF_SKULLFLY: Used internally for swooping/charging monsters.&lt;br /&gt;
|-&lt;br /&gt;
|9 No Gravity&lt;br /&gt;
MF_NOGRAVITY: Don&#039;t apply gravity; for example flying monsters and most missiles.&lt;br /&gt;
|25 Not in Deathmatch&lt;br /&gt;
MF_NOTDMATCH: Don&#039;t spawn in deathmatch games (used on keys, by default)&lt;br /&gt;
|-&lt;br /&gt;
|10 Travels Up Cliffs&lt;br /&gt;
MF_DROPOFF: Ignore heights when crossing two-sided lines. Normally monsters and projectiles are blocked from crossing to a lower sector from a significantly higher one. This is typically set for projectiles and not set for monsters. Flying monsters do not need this. (It would be slightly more accurate to call this &amp;quot;Travels &#039;&#039;&#039;Down&#039;&#039;&#039; Cliffs&amp;quot;, but has more to do with crossing boundaries than the direction traveled).&lt;br /&gt;
|26 Color 1 (yel./blue)&lt;br /&gt;
Color translation part 1. If just this part is set, green becomes yellow. If both translations flags are set, green becomes blue. {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|11 Can pick up items&lt;br /&gt;
MF_PICKUP: Allows this thing to remove gettable items, normally set only on players. Does not appear to have an effect on non-player things.&lt;br /&gt;
|27 Color 2 (red/blue)&lt;br /&gt;
Color translation part 2. If just this part is set, green becomes red. If both translations flags are set, green becomes blue.  {{TODO|Specific palette ranges?}}&lt;br /&gt;
|-&lt;br /&gt;
|12 No Clipping&lt;br /&gt;
MF_NOCLIP: Allows things to move through walls.&lt;br /&gt;
|28 Unused&lt;br /&gt;
|-&lt;br /&gt;
|13 Unknown&lt;br /&gt;
MF_SLIDE: Never used, does not trigger any code.&lt;br /&gt;
|29 Unused&lt;br /&gt;
|-&lt;br /&gt;
|14 Floating&lt;br /&gt;
MF_FLOAT: Paired with NOGRAVITY, allow a monster to fly.&lt;br /&gt;
|30 Unused&lt;br /&gt;
|-&lt;br /&gt;
|15 Semi-No Clipping&lt;br /&gt;
MF_TELEPORT: Don&#039;t trigger line specials. Projectiles/charging monsters will &amp;quot;jump&amp;quot; to the nearest floor/ceiling on the other side when hitting a two-sided line (never used by default).&lt;br /&gt;
|31 Unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ Bits Page 2 (flags2) &amp;lt;br /&amp;gt;&lt;br /&gt;
The new flags added for Heretic, many of which are incompletely or incorrectly described in HHE&lt;br /&gt;
|-&lt;br /&gt;
| width=50% | 0 Subject to Inertia&lt;br /&gt;
MF2_LOGRAV: Effect of gravity on this object is divided by 8.&lt;br /&gt;
| width=50% | 16 Causes Burning Death&lt;br /&gt;
MF2_FIREDAMAGE: Kills with this weapon will initiate a burning death sequence for players and &#039;&#039;&#039;only&#039;&#039;&#039; players.&lt;br /&gt;
|-&lt;br /&gt;
|1 Blown by Wind&lt;br /&gt;
MF2_WINDTHRUST: Wind sectors will push this object.&lt;br /&gt;
|17 Does Not Push Things&lt;br /&gt;
MF2_NODMGTHRUST: Doesn&#039;t cause damage momentum when hitting something (projectiles)&lt;br /&gt;
|-&lt;br /&gt;
|2 Bounces&lt;br /&gt;
MF2_FLOORBOUNCE: For bouncing projectiles. The projectile is set to its death state upon hitting the floor, but can still deal damage after bouncing. Firemace code pointers can also be used at the start of the death sequence to reset the projectile to its spawn state (with other potential effects).&lt;br /&gt;
|18 Telefrags&lt;br /&gt;
MF2_TELESTOMP: This thing is allowed to telefrag things if one sits at the destination point of an attempted teleport. If this flag is not set, the thing is forbidden to teleport to a blocked position.&lt;br /&gt;
|-&lt;br /&gt;
|3 Goes Through Invis.&lt;br /&gt;
MF2_THRUGHOST: A projectile does not collide with things that have the SHADOW flag, instead passing through with no damage. No other effects (won&#039;t work on monsters, melee, or hitscans - immunity to staff jabs is handled separately in a hardcoded manner).&lt;br /&gt;
|19 Bobbing&lt;br /&gt;
MF2_FLOATBOB: Object bobs up and down (used by default on some pickups). Highjacks the object&#039;s health variable to manage bobbing, randomizing it at level start and continually increasing it afterwards. Due to this, killable things given the flag will be almost invincible. Also manually sets object&#039;s vertical position, preventing free flight on mobile objects.&lt;br /&gt;
|-&lt;br /&gt;
|4 Pushable Up Cliffs&lt;br /&gt;
MF2_FLY: Intended for players with Wings of Wrath and may be set/unset internally when used on a player object. On monsters or pushables, gives them certain altered flying player physics, which changes their friction and makes them attempt to drift up/down to a passable level when blocked by an object or two-sided wall, which can have potentially interesting (ab)uses.&lt;br /&gt;
|20 Unknown&lt;br /&gt;
MF2_DONTDRAW: Total invisibility, never consumes visible sprite quota. Used internally for picked-up items that are awaiting a respawn.&lt;br /&gt;
|-&lt;br /&gt;
|5 Walks IN Liquids&lt;br /&gt;
MF2_FOOTCLIP: If an object has this flag, then the MF2_FEETARECLIPPED flag will be toggled if it moves into/out of a liquid floor.&lt;br /&gt;
|21 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|6 Starts on Floor&lt;br /&gt;
MF2_SPAWNFLOAT: Floating object is given a random vertical height at the start of the map. Exactly opposite of what HHE implies, flying monsters start on the floor if this flag is &#039;&#039;&#039;not&#039;&#039;&#039; set (excepting the effect of SPAWNCEILING).&lt;br /&gt;
|22 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|7 Does Not Teleport&lt;br /&gt;
MF2_NOTELEPORT: Forbidden from teleporting. Usually set on projectiles by default, which in Heretic can teleport if not flagged otherwise here.&lt;br /&gt;
|23 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|8 Dragon Claw Spikes (?)&lt;br /&gt;
MF2_RIP: Projectiles pass through shootable objects, doing repeated damage as they go.&lt;br /&gt;
|24 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|9 Pushable&lt;br /&gt;
MF2_PUSHABLE: If another thing bumps this thing, some momentum will be transferred unless the bumper is flagged CANNOTPUSH.&lt;br /&gt;
|25 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|10 Only Hits Monsters&lt;br /&gt;
MF2_SLIDE: &amp;quot;Slides&amp;quot; along walls, the path being deflected instead of blocked when hitting them; normally used for player and pushables. Projectiles also won&#039;t die when hitting walls/things and will generally act semi-similarly to MF2_RIP when hitting a monster. Use on regular projectiles is a bit strange, but combines well with FLOORBOUNCE on gravity-affected missiles to create the appearance of a projectile that bounces off both floors and walls.&lt;br /&gt;
|26 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|11 Unknown&lt;br /&gt;
MF2_ONMOBJ: Internal, set if standing on another object. Affects movement friction when set. ([https://doomwiki.org/wiki/Landing_on_solid_objects_causes_erroneous_air_control_and_friction Also causes some strange effects as it is never unset by the game].)&lt;br /&gt;
|27 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|12: Unknown&lt;br /&gt;
MF2_PASSMOBJ: Allows this thing to move over/under other things (given to monsters). There is a hardcoded exception for Gargoyles and Disciples of D&#039;Sparil that forbids them from going over/under each other, possibly related to the flying monsters sticking together bug.&lt;br /&gt;
|28 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|13: Particles (?)&lt;br /&gt;
MF2_CANNOTPUSH: This thing cannot push PUSHABLE things. If MISSILE is set, then this is irrelevant unless RIP is also set (rippers can push). For other projectiles see NODMGTHRUST instead.&lt;br /&gt;
|29 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|14: Unknown&lt;br /&gt;
MF2_FEETARECLIPPED: Used internally to handle standing in liquids, likely not useful for setting in hacks (the game adjusts it according to the floor the object is on). Instead, set FOOTCLIP on objects that you want the standing sunken in water effect to apply to.&lt;br /&gt;
|30 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|-&lt;br /&gt;
|15: Varying Damage&lt;br /&gt;
MF2_BOSS: This thing is a boss monster. Affects infighting (no retaliation against bosses) and some weapon damage formulae such as rain and tomed mace instakills.&lt;br /&gt;
|31 Unknown&lt;br /&gt;
Not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Frames panel (F3) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you adjust the frames list.  This is the data that controls animation of things, as well as special actions in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bright Sprite&amp;quot; will flag a frame to be drawn at fullbright regardless of the light level of the sector the thing is in, for things like fire and glowing projectiles.&lt;br /&gt;
&lt;br /&gt;
Changing the code pointer field here &#039;&#039;&#039;does nothing&#039;&#039;&#039;.  If you want to change code pointers, you need to use the F8 Pointers screen.  It is also worth noting that code pointers cannot be added to frames that have none, so some adjustment of the &amp;quot;next frame&amp;quot; properties may be necessary to get the desired effects.  It may be desirable to reflect your pointer changes here as well, though, just in case.&lt;br /&gt;
&lt;br /&gt;
=== Text panel (F7) ===&lt;br /&gt;
&lt;br /&gt;
This section lets you change the game&#039;s text messages, like level names and episode end texts.&lt;br /&gt;
&lt;br /&gt;
There are some specific requirements for the level names.  Make sure they are in ALL CAPS and that they are prefaced in the format of &amp;quot;ExMx:  &amp;quot; with two spaces after the colon (or, at least, that there are seven optional characters before the actual map title).  These first seven characters appear on the automap screen but are removed from the string when displaying the level intermission screen.&lt;br /&gt;
&lt;br /&gt;
Although HHE may insist on a minimum string length, this is usually incorrect, the maximum string length is the one that always matters.  In most cases it&#039;s fine to pad the end of the string with spaces to fill out the length that HHE demands.  In some cases, it may be necessary to manually edit the patch that HHE outputs, though, such as when WAD entry names must be referenced exactly.&lt;br /&gt;
&lt;br /&gt;
If you go down enough pages in the text panel, you&#039;ll start encountering messed-up non-text &amp;quot;strings&amp;quot;.  It&#039;s another shortcoming of the program, and these should not be touched.  You may need to keep an eye out for your patches getting corrupted due to these, too.&lt;br /&gt;
&lt;br /&gt;
=== Pointers (F8) ===&lt;br /&gt;
This is where you can reassign the functions that certain frames will perform.  This is unfortunately an unintuitive section of the program, with no clear indication what frames the pointers are attached to or what the offsets mean.  Without a reference table, most things have to be discovered by some educated guesswork and a lot of trial and error.&lt;br /&gt;
&lt;br /&gt;
Essentially, each offset represents a location in the EXE where an action function begins.  By changing them, you can set the corresponding frame to perform a different action than it would by default.  When altering code pointers on the code pointer screen, you can direct the execution pretty much anywhere in the program. This could have useful effects but is also potentially risky to experiment indiscriminately with (you could crash the game or your computer if you send the execution to instructions that are invalid).  It is highly advised to stick to the known valid offsets.&lt;br /&gt;
&lt;br /&gt;
Weapon codepointers should not be used on monsters, and monster codepointers should not be used on weapons.  The best way to put a monster attack on a weapon or vice versa is by altering thing and frame properties to emulate the attack.&lt;/div&gt;</summary>
		<author><name>Mysterioso</name></author>
	</entry>
</feed>