From 6988fbcf3e0fb10f859ea946625ad7fd8429c031 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 2 Mar 2024 00:23:07 -0800 Subject: [PATCH] Input Display: draw over everything else on the HUD --- src/k_hud.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 5009f8009..7995ef787 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -5164,13 +5164,22 @@ static void K_drawKartFirstPerson(void) static void K_drawInput(void) { + UINT8 viewnum = R_GetViewNumber(); + boolean freecam = camera[viewnum].freecam; //disable some hud elements w/ freecam + + if (!cv_drawinput.value && !modeattacking) + return; + + if (stplyr->spectator || freecam || demo.attract) + return; + INT32 def[4][3] = { {247, 156, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 1p {247, 56, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 2p {6, 52, V_SNAPTOBOTTOM | V_SNAPTOLEFT}, // 4p left {282 - BASEVIDWIDTH/2, 52, V_SNAPTOBOTTOM | V_SNAPTORIGHT}, // 4p right }; - INT32 k = r_splitscreen <= 1 ? r_splitscreen : 2 + (R_GetViewNumber() & 1); + INT32 k = r_splitscreen <= 1 ? r_splitscreen : 2 + (viewnum & 1); INT32 flags = def[k][2] | V_SPLITSCREEN; char mode = ((stplyr->pflags & PF_ANALOGSTICK) ? '4' : '2') + (r_splitscreen > 1); bool local = !demo.playback && P_IsMachineLocalPlayer(stplyr); @@ -6063,13 +6072,6 @@ void K_drawKartHUD(void) K_drawRingCounter(gametypeinfoshown); } - if ((modeattacking && !bossinfo.valid) || cv_drawinput.value) - { - // Draw the input UI - if (LUA_HudEnabled(hud_position)) - K_drawInput(); - } - // Draw the item window if (LUA_HudEnabled(hud_item) && !freecam) { @@ -6129,7 +6131,10 @@ void K_drawKartHUD(void) K_drawEmeraldWin(true); if (modeattacking || freecam) // everything after here is MP and debug only + { + K_drawInput(); return; + } if ((gametyperules & GTR_KARMA) && !r_splitscreen && (stplyr->karthud[khud_yougotem] % 2)) // * YOU GOT EM * V_DrawScaledPatch(BASEVIDWIDTH/2 - (SHORT(kp_yougotem->width)/2), 32, V_HUDTRANS, kp_yougotem); @@ -6148,6 +6153,10 @@ void K_drawKartHUD(void) { K_drawSpectatorHUD(true); } + else + { + K_drawInput(); + } if (cv_kartdebugdistribution.value) K_drawDistributionDebugger();