From 0c2d8eefc2d6f94b0ab802323b2698ce6f7d5093 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 26 Sep 2025 17:32:15 -0400 Subject: [PATCH] Basic Slip stream indicator for now splitscreen for this hud element is broken and needs to be fixed --- src/k_hud.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/k_hud.c b/src/k_hud.c index d4d76c80e..a2439b373 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -5545,6 +5545,34 @@ static void K_DrawClusterDebugger(void) } } +static void K_SlipstreamIndicator(boolean tiny) +{ + if (!draftingactive) + return; + + char *fullstr = "DRAFTING"; + char str[256] = {0}; + SINT8 stringlen = strlen(fullstr); + SINT8 len = min(stplyr->draftpower / (FRACUNIT / stringlen), stringlen); + INT32 flags = V_SPLITSCREEN|V_HUDTRANS; + + if (!len) + return; + + strncpy(str, fullstr, len); + + if (stplyr->draftpower >= FRACUNIT) + { + const INT32 clr = skincolors[stplyr->skincolor].chatcolor; + flags |= clr; + } + + if (tiny) + V_DrawSmallString(174 - V_StringWidth(str, flags)/2, 159, flags, str); + else + V_DrawThinString(174 - V_StringWidth(str, flags)/2, 159, flags, str); +} + void K_drawKartHUD(void) { boolean islonesome = false; @@ -5752,6 +5780,7 @@ void K_drawKartHUD(void) } K_DisplayItemTimers(); + K_SlipstreamIndicator(r_splitscreen > 0); if (modeattacking || freecam) // everything after here is MP and debug only return;