Merge branch 'kix' into 'master'

Block disabling Kickstart Accel during Tricks and when pressing Spindash (resolves #96)

Closes #96

See merge request KartKrew/RingRacers!20
This commit is contained in:
Eidolon 2024-05-19 19:30:32 +00:00
commit 5887f4418b

View file

@ -2220,7 +2220,7 @@ static INT16 P_FindClosestTurningForAngle(player_t *player, INT32 targetAngle, I
// Slightly frumpy binary search for the ideal turning input. // Slightly frumpy binary search for the ideal turning input.
// We do this instead of reversing K_GetKartTurnValue so that future handling changes are automatically accounted for. // We do this instead of reversing K_GetKartTurnValue so that future handling changes are automatically accounted for.
while (attempts++ < 20) // Practical calls of this function search maximum 10 times, this is solely for safety. while (attempts++ < 20) // Practical calls of this function search maximum 10 times, this is solely for safety.
{ {
// These need to be treated as signed, or situations where boundaries straddle 0 are a mess. // These need to be treated as signed, or situations where boundaries straddle 0 are a mess.
@ -2341,7 +2341,7 @@ static void P_UpdatePlayerAngle(player_t *player)
// Corrections via fake turn go through easing. // Corrections via fake turn go through easing.
// That means undoing them takes the same amount of time as doing them. // That means undoing them takes the same amount of time as doing them.
// This can lead to oscillating death spiral states on a multi-tic correction, as we swing past the target angle. // This can lead to oscillating death spiral states on a multi-tic correction, as we swing past the target angle.
// So before we go into death-spirals, if our predicton is _almost_ right... // So before we go into death-spirals, if our predicton is _almost_ right...
angle_t leniency_base; angle_t leniency_base;
if (G_CompatLevel(0x000A)) if (G_CompatLevel(0x000A))
{ {
@ -2450,7 +2450,7 @@ void P_MovePlayer(player_t *player)
////////////////////// //////////////////////
P_UpdatePlayerAngle(player); P_UpdatePlayerAngle(player);
ticruned++; ticruned++;
if (!(cmd->flags & TICCMD_RECEIVED)) if (!(cmd->flags & TICCMD_RECEIVED))
ticmiss++; ticmiss++;
@ -4255,7 +4255,7 @@ void P_PlayerThink(player_t *player)
} }
else if (cmd->buttons & BT_ACCELERATE) else if (cmd->buttons & BT_ACCELERATE)
{ {
if (!player->exiting && !(player->oldcmd.buttons & BT_ACCELERATE)) if (!player->exiting && !(player->oldcmd.buttons & BT_ACCELERATE) && ((cmd->buttons & BT_SPINDASHMASK) != BT_SPINDASHMASK) && player->trickpanel != TRICKSTATE_READY)
{ {
player->kickstartaccel = 0; player->kickstartaccel = 0;
} }
@ -4550,7 +4550,7 @@ void P_PlayerThink(player_t *player)
{ {
player->stairjank--; player->stairjank--;
} }
// Random skin / "ironman" // Random skin / "ironman"
{ {
UINT32 skinflags = (demo.playback) UINT32 skinflags = (demo.playback)