From d7d365f1e4c5f8d85140d17c94f13e5c8e0bf87a Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 6 Jan 2023 05:00:21 -0800 Subject: [PATCH] P_ZMovement: take object's momentum after P_CheckPosition --- src/p_mobj.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 778e65263..cd1d3a6f9 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2379,9 +2379,6 @@ boolean P_ZMovement(mobj_t *mo) && !(mo->flags & MF_NOCLIPHEIGHT)) { vector3_t mom; - mom.x = mo->momx; - mom.y = mo->momy; - mom.z = mo->momz; if (mo->eflags & MFE_VERTICALFLIP) mo->z = mo->ceilingz - mo->height; @@ -2398,6 +2395,11 @@ boolean P_ZMovement(mobj_t *mo) if (P_MobjWasRemoved(mo)) // mobjs can be removed by P_CheckPosition -- Monster Iestyn 31/07/21 return false; + // Set these here since P_CheckPosition can alter object's momentum values + mom.x = mo->momx; + mom.y = mo->momy; + mom.z = mo->momz; + K_UpdateMobjTerrain(mo, ((mo->eflags & MFE_VERTICALFLIP) ? tm.ceilingpic : tm.floorpic)); if (((mo->eflags & MFE_VERTICALFLIP) ? tm.ceilingslope : tm.floorslope) && (mo->type != MT_STEAM))