Merge branch 'twerk-b-gone' into 'master'

One fastfall per input

See merge request KartKrew/Kart!1253
This commit is contained in:
Sal 2023-05-26 22:53:17 +00:00
commit 94b2deb4de
2 changed files with 6 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_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_VOID = 1<<30, // Removed from reality! When leaving hitlag, reenable visibility+collision and kill speed.
PF_NOFASTFALL = 1<<31, // Has already done ebrake/fastfall behavior for this input. Fastfalling needs a new input to prevent unwanted bounces on unexpected airtime.
// up to 1<<31 is free // up to 1<<31 is free
} pflags_t; } pflags_t;

View file

@ -10095,6 +10095,7 @@ static void K_KartSpindash(player_t *player)
if (K_PlayerEBrake(player) == false) if (K_PlayerEBrake(player) == false)
{ {
player->spindash = 0; player->spindash = 0;
player->pflags &= ~PF_NOFASTFALL;
return; return;
} }
@ -10106,6 +10107,8 @@ static void K_KartSpindash(player_t *player)
} }
else if (onGround == false) else if (onGround == false)
{ {
if (player->pflags & PF_NOFASTFALL)
return;
// Update fastfall. // Update fastfall.
player->fastfall = player->mo->momz; player->fastfall = player->mo->momz;
player->spindash = 0; player->spindash = 0;
@ -10124,6 +10127,8 @@ static void K_KartSpindash(player_t *player)
return; return;
} }
player->pflags |= PF_NOFASTFALL;
if (player->speed == 0 && player->steering != 0 && leveltime % 8 == 0) if (player->speed == 0 && player->steering != 0 && leveltime % 8 == 0)
{ {
// Rubber burn turn sfx // Rubber burn turn sfx