From 07eed2f2be327dc19d4b15c52fad6020eee5be3d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 23 Jan 2011 08:33:30 +0000 Subject: [PATCH] - added Gez's fix for timing of the boss cube while a time freezer is active. SVN r3118 (trunk) --- src/actor.h | 1 + src/g_doom/a_bossbrain.cpp | 1 + src/p_mobj.cpp | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/src/actor.h b/src/actor.h index 2c5e669905..83a264f00d 100644 --- a/src/actor.h +++ b/src/actor.h @@ -325,6 +325,7 @@ enum MF6_ADDITIVEPOISONDAMAGE = 0x00100000, MF6_ADDITIVEPOISONDURATION = 0x00200000, MF6_NOMENU = 0x00400000, // Player class should not appear in the class selection menu. + MF6_BOSSCUBE = 0x00800000, // Actor spawned by A_BrainSpit, flagged for timefreeze reasons. // --- mobj.renderflags --- diff --git a/src/g_doom/a_bossbrain.cpp b/src/g_doom/a_bossbrain.cpp index 0110b0ae5e..d0fb03cbcc 100644 --- a/src/g_doom/a_bossbrain.cpp +++ b/src/g_doom/a_bossbrain.cpp @@ -142,6 +142,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_BrainSpit) } // [GZ] Calculates when the projectile will have reached destination spit->special2 += level.maptime; + spit->flags6 |= MF6_BOSSCUBE; } if (!isdefault) diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 940ffe7f2b..f52be1fc55 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -2750,6 +2750,11 @@ void AActor::Tick () //Added by MC: Freeze mode. if (bglobal.freeze || level.flags2 & LEVEL2_FROZEN) { + // Boss cubes shouldn't be accelerated by timefreeze + if (flags6 & MF6_BOSSCUBE) + { + special2++; + } return; } } @@ -2780,6 +2785,11 @@ void AActor::Tick () if (!(flags5 & MF5_NOTIMEFREEZE)) { + // Boss cubes shouldn't be accelerated by timefreeze + if (flags6 & MF6_BOSSCUBE) + { + special2++; + } //Added by MC: Freeze mode. if (bglobal.freeze && !(player && !player->isbot)) {