diff --git a/soh/soh/Enhancements/Presets/Presets.cpp b/soh/soh/Enhancements/Presets/Presets.cpp index a6ffbcf96..12354dce4 100644 --- a/soh/soh/Enhancements/Presets/Presets.cpp +++ b/soh/soh/Enhancements/Presets/Presets.cpp @@ -122,6 +122,8 @@ void applyPreset(std::string presetName, std::vector includeSecti } if (i == PRESET_SECTION_RANDOMIZER) { Rando::Settings::GetInstance()->UpdateAllOptions(); + SohGui::UpdateMenuTricks(); + SohGui::UpdateMenuLocations(); } } } diff --git a/soh/soh/SohGui/SohMenu.h b/soh/soh/SohGui/SohMenu.h index 3f147eddc..5b0b07827 100644 --- a/soh/soh/SohGui/SohMenu.h +++ b/soh/soh/SohGui/SohMenu.h @@ -26,6 +26,8 @@ static std::map languages = { { LANGUAGE_FRA, "French" }, { LANGUAGE_JPN, "Japanese" }, }; +void UpdateMenuTricks(); +void UpdateMenuLocations(); class SohMenu : public Ship::Menu { public: diff --git a/soh/soh/SohGui/SohMenuRandomizer.cpp b/soh/soh/SohGui/SohMenuRandomizer.cpp index 0c11dffc8..d0fbd94c2 100644 --- a/soh/soh/SohGui/SohMenuRandomizer.cpp +++ b/soh/soh/SohGui/SohMenuRandomizer.cpp @@ -38,15 +38,8 @@ void DrawLocationsMenu(WidgetInfo& info) { ImGui::BeginDisabled(CVarGetInteger(CVAR_SETTING("DisableChanges"), 0) || disableEditingRandoSettings); ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, cellPadding); if (locationsDirty || currMQDungeonSetting != prevMQDungeonSetting) { - RandomizerCheckObjects::UpdateImGuiVisibility(); - // todo: this efficently when we build out cvar array support - std::stringstream excludedLocationStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("ExcludedLocations"), "")); - std::string excludedLocationString; - excludedLocations.clear(); - while (getline(excludedLocationStringStream, excludedLocationString, ',')) { - excludedLocations.insert((RandomizerCheck)std::stoi(excludedLocationString)); - } locationsDirty = false; + UpdateMenuLocations(); } prevMQDungeonSetting = currMQDungeonSetting; @@ -166,6 +159,34 @@ void DrawLocationsMenu(WidgetInfo& info) { ImGui::EndDisabled(); } +void UpdateMenuLocations() { + RandomizerCheckObjects::UpdateImGuiVisibility(); + // todo: this efficently when we build out cvar array support + std::stringstream excludedLocationStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("ExcludedLocations"), "")); + std::string excludedLocationString; + excludedLocations.clear(); + while (getline(excludedLocationStringStream, excludedLocationString, ',')) { + excludedLocations.insert((RandomizerCheck)std::stoi(excludedLocationString)); + } +} + +void UpdateMenuTricks() { + // RandomizerTricks::UpdateImGuiVisibility(); + // todo: this efficently when we build out cvar array support + std::stringstream enabledTrickStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("EnabledTricks"), "")); + std::string enabledTrickString; + enabledTricks.clear(); + while (getline(enabledTrickStringStream, enabledTrickString, ',')) { + enabledTricks.insert((RandomizerTrick)std::stoi(enabledTrickString)); + } + std::stringstream enabledGlitchStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("EnabledGlitches"), "")); + std::string enabledGlitchString; + enabledGlitches.clear(); + while (getline(enabledGlitchStringStream, enabledGlitchString, ',')) { + enabledGlitches.insert((RandomizerTrick)std::stoi(enabledGlitchString)); + } +} + void DrawTricksMenu(WidgetInfo& info) { auto ctx = OTRGlobals::Instance->gRandoContext; auto randoSettings = Rando::Settings::GetInstance(); @@ -174,20 +195,7 @@ void DrawTricksMenu(WidgetInfo& info) { bool disableEditingRandoSettings = generating || CVarGetInteger(CVAR_GENERAL("OnFileSelectNameEntry"), 0); if (tricksDirty) { tricksDirty = false; - // RandomizerTricks::UpdateImGuiVisibility(); - // todo: this efficently when we build out cvar array support - std::stringstream enabledTrickStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("EnabledTricks"), "")); - std::string enabledTrickString; - enabledTricks.clear(); - while (getline(enabledTrickStringStream, enabledTrickString, ',')) { - enabledTricks.insert((RandomizerTrick)std::stoi(enabledTrickString)); - } - std::stringstream enabledGlitchStringStream(CVarGetString(CVAR_RANDOMIZER_SETTING("EnabledGlitches"), "")); - std::string enabledGlitchString; - enabledGlitches.clear(); - while (getline(enabledGlitchStringStream, enabledGlitchString, ',')) { - enabledGlitches.insert((RandomizerTrick)std::stoi(enabledGlitchString)); - } + UpdateMenuTricks(); } ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, cellPadding);