mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-10 19:45:09 -05:00
Reimplements ImGui Disable of options with Vanilla logic selected.
This commit is contained in:
parent
2ef978c792
commit
bc49998e55
@ -355,9 +355,18 @@ const std::string& OptionGroup::GetDescription() const {
|
|||||||
return mDescription;
|
return mDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionGroup::Enable() {
|
||||||
|
mDisabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionGroup::Disable() {
|
||||||
|
mDisabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
bool OptionGroup::RenderImGui() const { // NOLINT(*-no-recursion)
|
bool OptionGroup::RenderImGui() const { // NOLINT(*-no-recursion)
|
||||||
ImGuiWindow* window = ImGui::GetCurrentWindow();
|
ImGuiWindow* window = ImGui::GetCurrentWindow();
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
ImGui::BeginDisabled(mDisabled);
|
||||||
if (mContainerType == WidgetContainerType::TABLE) {
|
if (mContainerType == WidgetContainerType::TABLE) {
|
||||||
if (ImGui::BeginTable(mName.c_str(), static_cast<int>(mSubGroups.size()), ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) {
|
if (ImGui::BeginTable(mName.c_str(), static_cast<int>(mSubGroups.size()), ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) {
|
||||||
for (const auto column : mSubGroups) {
|
for (const auto column : mSubGroups) {
|
||||||
@ -424,6 +433,7 @@ bool OptionGroup::RenderImGui() const { // NOLINT(*-no-recursion)
|
|||||||
if (mContainerType == WidgetContainerType::TABLE) {
|
if (mContainerType == WidgetContainerType::TABLE) {
|
||||||
ImGui::EndTable();
|
ImGui::EndTable();
|
||||||
}
|
}
|
||||||
|
ImGui::EndDisabled();
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
} // namespace Rando
|
} // namespace Rando
|
@ -462,6 +462,8 @@ class OptionGroup {
|
|||||||
* @brief Renders all of the options contained within this `OptionGroup` in the ImGui menu.
|
* @brief Renders all of the options contained within this `OptionGroup` in the ImGui menu.
|
||||||
*/
|
*/
|
||||||
bool RenderImGui() const;
|
bool RenderImGui() const;
|
||||||
|
void Disable();
|
||||||
|
void Enable();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string mName;
|
std::string mName;
|
||||||
@ -472,5 +474,6 @@ class OptionGroup {
|
|||||||
OptionGroupType mContainsType = OptionGroupType::DEFAULT;
|
OptionGroupType mContainsType = OptionGroupType::DEFAULT;
|
||||||
WidgetContainerType mContainerType = WidgetContainerType::BASIC;
|
WidgetContainerType mContainerType = WidgetContainerType::BASIC;
|
||||||
std::string mDescription;
|
std::string mDescription;
|
||||||
|
bool mDisabled = false;
|
||||||
};
|
};
|
||||||
} // namespace Rando
|
} // namespace Rando
|
@ -1589,6 +1589,48 @@ void Settings::UpdateOptionProperties() {
|
|||||||
} else {
|
} else {
|
||||||
mOptions[RSK_LINKS_POCKET].Enable();
|
mOptions[RSK_LINKS_POCKET].Enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CVarGetInteger("gRandomizeLogicRules", RO_LOGIC_GLITCHLESS) == RO_LOGIC_VANILLA) {
|
||||||
|
mOptionGroups[RSG_AREA_ACCESS_IMGUI].Disable();
|
||||||
|
mOptions[RSK_STARTING_AGE].Disable("");
|
||||||
|
mOptions[RSK_GERUDO_FORTRESS].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE].Disable("");
|
||||||
|
mOptions[RSK_BRIDGE_OPTIONS].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_STONE_COUNT].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_MEDALLION_COUNT].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_REWARD_COUNT].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_DUNGEON_COUNT].Disable("");
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_TOKEN_COUNT].Disable("");
|
||||||
|
mOptions[RSK_GANONS_TRIALS].Disable("");
|
||||||
|
mOptions[RSK_TRIAL_COUNT].Disable("");
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT].Disable("");
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT_PIECES_TOTAL].Disable("");
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT_PIECES_REQUIRED].Disable("");
|
||||||
|
mOptionGroups[RSG_ITEMS_IMGUI_TABLE].Disable();
|
||||||
|
mOptionGroups[RSG_GAMEPLAY_IMGUI_TABLE].Disable();
|
||||||
|
mOptions[RSK_LINKS_POCKET].Disable("");
|
||||||
|
mOptions[RSK_STARTING_OCARINA].Disable("");
|
||||||
|
} else {
|
||||||
|
mOptionGroups[RSG_AREA_ACCESS_IMGUI].Enable();
|
||||||
|
mOptions[RSK_STARTING_AGE].Enable();
|
||||||
|
mOptions[RSK_GERUDO_FORTRESS].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE].Enable();
|
||||||
|
mOptions[RSK_BRIDGE_OPTIONS].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_STONE_COUNT].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_MEDALLION_COUNT].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_REWARD_COUNT].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_DUNGEON_COUNT].Enable();
|
||||||
|
mOptions[RSK_RAINBOW_BRIDGE_TOKEN_COUNT].Enable();
|
||||||
|
mOptions[RSK_GANONS_TRIALS].Enable();
|
||||||
|
mOptions[RSK_TRIAL_COUNT].Enable();
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT].Enable();
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT_PIECES_TOTAL].Enable();
|
||||||
|
mOptions[RSK_TRIFORCE_HUNT_PIECES_REQUIRED].Enable();
|
||||||
|
mOptionGroups[RSG_ITEMS_IMGUI_TABLE].Enable();
|
||||||
|
mOptionGroups[RSG_GAMEPLAY_IMGUI_TABLE].Enable();
|
||||||
|
mOptions[RSK_LINKS_POCKET].Enable();
|
||||||
|
mOptions[RSK_STARTING_OCARINA].Enable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocations, const std::set<RandomizerTrick>& enabledTricks) {
|
void Settings::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocations, const std::set<RandomizerTrick>& enabledTricks) {
|
||||||
|
Loading…
Reference in New Issue
Block a user