diff --git a/src/g_game.c b/src/g_game.c index 3ce9a8b1a..99722b523 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -3922,7 +3922,7 @@ static void G_DoCompleted(void) } // play some generic music if there's no win/cool/lose music going on (for exitlevel commands) - if ((gametyperules & GTR_CIRCUIT) && ((multiplayer && demo.playback) || j == r_splitscreen+1) && (cv_inttime.value > 0)) + if ((gametyperules & GTR_CIRCUIT) && ((multiplayer && demo.playback) || j == r_splitscreen+1) && (!K_CanChangeRules() || cv_inttime.value > 0)) S_ChangeMusicInternal("racent", true); if (automapactive) diff --git a/src/p_user.c b/src/p_user.c index 090346bea..30090ac8e 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1286,7 +1286,7 @@ void P_DoPlayerExit(player_t *player) } } - if (cv_inttime.value > 0) + if (!K_CanChangeRules() || cv_inttime.value > 0) P_EndingMusic(player); if (P_CheckRacers()) diff --git a/src/y_inter.c b/src/y_inter.c index 34097718e..21d7e39ec 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -806,23 +806,31 @@ void Y_StartIntermission(void) powertype = K_UsingPowerLevels(); // determine the tic the intermission ends - if (!multiplayer || demo.playback) + if (!K_CanChangeRules()) { - timer = ((nump >= 2) ? 10 : 5)*TICRATE; + timer = 10*TICRATE; } else { timer = cv_inttime.value*TICRATE; - - if (!timer) - timer = 1; // prevent a weird bug } // determine the tic everybody's scores/PWR starts getting sorted sorttic = -1; - if (multiplayer || nump >= 2) + if (!timer) { - sorttic = max((timer/2) - 2*TICRATE, 2*TICRATE); // 8 second pause after match results + // Prevent a weird bug + timer = 1; + } + else if (nump < 2 && !netgame) + { + // No PWR/global score, skip it + timer /= 2; + } + else + { + // Minimum two seconds for match results, then two second slideover approx halfway through + sorttic = max((timer/2) - 2*TICRATE, 2*TICRATE); } if (intermissiontypes[gametype] != int_none) @@ -841,7 +849,7 @@ void Y_StartIntermission(void) case int_battle: case int_battletime: { - if (cv_inttime.value > 0) + if (timer > 1) S_ChangeMusicInternal("racent", true); // loop it // Calculate who won