experiment: put spinning player that want recovery dash in wipeout

This commit is contained in:
minenice55 2026-02-01 18:16:13 -05:00
parent bd299f1ad5
commit 0c325433a4

View file

@ -9705,11 +9705,15 @@ static void K_KartSlipdash(player_t *player, boolean onground)
}
}
static boolean K_PlayerWantsRecoverySpin(player_t *player)
{
return ((player->cmd.buttons & BT_ACCELERATE) && (player->cmd.buttons & BT_BRAKE) && !(player->cmd.buttons & BT_DRIFT));
}
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->cmd.buttons & BT_ACCELERATE) && (player->cmd.buttons & BT_BRAKE) && !(player->cmd.buttons & BT_DRIFT));
player->speed < 10*player->mo->scale && (!(player->pflags & PF_RECOVERYSPIN)));
}
static boolean K_PlayerCanRecoverySpin(player_t *player)
@ -9723,7 +9727,12 @@ static boolean K_PlayerCanRecoverySpin(player_t *player)
static void K_RecoveryDash(player_t *player)
{
if (K_PlayerCanRecoverySpin(player))
if (K_PlayerWantsRecoverySpin(player) && (player->spinouttimer > 0))
{
player->wipeoutslow = wipeoutslowtime+1;
player->spinouttimer = max(wipeoutslowtime+1, player->spinouttimer);
}
if (K_PlayerWantsRecoverySpin(player) && K_PlayerCanRecoverySpin(player))
{
if (K_PlayerCanStartRecoverySpin(player))
{