diff --git a/src/p_map.c b/src/p_map.c index 0b4987c49b6af53c000c16647b793f0756866c7e..48946a4ba6bfba15e3776167bdd46c023ed24541 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -307,7 +307,10 @@ static void P_DoTailsCarry(player_t *sonic, player_t *tails) if ((sonic->pflags & PF_CARRIED) && sonic->mo->tracer == tails->mo) return; - if (!tails->powers[pw_tailsfly] && !(tails->charability == CA_FLY && tails->mo->state-states == S_PLAY_FLY_TIRED)) + if (tails->charability != CA_FLY && tails->charability != CA_SWIM) + return; + + if (!tails->powers[pw_tailsfly] && tails->mo->state-states != S_PLAY_FLY_TIRED) return; if (tails->bot == 1) diff --git a/src/p_user.c b/src/p_user.c index 5149f8d736912d77e759cd5e47f5bfa82f141d2c..2934bc2ae41dacda47f66703f7bc2ba5ec763e20 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -9405,7 +9405,7 @@ void P_PlayerAfterThink(player_t *player) player->mo->height = FixedDiv(P_GetPlayerHeight(player), FixedDiv(14*FRACUNIT,10*FRACUNIT)); if (player->mo->tracer->player - && player->mo->tracer->state-states != S_PLAY_FLY + && !player->mo->tracer->player->powers[pw_tailsfly] && player->mo->tracer->state-states != S_PLAY_FLY_TIRED) player->pflags &= ~PF_CARRIED;