From 424cda41d4fdf842915183362597cec18d5f75dc Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Sat, 29 Jul 2023 03:51:46 -0700 Subject: [PATCH] Slower players lose springgrease faster --- src/k_kart.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 9f24aea77..effde5092 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8169,7 +8169,19 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->justbumped--; if (player->tiregrease) - player->tiregrease--; + { + // Remove grease faster if players are moving slower; players that are recovering + // from mistakes (or who got sprung purely for track traversal) need steering! + // Up to 4x degrease speed below 10FU/t (speed at which you lose drift sparks). + INT16 toDegrease = 1; + INT16 driftSpeedIncrements = player->speed / (10 * player->mo->scale); // + toDegrease += max(3 - driftSpeedIncrements, 0); + + if (player->tiregrease <= toDegrease) + player->tiregrease = 0; + else + player->tiregrease -= toDegrease; + } if (player->spinouttimer || player->tumbleBounces) {