From 9c73424b4b6038a90db53a44a5b8d4784b6fa4ea Mon Sep 17 00:00:00 2001 From: sphere Date: Sun, 14 Jul 2019 02:17:44 +0200 Subject: [PATCH] Add spring flags: float for horizontal & no gravity for diagonal. --- src/p_mobj.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index a57998ea0..0428dd83b 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -4662,7 +4662,7 @@ static void P_Boss4PinchSpikeballs(mobj_t *mobj, angle_t angle, fixed_t dz) } dz /= 9; - + while ((base = base->tracer)) // there are 10 per spoke, remember that { dx = (originx + P_ReturnThrustX(mobj, angle, (9*132)<x)/9; @@ -11964,6 +11964,15 @@ ML_EFFECT5 : Don't stop thinking when too far away if (i == MT_YELLOWDIAG || i == MT_REDDIAG) mobj->angle += ANGLE_22h; + if (i == MT_YELLOWHORIZ || i == MT_REDHORIZ || i == MT_BLUEHORIZ) + { + if (mthing->options & MTF_OBJECTFLIP) + mobj->z -= 16*FRACUNIT; + else + mobj->z += 16*FRACUNIT; + } + + if (mobj->flags & MF_NIGHTSITEM) { // Spawn already displayed @@ -11991,6 +12000,9 @@ ML_EFFECT5 : Don't stop thinking when too far away if (mthing->options & MTF_OBJECTSPECIAL) { + if (i == MT_YELLOWDIAG || i == MT_REDDIAG) + mobj->flags |= MF_NOGRAVITY; + if ((mobj->flags & MF_MONITOR) && mobj->info->speed != 0) { // flag for strong/weak random boxes @@ -12570,9 +12582,9 @@ void P_SpawnHoopsAndRings(mapthing_t *mthing, boolean bonustime) if (mthing->options & MTF_AMBUSH) // Special flag for rings { if (mthing->options & MTF_OBJECTFLIP) - z -= 24*FRACUNIT; + z -= 64*FRACUNIT; else - z += 24*FRACUNIT; + z += 64*FRACUNIT; } mthing->z = (INT16)(z>>FRACBITS);