From b9ddc0226e4052d722d32d4ad4df0d799355fbde Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Sat, 11 Mar 2017 18:15:44 +0000 Subject: [PATCH] Fixed a thing where super float started on the float frame normally and then immediately went to the float run frame a tic later. --- src/p_user.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index 67b5f7d60..62ad6d4e4 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -7110,8 +7110,13 @@ static void P_MovePlayer(player_t *player) && (player->speed > 5*player->mo->scale) // FixedMul(5<mo->scale), but scale is FRACUNIT-based && (P_MobjFlip(player->mo)*player->mo->momz <= 0)) { - if (player->panim != PA_RUN && player->mo->state-states != S_PLAY_FLOAT) - P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT); + if (player->panim != PA_RUN && player->panim != PA_WALK) + { + if (player->speed >= FixedMul(player->runspeed, player->mo->scale)) + P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT_RUN); + else + P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT); + } player->mo->momz = 0; player->pflags &= ~PF_SPINNING;