From 32562068ba39e026a9eded50e4ed76990c619e59 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Tue, 24 Jan 2017 20:21:50 +0000 Subject: [PATCH] On second thought, I'll revert the P_TryMove bit to how it was before and just stuff an extra P_MobjWasRemoved check in this way it won't cause as much conflict with the slopetowall transfer branch --- src/p_mobj.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index f71dffeae..7649a0c07 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2122,15 +2122,12 @@ void P_XYMovement(mobj_t *mo) if (CheckForBustableBlocks && mo->flags & MF_PUSHABLE) P_PushableCheckBustables(mo); - moved = P_TryMove(mo, mo->x + xmove, mo->y + ymove, true); // Move! - - if (P_MobjWasRemoved(mo)) // mobj was removed during P_TryMove? don't continue - return; - if (mo->eflags & MFE_SPRUNG) // touching a spring counts as moved - moved = true; - - if (!moved) // blocked move + if (!P_TryMove(mo, mo->x + xmove, mo->y + ymove, true) + && !(P_MobjWasRemoved(mo) || mo->eflags & MFE_SPRUNG)) { + // blocked move + moved = false; + if (player) { if (player->bot) B_MoveBlocked(player); @@ -2246,6 +2243,8 @@ void P_XYMovement(mobj_t *mo) else mo->momx = mo->momy = 0; } + else + moved = true; if (P_MobjWasRemoved(mo)) // MF_SPECIAL touched a player! O_o;; return;