shithub: choc

Download patch

ref: abb5f33199e6fe036d068b5a5f59e58e1505eb8e
parent: c33c1fa07680ef07540fb1c48a323bdc816e3e77
author: Simon Howard <fraggle@gmail.com>
date: Sat Feb 6 19:59:56 EST 2010

Add back unused phoenix rod object, frames, and dummy action pointer.
These were in Heretic 1.0 but were later removed. Also add comments to
info.h noting fire-death frames that were added Heretic 1.0. This is
necessary for HHE support.

Subversion-branch: /branches/raven-branch
Subversion-revision: 1854

--- a/src/heretic/info.c
+++ b/src/heretic/info.c
@@ -95,6 +95,7 @@
 void A_FirePhoenixPL2();
 void A_ShutdownPhoenixPL2();
 void A_PhoenixPuff();
+void A_RemovedPhoenixPuff();
 void A_FlameEnd();
 void A_FloatPuff();
 void A_FireCrossbowPL1();
@@ -663,6 +664,9 @@
     {SPR_FX08, 32773, 4, NULL, S_PHOENIXFXI1_7, 0, 0},  // S_PHOENIXFXI1_6
     {SPR_FX08, 32774, 4, NULL, S_PHOENIXFXI1_8, 0, 0},  // S_PHOENIXFXI1_7
     {SPR_FX08, 32775, 4, NULL, S_NULL, 0, 0},   // S_PHOENIXFXI1_8
+    {SPR_FX08, 32776, 8, NULL, S_PHOENIXFXIX_1, 0, 0 }, // S_PHOENIXFXIX_1
+    {SPR_FX08, 32777, 8, A_RemovedPhoenixFunc, S_PHOENIXFXIX_2, 0, 0 },  // S_PHOENIXFXIX_2
+    {SPR_FX08, 32778, 8, NULL, S_NULL, 0, 0 },          // S_PHOENIXFXIX_3
     {SPR_FX04, 1, 4, NULL, S_PHOENIXPUFF2, 0, 0},       // S_PHOENIXPUFF1
     {SPR_FX04, 2, 4, NULL, S_PHOENIXPUFF3, 0, 0},       // S_PHOENIXPUFF2
     {SPR_FX04, 3, 4, NULL, S_PHOENIXPUFF4, 0, 0},       // S_PHOENIXPUFF3
@@ -3725,6 +3729,37 @@
      sfx_None,                  // activesound
      MF_NOBLOCKMAP | MF_MISSILE | MF_DROPOFF | MF_NOGRAVITY,    // flags
      MF2_THRUGHOST | MF2_NOTELEPORT     // flags2
+     },
+
+    // The following thing is present in the mobjinfo table from Heretic 1.0,
+    // but not in Heretic 1.3 (ie. it was removed).  It has been re-inserted
+    // here to support HHE patches.
+
+    {                           // MT_PHOENIXFX_REMOVED
+     -1,                        // doomednum
+     S_PHOENIXFXIX_1,           // spawnstate
+     1000,                      // spawnhealth
+     S_NULL,                    // seestate
+     sfx_None,                // seesound
+     8,                         // reactiontime
+     sfx_None,                  // attacksound
+     S_NULL,                    // painstate
+     0,                         // painchance
+     sfx_None,                  // painsound
+     S_NULL,                    // meleestate
+     S_NULL,                    // missilestate
+     S_NULL,                    // crashstate
+     S_PHOENIXFXIX_3,           // deathstate
+     S_NULL,                    // xdeathstate
+     sfx_None,                  // deathsound
+     0,                         // speed
+     2 * FRACUNIT,              // radius
+     4 * FRACUNIT,              // height
+     100,                       // mass
+     0,                         // damage
+     sfx_None,                  // activesound
+     MF_NOBLOCKMAP | MF_MISSILE | MF_DROPOFF | MF_NOGRAVITY,    // flags
+     MF2_NOTELEPORT     // flags2
      },
 
     {                           // MT_PHOENIXPUFF
--- a/src/heretic/info.h
+++ b/src/heretic/info.h
@@ -653,6 +653,9 @@
     S_PHOENIXFXI1_6,
     S_PHOENIXFXI1_7,
     S_PHOENIXFXI1_8,
+    S_PHOENIXFXIX_1,      // [ States in Heretic 1.0 that were removed
+    S_PHOENIXFXIX_2,
+    S_PHOENIXFXIX_3,      // ]
     S_PHOENIXPUFF1,
     S_PHOENIXPUFF2,
     S_PHOENIXPUFF3,
@@ -773,8 +776,8 @@
     S_PLAY_FDTH16,
     S_PLAY_FDTH17,
     S_PLAY_FDTH18,
-    S_PLAY_FDTH19,
-    S_PLAY_FDTH20,
+    S_PLAY_FDTH19,    // < These two frames were not present in the Heretic
+    S_PLAY_FDTH20,    // < 1.0 executable (fire death animation was extended)
     S_BLOODYSKULL1,
     S_BLOODYSKULL2,
     S_BLOODYSKULL3,
@@ -1470,6 +1473,7 @@
     MT_GOLDWANDPUFF2,
     MT_WPHOENIXROD,
     MT_PHOENIXFX1,
+    MT_PHOENIXFX_REMOVED,  // In Heretic 1.0, but removed.
     MT_PHOENIXPUFF,
     MT_PHOENIXFX2,
     MT_MISC15,
--- a/src/heretic/p_pspr.c
+++ b/src/heretic/p_pspr.c
@@ -1650,6 +1650,17 @@
     puff->momz = 0;
 }
 
+//
+// This function was present in the Heretic 1.0 executable for the
+// removed "secondary phoenix flash" object (MT_PHOENIXFX_REMOVED).
+// The purpose of this object is unknown, as is this function.
+//
+
+void A_RemovedPhoenixFunc(mobj_t *actor)
+{
+    I_Error("Action function invoked for removed Phoenix action!");
+}
+
 //----------------------------------------------------------------------------
 //
 // PROC A_InitPhoenixPL2