diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 73ffb6be3..c4b89be5c 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 @@ -4390,7 +4393,7 @@ static void K_drawKartMinimap(void) return; } - minimaptrans = ((10-minimaptrans)<health <= 0 && (players[localplayers[i]].pflags & PF_NOCONTEST)) { if (P_MobjWasRemoved(mobj->tracer)) 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; } diff --git a/src/p_user.c b/src/p_user.c index ecfe54dee..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); } @@ -4156,6 +4158,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;