summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/heretic/info.c35
-rw-r--r--src/heretic/info.h8
-rw-r--r--src/heretic/p_pspr.c11
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