Require new input to fastfall after bouncing

This commit is contained in:
AJ Martinez 2023-05-25 23:21:19 -07:00
parent 9b8306c91b
commit 1871cad1d9
2 changed files with 5 additions and 0 deletions

View file

@ -108,6 +108,7 @@ typedef enum
PF_SHRINKACTIVE = 1<<29, // "Shrink me" cheat is in effect. (Can't be disabled mid-race)
PF_VOID = 1<<30, // Removed from reality! When leaving hitlag, reenable visibility+collision and kill speed.
PF_FASTFALLBOUNCED = 1<<31, // Just bounced from a fastfall. Ignore fastfall attempts until input's lifted.
// up to 1<<31 is free
} pflags_t;

View file

@ -10095,6 +10095,7 @@ static void K_KartSpindash(player_t *player)
if (K_PlayerEBrake(player) == false)
{
player->spindash = 0;
player->pflags &= ~PF_FASTFALLBOUNCED;
return;
}
@ -10106,6 +10107,8 @@ static void K_KartSpindash(player_t *player)
}
else if (onGround == false)
{
if (player->pflags & PF_FASTFALLBOUNCED)
return;
// Update fastfall.
player->fastfall = player->mo->momz;
player->spindash = 0;
@ -10228,6 +10231,7 @@ boolean K_FastFallBounce(player_t *player)
player->fastfall = 0;
player->fastfallBase = 0;
player->pflags |= PF_FASTFALLBOUNCED;
return true;
}