From 1ec62400010e0a9e0d65af149d5e86e60f3320bc Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 22 Sep 2020 15:07:12 +0100 Subject: [PATCH] Fix vwoops not properly clipping through stuff --- src/p_mobj.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 1f3bd870d..4844f2b66 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3457,21 +3457,19 @@ static void P_PlayerMobjThinker(mobj_t *mobj) mobj->eflags &= ~MFE_JUSTSTEPPEDDOWN; // Zoom tube - if (mobj->tracer && !P_MobjWasRemoved(mobj->tracer)) + if ((mobj->player->powers[pw_carry] == CR_ZOOMTUBE && mobj->tracer && !P_MobjWasRemoved(mobj->tracer)) + || mobj->player->respawn.state == RESPAWNST_MOVE) { - if (mobj->player->powers[pw_carry] == CR_ZOOMTUBE || mobj->player->respawn.state == RESPAWNST_MOVE) - { - P_HitSpecialLines(mobj, mobj->x, mobj->y, mobj->momx, mobj->momy); - P_UnsetThingPosition(mobj); - mobj->x += mobj->momx; - mobj->y += mobj->momy; - mobj->z += mobj->momz; - P_SetThingPosition(mobj); - P_CheckPosition(mobj, mobj->x, mobj->y); - mobj->floorz = tmfloorz; - mobj->ceilingz = tmceilingz; - goto animonly; - } + P_HitSpecialLines(mobj, mobj->x, mobj->y, mobj->momx, mobj->momy); + P_UnsetThingPosition(mobj); + mobj->x += mobj->momx; + mobj->y += mobj->momy; + mobj->z += mobj->momz; + P_SetThingPosition(mobj); + P_CheckPosition(mobj, mobj->x, mobj->y); + mobj->floorz = tmfloorz; + mobj->ceilingz = tmceilingz; + goto animonly; } // Needed for gravity boots