diff --git a/src/k_kart.c b/src/k_kart.c index e3bb85b08..630b089a9 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -11457,8 +11457,9 @@ void K_CheckSpectateStatus(void) P_SpectatorJoinGame(&players[respawnlist[i]]); } - // Reset the match if you're in an empty server - if (!mapreset && gamestate == GS_LEVEL && leveltime >= starttime && (numingame < 2 && numingame+i >= 2)) // use previous i value + // Reset the match when 2P joins 1P, DUEL mode + // Reset the match when 3P joins 1P and 2P, DUEL mode must be disabled + if (!mapreset && gamestate == GS_LEVEL && (numingame < 3 && numingame+i >= 2)) // use previous i value { S_ChangeMusicInternal("chalng", false); // COME ON mapreset = 3*TICRATE; // Even though only the server uses this for game logic, set for everyone for HUD diff --git a/src/p_setup.c b/src/p_setup.c index 391fe2733..734ad38e3 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -7587,6 +7587,8 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate) sector_t *ss; virtlump_t *encoreLump = NULL; + K_TimerReset(); + levelloading = true; // This is needed. Don't touch. @@ -8008,8 +8010,6 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate) P_MapEnd(); // just in case MapLoad modifies tm.thing } - K_TimerReset(); - // No render mode or reloading gamestate, stop here. if (rendermode == render_none || reloadinggamestate) return true;