Reset pmomz after transfer to momz

This commit is contained in:
lachwright 2020-01-16 22:56:01 +08:00
parent acb3372644
commit 28c466a0a5
2 changed files with 6 additions and 4 deletions

View File

@ -2350,6 +2350,7 @@ static void P_RingZMovement(mobj_t *mo)
if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo))
{ {
mo->momz += mo->pmomz; mo->momz += mo->pmomz;
mo->pmomz = 0;
mo->eflags &= ~MFE_APPLYPMOMZ; mo->eflags &= ~MFE_APPLYPMOMZ;
} }
mo->z += mo->momz; mo->z += mo->momz;
@ -2419,6 +2420,7 @@ static boolean P_ZMovement(mobj_t *mo)
if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo))
{ {
mo->momz += mo->pmomz; mo->momz += mo->pmomz;
mo->pmomz = 0;
mo->eflags &= ~MFE_APPLYPMOMZ; mo->eflags &= ~MFE_APPLYPMOMZ;
} }
mo->z += mo->momz; mo->z += mo->momz;
@ -2907,6 +2909,7 @@ static void P_PlayerZMovement(mobj_t *mo)
if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo))
{ {
mo->momz += mo->pmomz; mo->momz += mo->pmomz;
mo->pmomz = 0;
mo->eflags &= ~MFE_APPLYPMOMZ; mo->eflags &= ~MFE_APPLYPMOMZ;
} }
@ -3157,6 +3160,7 @@ static boolean P_SceneryZMovement(mobj_t *mo)
if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo)) if (mo->eflags & MFE_APPLYPMOMZ && !P_IsObjectOnGround(mo))
{ {
mo->momz += mo->pmomz; mo->momz += mo->pmomz;
mo->pmomz = 0;
mo->eflags &= ~MFE_APPLYPMOMZ; mo->eflags &= ~MFE_APPLYPMOMZ;
} }
mo->z += mo->momz; mo->z += mo->momz;

View File

@ -4530,16 +4530,14 @@ void P_DoJump(player_t *player, boolean soundandstate)
player->mo->z--; player->mo->z--;
if (player->mo->pmomz < 0) if (player->mo->pmomz < 0)
player->mo->momz += player->mo->pmomz; // Add the platform's momentum to your jump. player->mo->momz += player->mo->pmomz; // Add the platform's momentum to your jump.
else player->mo->pmomz = 0;
player->mo->pmomz = 0;
} }
else else
{ {
player->mo->z++; player->mo->z++;
if (player->mo->pmomz > 0) if (player->mo->pmomz > 0)
player->mo->momz += player->mo->pmomz; // Add the platform's momentum to your jump. player->mo->momz += player->mo->pmomz; // Add the platform's momentum to your jump.
else player->mo->pmomz = 0;
player->mo->pmomz = 0;
} }
player->mo->eflags &= ~MFE_APPLYPMOMZ; player->mo->eflags &= ~MFE_APPLYPMOMZ;