From a8467a22ce257c293e6abbf9a50add967b5ee1a4 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Thu, 15 Jun 2023 12:12:41 -0400 Subject: [PATCH] Fix speedometer in outrun mode --- src/k_kart.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 31646d16a..595d1f2b8 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3301,6 +3301,7 @@ fixed_t K_GetKartSpeedFromStat(UINT8 kartspeed) fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower, boolean dorubberband) { const boolean mobjValid = (player->mo != NULL && P_MobjWasRemoved(player->mo) == false); + const fixed_t physicsScale = mobjValid ? K_GrowShrinkSpeedMul(player) : FRACUNIT; fixed_t finalspeed = 0; if (K_PodiumSequence() == true) @@ -3344,19 +3345,17 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower, boolean dorubberb if (doboostpower == true) { - if (mobjValid == true) - { - // Scale with the player. - finalspeed = FixedMul(finalspeed, K_GrowShrinkSpeedMul(player)); - } + // Scale with the player. + finalspeed = FixedMul(finalspeed, physicsScale); + // Add speed boosts. finalspeed = FixedMul(finalspeed, player->boostpower + player->speedboost); + } - if (mobjValid == true && player->outrun != 0) - { - // Milky Way's roads - finalspeed += FixedMul(player->outrun, K_GrowShrinkSpeedMul(player)); - } + if (player->outrun != 0) + { + // Milky Way's roads + finalspeed += FixedMul(player->outrun, physicsScale); } return finalspeed;