From 01016ceee9a40aa9d2a598994666b17273ca4250 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 6 Apr 2024 17:45:44 -0700 Subject: [PATCH 1/5] Splitscreen GP: hide GAME OVERED player sprite and VFX - Does not interfere with destroyed kart explosion --- src/k_hud.cpp | 8 ++++++++ src/p_user.c | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 73ffb6be3..5c1b8f3db 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -4512,6 +4512,10 @@ static void K_drawKartMinimap(void) if ((gametyperules & GTR_BUMPERS) && (players[i].pflags & PF_ELIMINATED)) continue; + // This gets set for a player who has GAME OVER'd + if (P_MobjIsReappearing(players[i].mo)) + continue; + if (i == displayplayers[0] || i == displayplayers[1] || i == displayplayers[2] || i == displayplayers[3]) { // Draw display players on top of everything else @@ -4723,6 +4727,10 @@ static void K_drawKartMinimap(void) mobj = players[localplayers[i]].mo; + // This gets set for a player who has GAME OVER'd + if (P_MobjIsReappearing(mobj)) + continue; + if (mobj->health <= 0 && (players[localplayers[i]].pflags & PF_NOCONTEST)) { if (P_MobjWasRemoved(mobj->tracer)) diff --git a/src/p_user.c b/src/p_user.c index ecfe54dee..e3402c833 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4156,6 +4156,11 @@ void P_PlayerThink(player_t *player) player->playerstate = PST_DEAD; + // hide the player sprite forever + player->mo->hitlag = INT32_MAX; + player->mo->renderflags |= RF_DONTDRAW; + player->mo->reappear = INFTICS; // also hides the follower + // respawn from where you died player->respawn.pointx = player->mo->x; player->respawn.pointy = player->mo->y; From 0d76746a95079c1e358f9d9880c3e0a45cc0b920 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 6 Apr 2024 17:46:55 -0700 Subject: [PATCH 2/5] GP: show GAME OVER tally in Sealed Stars --- src/k_tally.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/k_tally.cpp b/src/k_tally.cpp index b65e7c6bb..f9af6d972 100644 --- a/src/k_tally.cpp +++ b/src/k_tally.cpp @@ -551,9 +551,11 @@ void level_tally_t::Init(player_t *player) done = (player->spectator == true || player->bot == true); - if (specialstageinfo.valid == true && (player->pflags & PF_NOCONTEST) == PF_NOCONTEST) + if (specialstageinfo.valid == true && (player->pflags & PF_NOCONTEST) == PF_NOCONTEST && + (G_GametypeUsesLives() && player->lives <= 0) == false) { // No tally when losing special stages + // Except when GAME OVER state = TALLY_ST_IGNORE; delay = 0; } From 93e444c0d9b1454fb30cafb101025ae69552c605 Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 6 Apr 2024 17:47:41 -0700 Subject: [PATCH 3/5] HUD: fade-in instead of slide-in 2P minimap - Slide-in is always based off of player 1, who may have GAME OVERED before the race even started thus hiding the minimap --- src/k_hud.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 5c1b8f3db..076cd3157 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -4346,12 +4346,15 @@ static void K_drawKartMinimap(void) return; // no pic, just get outta here } - else if (r_splitscreen < 2) // 1/2P right aligned + else if (r_splitscreen < 1) // 1P right aligned { splitflags = (V_SLIDEIN|V_SNAPTORIGHT); } - else if (r_splitscreen == 3) // 4P splits + else // 2/4P splits { + if (r_splitscreen == 1) + splitflags = V_SNAPTORIGHT; // 2P right aligned + dofade = true; } // 3P lives in the middle of the bottom right From d9a1baa9f181f6c535a6b3bd5c51364af701195c Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 6 Apr 2024 17:48:54 -0700 Subject: [PATCH 4/5] K_drawKartMinimap: fix minor typo --- src/k_hud.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 076cd3157..c4b89be5c 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -4393,7 +4393,7 @@ static void K_drawKartMinimap(void) return; } - minimaptrans = ((10-minimaptrans)< Date: Sat, 6 Apr 2024 18:33:59 -0700 Subject: [PATCH 5/5] Splitscreen GP: do not switch away viewpoint on death in Prisons mode --- src/p_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/p_user.c b/src/p_user.c index e3402c833..f9aa4bbfb 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -2882,7 +2882,9 @@ static void P_DeathThink(player_t *player) } // Spectate another player after 2 seconds - if (G_IsPartyLocal(player - players) && playerGone == true && (gametyperules & GTR_BUMPERS) && player->deadtimer == 2*TICRATE) + if (G_IsPartyLocal(player - players) && playerGone == true && + (gametyperules & GTR_BUMPERS) && battleprisons == false && + player->deadtimer == 2*TICRATE) { K_ToggleDirector(G_PartyPosition(player - players), true); }