From acd07f2a0766a71956b876f75ab90fb9f6c4f6fe Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Tue, 6 Dec 2022 00:32:53 -0500 Subject: [PATCH] add/use enum values for rando mq dungeon options (#2056) Co-authored-by: briaguya --- soh/soh/Enhancements/presets.h | 4 ++-- soh/soh/Enhancements/randomizer/3drando/settings.cpp | 4 ++-- soh/soh/Enhancements/randomizer/randomizer.cpp | 11 +++++------ soh/soh/Enhancements/randomizer/randomizerTypes.h | 8 ++++++++ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/soh/soh/Enhancements/presets.h b/soh/soh/Enhancements/presets.h index b0f2a8aac..7f8a3ae07 100644 --- a/soh/soh/Enhancements/presets.h +++ b/soh/soh/Enhancements/presets.h @@ -560,7 +560,7 @@ const std::vector s6PresetEntries = { PRESET_ENTRY_S32("gRandomizeIceTraps", RO_ICE_TRAPS_OFF), PRESET_ENTRY_S32("gRandomizeKakarikoGate", RO_KAK_GATE_OPEN), PRESET_ENTRY_S32("gRandomizeMedallionCount", 6), - PRESET_ENTRY_S32("gRandomizeMqDungeons", 0), + PRESET_ENTRY_S32("gRandomizeMqDungeons", RO_MQ_DUNGEONS_NONE), PRESET_ENTRY_S32("gRandomizeRainbowBridge", RO_BRIDGE_MEDALLIONS), PRESET_ENTRY_S32("gRandomizeShuffleAdultTrade", 1), PRESET_ENTRY_S32("gRandomizeShuffleDungeonReward", RO_DUNGEON_REWARDS_END_OF_DUNGEON), @@ -600,7 +600,7 @@ const std::vector hellModePresetEntries = { PRESET_ENTRY_S32("gRandomizeKakarikoGate", RO_KAK_GATE_OPEN), PRESET_ENTRY_S32("gRandomizeKeysanity", RO_DUNGEON_ITEM_LOC_ANYWHERE), PRESET_ENTRY_S32("gRandomizeLinksPocket", RO_LINKS_POCKET_NOTHING), - PRESET_ENTRY_S32("gRandomizeMqDungeons", 2), + PRESET_ENTRY_S32("gRandomizeMqDungeons", RO_MQ_DUNGEONS_RANDOM_NUMBER), PRESET_ENTRY_S32("gRandomizeRainbowBridge", RO_BRIDGE_DUNGEON_REWARDS), PRESET_ENTRY_S32("gRandomizeShopsanity", RO_SHOPSANITY_FOUR_ITEMS), PRESET_ENTRY_S32("gRandomizeShuffleAdultTrade", 1), diff --git a/soh/soh/Enhancements/randomizer/3drando/settings.cpp b/soh/soh/Enhancements/randomizer/3drando/settings.cpp index e4bf7fa07..1a53d1635 100644 --- a/soh/soh/Enhancements/randomizer/3drando/settings.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/settings.cpp @@ -2547,9 +2547,9 @@ namespace Settings { } else { GanonsTrialsCount.SetSelectedIndex(cvarSettings[RSK_TRIAL_COUNT]); } - if (cvarSettings[RSK_RANDOM_MQ_DUNGEONS] == 2) { + if (cvarSettings[RSK_RANDOM_MQ_DUNGEONS] == RO_MQ_DUNGEONS_RANDOM_NUMBER) { MQDungeonCount.SetSelectedIndex(13); - } else if (cvarSettings[RSK_RANDOM_MQ_DUNGEONS] == 0) { + } else if (cvarSettings[RSK_RANDOM_MQ_DUNGEONS] == RO_MQ_DUNGEONS_NONE) { MQDungeonCount.SetSelectedIndex(0); } else { MQDungeonCount.SetSelectedIndex(cvarSettings[RSK_MQ_DUNGEON_COUNT]); diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 24b09b505..5889ecdb5 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -705,7 +705,6 @@ void Randomizer::ParseRandomizerSettingsFile(const char* spoilerFileName) { case RSK_SHUFFLE_COWS: case RSK_SHUFFLE_ADULT_TRADE: case RSK_SHUFFLE_MAGIC_BEANS: - case RSK_RANDOM_MQ_DUNGEONS: case RSK_STARTING_DEKU_SHIELD: case RSK_STARTING_KOKIRI_SWORD: case RSK_COMPLETE_MASK_QUEST: @@ -2660,15 +2659,15 @@ void GenerateRandomizerImgui() { if (OTRGlobals::Instance->HasMasterQuest() && OTRGlobals::Instance->HasOriginal()) { // If both OTRs are loaded. - cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = CVar_GetS32("gRandomizeMqDungeons", 0); + cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = CVar_GetS32("gRandomizeMqDungeons", RO_MQ_DUNGEONS_NONE); cvarSettings[RSK_MQ_DUNGEON_COUNT] = CVar_GetS32("gRandomizeMqDungeonCount", 12); } else if (OTRGlobals::Instance->HasMasterQuest()) { // If only Master Quest is loaded. - cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = 1; + cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = RO_MQ_DUNGEONS_SET_NUMBER; cvarSettings[RSK_MQ_DUNGEON_COUNT] = 12; } else { // If only Original Quest is loaded. - cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = 1; + cvarSettings[RSK_RANDOM_MQ_DUNGEONS] = RO_MQ_DUNGEONS_NONE; cvarSettings[RSK_MQ_DUNGEON_COUNT] = 0; } @@ -3031,9 +3030,9 @@ void DrawRandoEditor(bool& open) { "\n" "Random Number - A Random number and set of dungeons will be their Master Quest varieties." ); - UIWidgets::EnhancementCombobox("gRandomizeMqDungeons", randoMqDungeons, 3, CVar_GetS32("gRandomizeMqDungeons", 0)); + UIWidgets::EnhancementCombobox("gRandomizeMqDungeons", randoMqDungeons, RO_MQ_DUNGEONS_MAX, RO_MQ_DUNGEONS_NONE); ImGui::PopItemWidth(); - if (CVar_GetS32("gRandomizeMqDungeons", 0) == 1) { + if (CVar_GetS32("gRandomizeMqDungeons", RO_MQ_DUNGEONS_NONE) == RO_MQ_DUNGEONS_SET_NUMBER) { ImGui::Dummy(ImVec2(0.0f, 0.0f)); UIWidgets::EnhancementSliderInt("Master Quest Dungeon Count: %d", "##RandoMqDungeonCount", "gRandomizeMqDungeonCount", 1, 12, "", CVar_GetS32("gRandomizeMqDungeonCount", 12), true); diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index 2b2bcb864..da38374ab 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -1356,6 +1356,14 @@ typedef enum { RO_LOGIC_MAX, } RandoOptionLogic; +// MQ Dungeons +typedef enum { + RO_MQ_DUNGEONS_NONE, + RO_MQ_DUNGEONS_SET_NUMBER, + RO_MQ_DUNGEONS_RANDOM_NUMBER, + RO_MQ_DUNGEONS_MAX, +} RandoOptionMQDungeons; + typedef enum { CAN_OBTAIN, CANT_OBTAIN_MISC,