From 3190edd666639215f9ed9acba68d7052f0f927d5 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Mon, 20 Jul 2020 16:02:46 -0400 Subject: [PATCH] Show nametags in replays, fix in splitscreen --- src/k_kart.c | 59 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 98b81fcad..f2524e1f5 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9863,7 +9863,8 @@ static void K_ObjectTracking(fixed_t *hud_x, fixed_t *hud_y, vertex_t *campos, a { *hud_y /= 2; - if (camnum > 1) + if ((r_splitscreen == 1 && camnum == 1) + || (r_splitscreen > 1 && camnum > 1)) { *hud_y += shhalffixed; } @@ -9977,6 +9978,30 @@ static void K_drawKartPlayerCheck(void) } } +static boolean K_ShowPlayerNametag(player_t *p) +{ + if (demo.playback == true && demo.freecam == true) + { + return true; + } + + if (stplyr == p) + { + return false; + } + + if (G_RaceGametype()) + { + if ((p->kartstuff[k_position] < stplyr->kartstuff[k_position]-2) + || (p->kartstuff[k_position] > stplyr->kartstuff[k_position]+2)) + { + return false; + } + } + + return true; +} + static void K_drawKartNameTags(void) { const fixed_t maxdistance = 8192*mapobjectscale; @@ -10022,7 +10047,6 @@ static void K_drawKartNameTags(void) fixed_t y = -BASEVIDWIDTH * FRACUNIT; vertex_t v; - UINT8 j; if (!playeringame[i] || ntplayer->spectator) { @@ -10042,18 +10066,24 @@ static void K_drawKartNameTags(void) continue; } - for (j = 0; j <= r_splitscreen; j++) + if (!(demo.playback == true && demo.freecam == true)) { - if (ntplayer == &players[displayplayers[j]]) - { - break; - } - } + UINT8 j; - if (j <= r_splitscreen) - { - // Is a player that's being shown on this computer - continue; + for (j = 0; j <= r_splitscreen; j++) + { + if (ntplayer == &players[displayplayers[j]]) + { + break; + } + } + + if (j <= r_splitscreen) + { + // This is a player that's being shown on this computer + // (Remove whenever we get splitscreen ABCD indicators) + continue; + } } v.x = ntplayer->mo->x; @@ -10089,10 +10119,9 @@ static void K_drawKartNameTags(void) V_DrawFixedPatch(x, y, FRACUNIT, V_HUDTRANS, kp_rival[blink], NULL); } } - else if (netgame) + else if (netgame || demo.playback) { - if ((ntplayer->kartstuff[k_position] >= stplyr->kartstuff[k_position]-2) - && (ntplayer->kartstuff[k_position] <= stplyr->kartstuff[k_position]+2)) + if (K_ShowPlayerNametag(ntplayer) == true) { INT32 namelen = V_ThinStringWidth(player_names[i], V_6WIDTHSPACE|V_ALLOWLOWERCASE); INT32 clr = K_SkincolorToTextColor(ntplayer->skincolor);