From c51edfa1d50a5d8701cdf5d8cad54b4e4fd5026b Mon Sep 17 00:00:00 2001 From: toaster Date: Sat, 20 Oct 2018 23:31:46 +0100 Subject: [PATCH] There's no spike or moon, but there sure is fruit, and that fruit is slightly awkward in that it pops out of existence when it slows down! Instead, I've made it flicker out of existence on a second-long timer. This is the *absolute* last in-game thing I'm doing before the original freeze deadline. Hardcoding and menu pokes are all that remain of my code development... --- src/p_mobj.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 84163f1ca..e0ea2a63d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2626,12 +2626,14 @@ static boolean P_ZMovement(mobj_t *mo) mom.z /= 2; // Rocks not so bouncy - if (abs(mom.x) < FixedMul(STOPSPEED, mo->scale) - && abs(mom.y) < FixedMul(STOPSPEED, mo->scale) - && abs(mom.z) < FixedMul(STOPSPEED*3, mo->scale)) + if (!mo->fuse + && abs(mom.x) < FixedMul(STOPSPEED*2, mo->scale) + && abs(mom.y) < FixedMul(STOPSPEED*2, mo->scale) + && abs(mom.z) < FixedMul(STOPSPEED*2*3, mo->scale)) { - P_RemoveMobj(mo); - return false; + //P_RemoveMobj(mo); + //return false; + mo->fuse = TICRATE; } } else if (mo->type == MT_CANNONBALLDECOR) @@ -7442,13 +7444,14 @@ void P_MobjThinker(mobj_t *mobj) { case MT_FALLINGROCK: // Despawn rocks here in case zmovement code can't do so (blame slopes) - if (!mobj->momx && !mobj->momy && !mobj->momz + if (!mobj->fuse && !mobj->momx && !mobj->momy && !mobj->momz && ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->z + mobj->height >= mobj->ceilingz : mobj->z <= mobj->floorz)) { - P_RemoveMobj(mobj); - return; + //P_RemoveMobj(mobj); + //return; + mobj->fuse = TICRATE; } P_MobjCheckWater(mobj); break; @@ -8782,7 +8785,7 @@ for (i = ((mobj->flags2 & MF2_STRONGBOX) ? strongboxamt : weakboxamt); i; --i) s if (P_MobjWasRemoved(mobj)) return; } - else if (((mobj->type == MT_RANDOMITEM && mobj->threshold == 69) || mobj->type == MT_FAKEITEM) && mobj->fuse <= TICRATE) + else if (((mobj->type == MT_RANDOMITEM && mobj->threshold == 69) || mobj->type == MT_FAKEITEM || mobj->type == MT_FALLINGROCK) && mobj->fuse <= TICRATE) mobj->flags2 ^= MF2_DONTDRAW; }