Adds logic so levels without a gamemode defined at all are treated as wildcarded to any given gamemode selected

This commit is contained in:
JeffR 2024-10-04 00:22:12 -05:00
parent e4d07c7e8d
commit 020bd03cf9

View file

@ -156,26 +156,35 @@ function refreshLevelsList()
//filter for selected gamemode //filter for selected gamemode
%levelGameModes = %levelAsset.gameModesNames; %levelGameModes = %levelAsset.gameModesNames;
%foundGameModeMatch = false; //If the level has no gamemodes defined, we just assume the default case of it being a wildcard to whatever gamemode
for(%gm = 0; %gm < getTokenCount(%levelGameModes, ";"); %gm++) //is available
if(%levelGameModes $= "")
{ {
%gameModeName = getToken(%levelGameModes, ";", %gm); %foundGameModeMatch = true;
}
for(%g=0; %g < GameModePreviewArray.getCount(); %g++) else
{
%foundGameModeMatch = false;
for(%gm = 0; %gm < getTokenCount(%levelGameModes, ";"); %gm++)
{ {
%gmb = GameModePreviewArray.getObject(%g); %gameModeName = getToken(%levelGameModes, ";", %gm);
if(!isObject(%gmb.gameModeObj) || (!%gmb.gameModeObj.active && !%gmb.gameModeObj.alwaysActive))
continue;
if(%gameModeName $= %gmb.gameModeObj.getName()) for(%g=0; %g < GameModePreviewArray.getCount(); %g++)
{ {
%foundGameModeMatch = true; %gmb = GameModePreviewArray.getObject(%g);
break; if(!isObject(%gmb.gameModeObj) || (!%gmb.gameModeObj.active && !%gmb.gameModeObj.alwaysActive))
} continue;
}
if(%foundGameModeMatch) if(%gameModeName $= %gmb.gameModeObj.getName())
break; {
%foundGameModeMatch = true;
break;
}
}
if(%foundGameModeMatch)
break;
}
} }
if(!%foundGameModeMatch) if(!%foundGameModeMatch)