P_ZMovement: take object's momentum after P_CheckPosition

This commit is contained in:
James R 2023-01-06 05:00:21 -08:00 committed by toaster
parent ddb55c95c7
commit d7d365f1e4

View file

@ -2379,9 +2379,6 @@ boolean P_ZMovement(mobj_t *mo)
&& !(mo->flags & MF_NOCLIPHEIGHT)) && !(mo->flags & MF_NOCLIPHEIGHT))
{ {
vector3_t mom; vector3_t mom;
mom.x = mo->momx;
mom.y = mo->momy;
mom.z = mo->momz;
if (mo->eflags & MFE_VERTICALFLIP) if (mo->eflags & MFE_VERTICALFLIP)
mo->z = mo->ceilingz - mo->height; 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 if (P_MobjWasRemoved(mo)) // mobjs can be removed by P_CheckPosition -- Monster Iestyn 31/07/21
return false; 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)); K_UpdateMobjTerrain(mo, ((mo->eflags & MFE_VERTICALFLIP) ? tm.ceilingpic : tm.floorpic));
if (((mo->eflags & MFE_VERTICALFLIP) ? tm.ceilingslope : tm.floorslope) && (mo->type != MT_STEAM)) if (((mo->eflags & MFE_VERTICALFLIP) ? tm.ceilingslope : tm.floorslope) && (mo->type != MT_STEAM))