From 18750047fb64be43a27cf59b2b4f38b16302a099 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 25 Feb 2025 19:17:43 -0600 Subject: [PATCH] game mode filterfix GameMode::findGameModes now only returns the *active* ones. SubScene::load() checks against either that, or if it's selected --- Engine/source/T3D/SubScene.cpp | 2 +- Engine/source/T3D/gameMode.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Engine/source/T3D/SubScene.cpp b/Engine/source/T3D/SubScene.cpp index cc05532a2..ecab32ff0 100644 --- a/Engine/source/T3D/SubScene.cpp +++ b/Engine/source/T3D/SubScene.cpp @@ -348,7 +348,7 @@ void SubScene::load() return; GameMode::findGameModes(mGameModesNames, &mGameModesList); - if ((String(mGameModesNames).isNotEmpty() && mGameModesList.size() == 0) || !evaluateCondition()) + if (!isSelected() && (String(mGameModesNames).isNotEmpty() && mGameModesList.size() == 0) || !evaluateCondition()) { mLoaded = false; return; diff --git a/Engine/source/T3D/gameMode.cpp b/Engine/source/T3D/gameMode.cpp index 32253cca5..02cf791fc 100644 --- a/Engine/source/T3D/gameMode.cpp +++ b/Engine/source/T3D/gameMode.cpp @@ -101,7 +101,8 @@ void GameMode::findGameModes(const char* gameModeList, Vector *outGam GameMode* gm; if (Sim::findObject(gameModeNames[i].c_str(), gm)) { - outGameModes->push_back(gm); + if (gm->isActive() || gm->isAlwaysActive()) + outGameModes->push_back(gm); } } }