diff --git a/src/p_user.c b/src/p_user.c index 4db4197b8a3e4be771b3517200ad3b96ddab2a8e..24b5477868d5cc2ef4b15e44dfbeccf31cd34b1a 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -6570,17 +6570,15 @@ static void P_MovePlayer(player_t *player) P_SetPlayerMobjState(player->mo, S_PLAY_STND); } - if (!(player->charability == CA_GLIDEANDCLIMB) || player->gotflag) // If you can't glide, then why the heck would you be gliding? + if ((!(player->charability == CA_GLIDEANDCLIMB) || player->gotflag) // If you can't glide, then why the heck would you be gliding? + && (player->pflags & PF_GLIDING || player->climbing)) { - if (player->pflags & PF_GLIDING || player->climbing) + if (onground) + P_SetPlayerMobjState(player->mo, S_PLAY_WALK); + else { - if (onground) - P_SetPlayerMobjState(player->mo, S_PLAY_WALK); - else - { - player->pflags |= PF_JUMPED; - P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); - } + player->pflags |= PF_JUMPED; + P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); } player->pflags &= ~PF_GLIDING; player->glidetime = 0;