M_LevelListFromGametype: Ensure music is continuous when Level Select is entered from Extras menu

Also fixes the same issue for Online mode
This commit is contained in:
toaster 2023-03-26 22:41:21 +01:00
parent fbfb8a507d
commit 8d804872cf

View file

@ -214,34 +214,42 @@ boolean M_LevelListFromGametype(INT16 gt)
static boolean first = true; static boolean first = true;
UINT8 temp = 0; UINT8 temp = 0;
if (gt != -1 && (first || gt != levellist.newgametype || levellist.guessgt != MAXGAMETYPES)) if (gt != -1)
{ {
if (first) if (first || gt != levellist.newgametype || levellist.guessgt != MAXGAMETYPES)
{ {
cupgrid.cappages = 0; if (first)
cupgrid.builtgrid = NULL; {
dummy_lostandfound.cachedlevels[0] = NEXTMAP_INVALID; cupgrid.cappages = 0;
cupgrid.builtgrid = NULL;
dummy_lostandfound.cachedlevels[0] = NEXTMAP_INVALID;
first = false; first = false;
}
levellist.newgametype = gt;
levellist.levelsearch.typeoflevel = G_TOLFlag(gt);
if (levellist.levelsearch.timeattack == true && gt == GT_SPECIAL)
{
// Sneak in an extra.
levellist.levelsearch.typeoflevel |= G_TOLFlag(GT_VERSUS);
levellist.guessgt = gt;
}
else
{
levellist.guessgt = MAXGAMETYPES;
}
levellist.levelsearch.cupmode = (!(gametypes[gt]->rules & GTR_NOCUPSELECT));
CV_SetValue(&cv_dummyspbattack, 0);
} }
levellist.newgametype = gt; PLAY_CupSelectDef.music = \
PLAY_LevelSelectDef.music = \
levellist.levelsearch.typeoflevel = G_TOLFlag(gt); PLAY_TimeAttackDef.music = \
if (levellist.levelsearch.timeattack == true && gt == GT_SPECIAL) currentMenu->music;
{
// Sneak in an extra.
levellist.levelsearch.typeoflevel |= G_TOLFlag(GT_VERSUS);
levellist.guessgt = gt;
}
else
{
levellist.guessgt = MAXGAMETYPES;
}
levellist.levelsearch.cupmode = (!(gametypes[gt]->rules & GTR_NOCUPSELECT));
CV_SetValue(&cv_dummyspbattack, 0);
} }
// Obviously go to Cup Select in gametypes that have cups. // Obviously go to Cup Select in gametypes that have cups.