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...
This commit is contained in:
toaster 2018-10-20 23:31:46 +01:00
parent fc93b13b55
commit c51edfa1d5

View file

@ -2626,12 +2626,14 @@ static boolean P_ZMovement(mobj_t *mo)
mom.z /= 2; // Rocks not so bouncy mom.z /= 2; // Rocks not so bouncy
if (abs(mom.x) < FixedMul(STOPSPEED, mo->scale) if (!mo->fuse
&& abs(mom.y) < FixedMul(STOPSPEED, mo->scale) && abs(mom.x) < FixedMul(STOPSPEED*2, mo->scale)
&& abs(mom.z) < FixedMul(STOPSPEED*3, mo->scale)) && abs(mom.y) < FixedMul(STOPSPEED*2, mo->scale)
&& abs(mom.z) < FixedMul(STOPSPEED*2*3, mo->scale))
{ {
P_RemoveMobj(mo); //P_RemoveMobj(mo);
return false; //return false;
mo->fuse = TICRATE;
} }
} }
else if (mo->type == MT_CANNONBALLDECOR) else if (mo->type == MT_CANNONBALLDECOR)
@ -7442,13 +7444,14 @@ void P_MobjThinker(mobj_t *mobj)
{ {
case MT_FALLINGROCK: case MT_FALLINGROCK:
// Despawn rocks here in case zmovement code can't do so (blame slopes) // 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->eflags & MFE_VERTICALFLIP) ?
mobj->z + mobj->height >= mobj->ceilingz mobj->z + mobj->height >= mobj->ceilingz
: mobj->z <= mobj->floorz)) : mobj->z <= mobj->floorz))
{ {
P_RemoveMobj(mobj); //P_RemoveMobj(mobj);
return; //return;
mobj->fuse = TICRATE;
} }
P_MobjCheckWater(mobj); P_MobjCheckWater(mobj);
break; break;
@ -8782,7 +8785,7 @@ for (i = ((mobj->flags2 & MF2_STRONGBOX) ? strongboxamt : weakboxamt); i; --i) s
if (P_MobjWasRemoved(mobj)) if (P_MobjWasRemoved(mobj))
return; 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; mobj->flags2 ^= MF2_DONTDRAW;
} }