From 029c36d59ac3d126230d1cc060fd4c2e5388ed41 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Tue, 9 Mar 2021 17:30:41 -0500 Subject: [PATCH 1/2] Allow players to turn when they're in the air at 0 speed Minor weird thing I noticed long ago --- src/k_kart.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 91335cdcb..714da9ea8 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7017,36 +7017,36 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue) fixed_t turnfixed = turnvalue * FRACUNIT; fixed_t currentSpeed = 0; - if (player->mo == NULL || P_MobjWasRemoved(player->mo)) - { - return 0; - } - - if (player->spectator || objectplacing) + if (player->mo == NULL || P_MobjWasRemoved(player->mo) || player->spectator || objectplacing) { + // Invalid object, or incorporeal player. Return the value exactly. return turnvalue; } if (leveltime < introtime) { - return 0; - } - - if (player->trickpanel != 0) - { + // No turning during the intro return 0; } if (player->respawn.state == RESPAWNST_MOVE) { + // No turning during respawn + return 0; + } + + if (player->trickpanel != 0) + { + // No turning during trick panel return 0; } currentSpeed = R_PointToDist2(0, 0, player->mo->momx, player->mo->momy); if ((currentSpeed <= 0) // Not moving - && ((K_GetKartButtons(player) & BT_EBRAKEMASK) != BT_EBRAKEMASK) // not e-braking - && (player->respawn.state == RESPAWNST_NONE)) // Not respawning + && ((K_GetKartButtons(player) & BT_EBRAKEMASK) != BT_EBRAKEMASK) // Not e-braking + && (player->respawn.state == RESPAWNST_NONE) // Not respawning + && (P_IsObjectOnGround(player->mo) == false)) // On the ground { return 0; } From f2aaf1c6d8653f2424e5b95e0630a278f9e86774 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 10 Mar 2021 09:16:59 -0500 Subject: [PATCH 2/2] Other way around --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 714da9ea8..a559bfe0d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7046,7 +7046,7 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue) if ((currentSpeed <= 0) // Not moving && ((K_GetKartButtons(player) & BT_EBRAKEMASK) != BT_EBRAKEMASK) // Not e-braking && (player->respawn.state == RESPAWNST_NONE) // Not respawning - && (P_IsObjectOnGround(player->mo) == false)) // On the ground + && (P_IsObjectOnGround(player->mo) == true)) // On the ground { return 0; }