diff --git a/src/p_map.c b/src/p_map.c index e603aaa7592761a47927db135f834e6ac72830a0..be008339fe3d357d9b5acd22ca2989a22f38f963 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -261,6 +261,7 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object) if (p && !p->powers[pw_tailsfly]) // doesn't reset anim for Tails' flight { + object->momz = FixedMul(object->momz, FixedSqrt(FixedDiv(FRACUNIT, NEWTICRATERATIO << FRACBITS))); P_ResetPlayer(p); if (p->panim != PA_FALL) P_SetPlayerMobjState(object, S_PLAY_FALL); @@ -276,6 +277,7 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object) if (p) { + object->momz = FixedMul(object->momz, FixedSqrt(FixedDiv(FRACUNIT, NEWTICRATERATIO << FRACBITS))); P_ResetPlayer(p); if (p->panim != PA_FALL) P_SetPlayerMobjState(object, S_PLAY_FALL); diff --git a/src/p_mobj.c b/src/p_mobj.c index 2d1a5ed5eca09da4f18748a25be240ed08d3dcaa..1f001913c0722b93d4a119147219414a1eb9a218 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1476,6 +1476,8 @@ void P_CheckGravity(mobj_t *mo, boolean affect) mo->eflags ^= MFE_VERTICALFLIP; } } + + gravityadd /= NEWTICRATERATIO; } else {