From e53040e504ff0713f41f564feea547bbdc8849c9 Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sat, 10 Feb 2024 15:57:52 -0500 Subject: [PATCH] Adds Silver Rupee Shuffle option to menu --- .../Enhancements/randomizer/option_descriptions.cpp | 9 +++++++++ soh/soh/Enhancements/randomizer/randomizerTypes.h | 11 +++++++++++ soh/soh/Enhancements/randomizer/settings.cpp | 3 +++ 3 files changed, 23 insertions(+) diff --git a/soh/soh/Enhancements/randomizer/option_descriptions.cpp b/soh/soh/Enhancements/randomizer/option_descriptions.cpp index 95db75e55..7b2ce5e84 100644 --- a/soh/soh/Enhancements/randomizer/option_descriptions.cpp +++ b/soh/soh/Enhancements/randomizer/option_descriptions.cpp @@ -393,6 +393,15 @@ void Settings::CreateOptionDescriptions() { "Overworld - Boss Keys can only appear outside of dungeons.\n" "\n" "Anywhere - Boss Keys can appear anywhere in the world."; + mOptionDescriptions[RSK_SHUFFLE_SILVER_RUPEES] = "Vanilla - Silver Rupees will appear in their vanilla locations.\n" + "\n" + "Own dungeon - Silver Rupees can only appear in their respective dungeon.\n" + "\n" + "Any dungeon - Silver Rupees can only appear inside of any dungeon.\n" + "\n" + "Overworld - Silver Rupees can only appear outside of dungeons.\n" + "\n" + "Anywhere - Silver Rupees can appear anywhere in the world."; mOptionDescriptions[RSK_GANONS_BOSS_KEY] = "Vanilla - Ganon's Boss Key will appear in the vanilla location.\n" "\n" diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index a86dc82c4..de39b3e54 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -3661,6 +3661,7 @@ typedef enum { RSK_FISHSANITY_POND_COUNT, RSK_FISHSANITY_AGE_SPLIT, RSK_SHUFFLE_FISHING_POLE, + RSK_SHUFFLE_SILVER_RUPEES, RSK_MAX } RandomizerSettingKey; @@ -3810,6 +3811,16 @@ typedef enum { RO_DUNGEON_ITEM_LOC_ANYWHERE, } RandoOptionDungeonItemLocation; +// Silver Rupees (vanilla, own dungeon, any dungeon, overworld, +// anywhere +typedef enum { + RO_SILVER_SHUFFLE_VANILLA, + RO_SILVER_SHUFFLE_OWN_DUNGEON, + RO_SILVER_SHUFFLE_ANY_DUNGEON, + RO_SILVER_SHUFFLE_OVERWORLD, + RO_SILVER_SHUFFLE_ANYWHERE, +} RandoOptionSilverRupeeLocation; + //Dungeon reward settings typedef enum { RO_DUNGEON_REWARDS_END_OF_DUNGEON, diff --git a/soh/soh/Enhancements/randomizer/settings.cpp b/soh/soh/Enhancements/randomizer/settings.cpp index 3fc4efa86..67e4777a8 100644 --- a/soh/soh/Enhancements/randomizer/settings.cpp +++ b/soh/soh/Enhancements/randomizer/settings.cpp @@ -126,6 +126,7 @@ void Settings::CreateOptions() { mOptions[RSK_KEYSANITY] = Option::U8("Small Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeKeysanity", mOptionDescriptions[RSK_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON); mOptions[RSK_GERUDO_KEYS] = Option::U8("Gerudo Fortress Keys", {"Vanilla", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeGerudoKeys", mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA); mOptions[RSK_BOSS_KEYSANITY] = Option::U8("Boss Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeBossKeysanity", mOptionDescriptions[RSK_BOSS_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON); + mOptions[RSK_SHUFFLE_SILVER_RUPEES] = Option::U8("Silver Rupees", {"Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeSilverRupeeShuffle", mOptionDescriptions[RSK_SHUFFLE_SILVER_RUPEES], WidgetType::Combobox, RO_SILVER_SHUFFLE_VANILLA); mOptions[RSK_GANONS_BOSS_KEY] = Option::U8("Ganon's Boss Key", {"Vanilla", "Own Dungeon", "Start With", "Any Dungeon", "Overworld", "Anywhere", "LACS-Vanilla", "LACS-Stones", "LACS-Medallions", "LACS-Rewards", "LACS-Dungeons", "LACS-Tokens", "Triforce Hunt"}, OptionCategory::Setting, "gRandomizeShuffleGanonBossKey", mOptionDescriptions[RSK_GANONS_BOSS_KEY], WidgetType::Combobox, RO_GANON_BOSS_KEY_VANILLA); mOptions[RSK_LACS_STONE_COUNT] = Option::U8("Stone Count", {NumOpts(0, 4)}, OptionCategory::Setting, "gRandomizeLacsStoneCount", "", WidgetType::Slider, 3, true); mOptions[RSK_LACS_MEDALLION_COUNT] = Option::U8("Medallion Count", {NumOpts(0, 7)}, OptionCategory::Setting, "gRandomizeLacsMedallionCount", "", WidgetType::Slider, 6, true); @@ -684,6 +685,7 @@ void Settings::CreateOptions() { &mOptions[RSK_KEYSANITY], &mOptions[RSK_GERUDO_KEYS], &mOptions[RSK_BOSS_KEYSANITY], + &mOptions[RSK_SHUFFLE_SILVER_RUPEES], &mOptions[RSK_GANONS_BOSS_KEY], &mOptions[RSK_LACS_STONE_COUNT], &mOptions[RSK_LACS_MEDALLION_COUNT], @@ -889,6 +891,7 @@ void Settings::CreateOptions() { &mOptions[RSK_KEYSANITY], &mOptions[RSK_GERUDO_KEYS], &mOptions[RSK_BOSS_KEYSANITY], + &mOptions[RSK_SHUFFLE_SILVER_RUPEES], &mOptions[RSK_GANONS_BOSS_KEY], &mOptions[RSK_LACS_STONE_COUNT], &mOptions[RSK_LACS_MEDALLION_COUNT],