foxygit / doom Log in
commit abb5f33199e6fe036d068b5a5f59e58e1505eb8e
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sun Feb 7 00:59:56 2010 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sun Feb 7 00:59:56 2010 +0000

    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
---
 src/heretic/info.c   | 35 +++++++++++++++++++++++++++++++++++
 src/heretic/info.h   |  8 ++++++--
 src/heretic/p_pspr.c | 11 +++++++++++
 3 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/heretic/info.c b/src/heretic/info.c
index e566222c..4848ede9 100644
--- a/src/heretic/info.c
+++ b/src/heretic/info.c
@@ -95,6 +95,7 @@ void A_InitPhoenixPL2();
 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 @@ state_t states[NUMSTATES] = {
     {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
@@ -3727,6 +3731,37 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = {
      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
      -1,                        // doomednum
      S_PHOENIXPUFF1,            // spawnstate
diff --git a/src/heretic/info.h b/src/heretic/info.h
index f9581298..16b6aedc 100644
--- a/src/heretic/info.h
+++ b/src/heretic/info.h
@@ -653,6 +653,9 @@ typedef enum
     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 @@ typedef enum
     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 @@ typedef enum
     MT_GOLDWANDPUFF2,
     MT_WPHOENIXROD,
     MT_PHOENIXFX1,
+    MT_PHOENIXFX_REMOVED,  // In Heretic 1.0, but removed.
     MT_PHOENIXPUFF,
     MT_PHOENIXFX2,
     MT_MISC15,
diff --git a/src/heretic/p_pspr.c b/src/heretic/p_pspr.c
index 7f9660ac..bd47c9a1 100644
--- a/src/heretic/p_pspr.c
+++ b/src/heretic/p_pspr.c
@@ -1650,6 +1650,17 @@ void A_PhoenixPuff(mobj_t * actor)
     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