From 478a94a66faa5eb7178222dc10502f6f681c6a37 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Thu, 19 Feb 2026 11:29:57 -0500 Subject: [PATCH] make recovery spin a bit easier to start when in wipeout --- src/k_kart.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index b12f88166..ed611f189 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9794,7 +9794,7 @@ static boolean K_PlayerWantsRecoverySpin(player_t *player) static boolean K_PlayerCanStartRecoverySpin(player_t *player) { return (K_RecoveryDashActive() && P_IsObjectOnGround(player->mo) && (!(player->pflags & PF_STASIS)) && (player->carry == CR_NONE) && - player->speed < 10*player->mo->scale && (!(player->pflags & PF_RECOVERYSPIN))); + (player->speed < 10*player->mo->scale || player->wipeoutslow) && (!(player->pflags & PF_RECOVERYSPIN))); } static boolean K_PlayerCanRecoverySpin(player_t *player) @@ -9808,9 +9808,9 @@ static boolean K_PlayerCanRecoverySpin(player_t *player) static void K_RecoveryDash(player_t *player) { - if (K_PlayerWantsRecoverySpin(player) && (player->spinouttimer > 0) && (!player->wipeoutslow)) + if (K_PlayerWantsRecoverySpin(player) && (player->spinouttimer > 0 || player->flipovertimer > 0) && (!player->wipeoutslow)) { - player->wipeoutslow = player->spinouttimer; + player->wipeoutslow = max(wipeoutslowtime + 1, player->spinouttimer + 4); } if ((player->pflags & PF_RECOVERYSPIN) && player->forcedtopspeed == 0 && player->speed >= 10*player->mo->scale) @@ -9828,6 +9828,9 @@ static void K_RecoveryDash(player_t *player) player->forcedtopspeed = cv_kartrecoverydash_spinspeed.value + 8; S_StartSound(player->mo, sfx_cdfm20); + player->mo->momx = min(10*player->mo->scale, abs(player->mo->momx/2)) * intsign(player->mo->momx); + player->mo->momy = min(10*player->mo->scale, abs(player->mo->momy/2)) * intsign(player->mo->momy); + player->driftboost = 0; player->sneakertimer = 0; player->ringboost = 0;