Fix Settings Loading Issues (#4465)

This commit is contained in:
Pepper0ni 2024-10-22 16:50:05 +01:00 committed by GitHub
parent dd9253808b
commit a005075bd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 113 additions and 126 deletions

View File

@ -171,24 +171,10 @@ static void WriteShuffledEntrance(std::string sphereString, Entrance* entrance)
} }
// Writes the settings (without excluded locations, starting inventory and tricks) to the spoilerLog document. // Writes the settings (without excluded locations, starting inventory and tricks) to the spoilerLog document.
static void WriteSettings(const bool printAll = false) { static void WriteSettings() {
// auto parentNode = spoilerLog.NewElement("settings");
auto ctx = Rando::Context::GetInstance(); auto ctx = Rando::Context::GetInstance();
auto allOptionGroups = ctx->GetSettings()->GetOptionGroups(); auto allOptionGroups = ctx->GetSettings()->GetOptionGroups();
for (const Rando::OptionGroup& optionGroup : allOptionGroups) { for (const Rando::OptionGroup& optionGroup : allOptionGroups) {
if (optionGroup.GetName() == "Timesaver Settings") {
for (const Rando::Option* option : optionGroup.GetOptions()) {
if (option->GetName() == "Big Poe Target Count" || option->GetName() == "Cuccos to return" ||
option->GetName() == "Skip Epona Race" || option->GetName() == "Skip Tower Escape" ||
option->GetName() == "Skip Child Stealth" || option->GetName() == "Complete Mask Quest" ||
option->GetName() == "Skip Scarecrow's Song" ||
option->GetName() == "Enable Glitch-Useful Cutscenes") {
std::string settingName = optionGroup.GetName() + ":" + option->GetName();
jsonData["settings"][settingName] = option->GetSelectedOptionText();
}
}
continue;
}
if (optionGroup.GetContainsType() == Rando::OptionGroupType::DEFAULT && optionGroup.PrintInSpoiler()) { if (optionGroup.GetContainsType() == Rando::OptionGroupType::DEFAULT && optionGroup.PrintInSpoiler()) {
for (const Rando::Option* option : optionGroup.GetOptions()) { for (const Rando::Option* option : optionGroup.GetOptions()) {
std::string settingName = optionGroup.GetName() + ":" + option->GetName(); std::string settingName = optionGroup.GetName() + ":" + option->GetName();
@ -196,13 +182,6 @@ static void WriteSettings(const bool printAll = false) {
} }
} }
} }
// spoilerLog.RootElement()->InsertEndChild(parentNode);
// for (const uint32_t key : allLocations) {
// ItemLocation* location = GetLocation(key);
// settingsJsonData["locations"][location->GetName()] = location->GetPlacedItemName().english;
// }
} }
// Writes the excluded locations to the spoiler log, if there are any. // Writes the excluded locations to the spoiler log, if there are any.

View File

@ -1254,30 +1254,50 @@ void Settings::CreateOptions() {
&mOptions[RSK_GOSSIP_STONE_HINTS], &mOptions[RSK_GOSSIP_STONE_HINTS],
}; };
//RANDOTODO refactor OptionGroups so we can actually make maintainable enum conversion.
mSpoilerfileSettingNameToEnum = { mSpoilerfileSettingNameToEnum = {
{ "Logic Options:Logic", RSK_LOGIC_RULES }, { "Logic Options:Logic", RSK_LOGIC_RULES },
{ "Logic Options:Night Skulltula's Expect Sun's Song", RSK_SKULLS_SUNS_SONG },
{ "Logic Options:All Locations Reachable", RSK_ALL_LOCATIONS_REACHABLE },
{ "Item Pool Settings:Item Pool", RSK_ITEM_POOL },
{ "Item Pool Settings:Ice Traps", RSK_ICE_TRAPS },
{ "Open Settings:Forest", RSK_FOREST }, { "Open Settings:Forest", RSK_FOREST },
{ "Open Settings:Kakariko Gate", RSK_KAK_GATE }, { "Open Settings:Kakariko Gate", RSK_KAK_GATE },
{ "Open Settings:Door of Time", RSK_DOOR_OF_TIME }, { "Open Settings:Door of Time", RSK_DOOR_OF_TIME },
{ "Open Settings:Zora's Fountain", RSK_ZORAS_FOUNTAIN }, { "Open Settings:Zora's Fountain", RSK_ZORAS_FOUNTAIN },
{ "World Settings:Starting Age", RSK_STARTING_AGE },
{ "Open Settings:Gerudo Fortress", RSK_GERUDO_FORTRESS }, { "Open Settings:Gerudo Fortress", RSK_GERUDO_FORTRESS },
{ "Open Settings:Rainbow Bridge", RSK_RAINBOW_BRIDGE }, { "Open Settings:Rainbow Bridge", RSK_RAINBOW_BRIDGE },
{ "Open Settings:Ganon's Trials", RSK_GANONS_TRIALS },
{ "Open Settings:Ganon's Trials Count", RSK_TRIAL_COUNT },
{ "Open Settings:Stone Count", RSK_RAINBOW_BRIDGE_STONE_COUNT }, { "Open Settings:Stone Count", RSK_RAINBOW_BRIDGE_STONE_COUNT },
{ "Open Settings:Medallion Count", RSK_RAINBOW_BRIDGE_MEDALLION_COUNT }, { "Open Settings:Medallion Count", RSK_RAINBOW_BRIDGE_MEDALLION_COUNT },
{ "Open Settings:Reward Count", RSK_RAINBOW_BRIDGE_REWARD_COUNT }, { "Open Settings:Reward Count", RSK_RAINBOW_BRIDGE_REWARD_COUNT },
{ "Open Settings:Dungeon Count", RSK_RAINBOW_BRIDGE_DUNGEON_COUNT }, { "Open Settings:Dungeon Count", RSK_RAINBOW_BRIDGE_DUNGEON_COUNT },
{ "Open Settings:Token Count", RSK_RAINBOW_BRIDGE_TOKEN_COUNT }, { "Open Settings:Token Count", RSK_RAINBOW_BRIDGE_TOKEN_COUNT },
{ "Open Settings:Bridge Reward Options", RSK_BRIDGE_OPTIONS }, { "Open Settings:Bridge Reward Options", RSK_BRIDGE_OPTIONS },
{ "Open Settings:Ganon's Trials", RSK_GANONS_TRIALS },
{ "Open Settings:Ganon's Trials Count", RSK_TRIAL_COUNT },
{ "Start with Ocarina", RSK_STARTING_OCARINA },
{ "Shuffle Settings:Shuffle Ocarinas", RSK_SHUFFLE_OCARINA },
{ "Shuffle Settings:Shuffle Ocarina Buttons", RSK_SHUFFLE_OCARINA_BUTTONS },
{ "Shuffle Settings:Shuffle Swim", RSK_SHUFFLE_SWIM },
{ "Start with Deku Shield", RSK_STARTING_DEKU_SHIELD },
{ "Start with Kokiri Sword", RSK_STARTING_KOKIRI_SWORD },
{ "Start with Master Sword", RSK_STARTING_MASTER_SWORD },
{ "Start with Zelda's Lullaby", RSK_STARTING_ZELDAS_LULLABY },
{ "Start with Epona's Song", RSK_STARTING_EPONAS_SONG },
{ "Start with Saria's Song", RSK_STARTING_SARIAS_SONG },
{ "Start with Sun's Song", RSK_STARTING_SUNS_SONG },
{ "Start with Song of Time", RSK_STARTING_SONG_OF_TIME },
{ "Start with Song of Storms", RSK_STARTING_SONG_OF_STORMS },
{ "Start with Minuet of Forest", RSK_STARTING_MINUET_OF_FOREST },
{ "Start with Bolero of Fire", RSK_STARTING_BOLERO_OF_FIRE },
{ "Start with Serenade of Water", RSK_STARTING_SERENADE_OF_WATER },
{ "Start with Requiem of Spirit", RSK_STARTING_REQUIEM_OF_SPIRIT },
{ "Start with Nocturne of Shadow", RSK_STARTING_NOCTURNE_OF_SHADOW },
{ "Start with Prelude of Light", RSK_STARTING_PRELUDE_OF_LIGHT },
{ "Shuffle Settings:Shuffle Kokiri Sword", RSK_SHUFFLE_KOKIRI_SWORD },
{ "Shuffle Settings:Shuffle Master Sword", RSK_SHUFFLE_MASTER_SWORD },
{ "Shuffle Settings:Shuffle Child's Wallet", RSK_SHUFFLE_CHILD_WALLET },
{ "Shuffle Settings:Include Tycoon Wallet", RSK_INCLUDE_TYCOON_WALLET },
{ "Shuffle Settings:Shuffle Dungeon Rewards", RSK_SHUFFLE_DUNGEON_REWARDS }, { "Shuffle Settings:Shuffle Dungeon Rewards", RSK_SHUFFLE_DUNGEON_REWARDS },
{ "Shuffle Settings:Link's Pocket", RSK_LINKS_POCKET },
{ "Shuffle Settings:Shuffle Songs", RSK_SHUFFLE_SONGS }, { "Shuffle Settings:Shuffle Songs", RSK_SHUFFLE_SONGS },
{ "Shuffle Settings:Shuffle Gerudo Membership Card", RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD }, { "Shuffle Settings:Tokensanity", RSK_SHUFFLE_TOKENS },
{ "Shuffle Settings:Shopsanity", RSK_SHOPSANITY }, { "Shuffle Settings:Shopsanity", RSK_SHOPSANITY },
{ "Shuffle Settings:Shopsanity Specific Count", RSK_SHOPSANITY_COUNT }, { "Shuffle Settings:Shopsanity Specific Count", RSK_SHOPSANITY_COUNT },
{ "Shuffle Settings:Shopsanity Prices", RSK_SHOPSANITY_PRICES }, { "Shuffle Settings:Shopsanity Prices", RSK_SHOPSANITY_PRICES },
@ -1290,10 +1310,6 @@ void Settings::CreateOptions() {
{ "Shuffle Settings:Shopsanity Giants Wallet Weight", RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT }, { "Shuffle Settings:Shopsanity Giants Wallet Weight", RSK_SHOPSANITY_PRICES_GIANT_WALLET_WEIGHT },
{ "Shuffle Settings:Shopsanity Tycoon Wallet Weight", RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT }, { "Shuffle Settings:Shopsanity Tycoon Wallet Weight", RSK_SHOPSANITY_PRICES_TYCOON_WALLET_WEIGHT },
{ "Shuffle Settings:Shopsanity Affordable Prices", RSK_SHOPSANITY_PRICES_AFFORDABLE }, { "Shuffle Settings:Shopsanity Affordable Prices", RSK_SHOPSANITY_PRICES_AFFORDABLE },
{ "Shuffle Settings:Fishsanity", RSK_FISHSANITY },
{ "Shuffle Settings:Pond Fish Count", RSK_FISHSANITY_POND_COUNT },
{ "Shuffle Settings:Split Pond Fish", RSK_FISHSANITY_AGE_SPLIT },
{ "Shuffle Settings:Shuffle Fishing Pole", RSK_SHUFFLE_FISHING_POLE },
{ "Shuffle Settings:Scrub Shuffle", RSK_SHUFFLE_SCRUBS }, { "Shuffle Settings:Scrub Shuffle", RSK_SHUFFLE_SCRUBS },
{ "Shuffle Settings:Scrubs Prices", RSK_SCRUBS_PRICES }, { "Shuffle Settings:Scrubs Prices", RSK_SCRUBS_PRICES },
{ "Shuffle Settings:Scrubs Fixed Amount", RSK_SCRUBS_PRICES_FIXED_PRICE }, { "Shuffle Settings:Scrubs Fixed Amount", RSK_SCRUBS_PRICES_FIXED_PRICE },
@ -1307,94 +1323,12 @@ void Settings::CreateOptions() {
{ "Shuffle Settings:Scrubs Affordable Prices", RSK_SCRUBS_PRICES_AFFORDABLE }, { "Shuffle Settings:Scrubs Affordable Prices", RSK_SCRUBS_PRICES_AFFORDABLE },
{ "Shuffle Settings:Beehive Shuffle", RSK_SHUFFLE_BEEHIVES }, { "Shuffle Settings:Beehive Shuffle", RSK_SHUFFLE_BEEHIVES },
{ "Shuffle Settings:Shuffle Cows", RSK_SHUFFLE_COWS }, { "Shuffle Settings:Shuffle Cows", RSK_SHUFFLE_COWS },
{ "Shuffle Settings:Tokensanity", RSK_SHUFFLE_TOKENS },
{ "Shuffle Settings:Shuffle Ocarinas", RSK_SHUFFLE_OCARINA },
{ "Shuffle Settings:Shuffle Ocarina Buttons", RSK_SHUFFLE_OCARINA_BUTTONS },
{ "Shuffle Settings:Shuffle Swim", RSK_SHUFFLE_SWIM },
{ "Shuffle Settings:Shuffle Adult Trade", RSK_SHUFFLE_ADULT_TRADE },
{ "Shuffle Settings:Shuffle Kokiri Sword", RSK_SHUFFLE_KOKIRI_SWORD },
{ "Shuffle Settings:Shuffle Master Sword", RSK_SHUFFLE_MASTER_SWORD },
{ "Shuffle Settings:Shuffle Child's Wallet", RSK_SHUFFLE_CHILD_WALLET },
{ "Shuffle Settings:Include Tycoon Wallet", RSK_INCLUDE_TYCOON_WALLET },
{ "Shuffle Settings:Shuffle Weird Egg", RSK_SHUFFLE_WEIRD_EGG }, { "Shuffle Settings:Shuffle Weird Egg", RSK_SHUFFLE_WEIRD_EGG },
{ "Shuffle Settings:Shuffle Gerudo Membership Card", RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD },
{ "Shuffle Settings:Shuffle Frog Song Rupees", RSK_SHUFFLE_FROG_SONG_RUPEES }, { "Shuffle Settings:Shuffle Frog Song Rupees", RSK_SHUFFLE_FROG_SONG_RUPEES },
{ "Shuffle Settings:Shuffle Merchants", RSK_SHUFFLE_MERCHANTS }, { "Item Pool Settings:Item Pool", RSK_ITEM_POOL },
{ "Shuffle Settings:Merchant Prices", RSK_MERCHANT_PRICES }, { "Item Pool Settings:Ice Traps", RSK_ICE_TRAPS },
{ "Shuffle Settings:Merchant Fixed Amount", RSK_MERCHANT_PRICES_FIXED_PRICE },
{ "Shuffle Settings:Merchant Range 1", RSK_MERCHANT_PRICES_RANGE_1 },
{ "Shuffle Settings:Merchant Range 2", RSK_MERCHANT_PRICES_RANGE_2 },
{ "Shuffle Settings:Merchant No Wallet Weight", RSK_MERCHANT_PRICES_NO_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Child Wallet Weight", RSK_MERCHANT_PRICES_CHILD_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Adult Wallet Weight", RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Giants Wallet Weight", RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Tycoon Wallet Weight", RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Affordable Prices", RSK_MERCHANT_PRICES_AFFORDABLE },
{ "Shuffle Settings:Shuffle 100 GS Reward", RSK_SHUFFLE_100_GS_REWARD },
{ "Shuffle Settings:Shuffle Boss Souls", RSK_SHUFFLE_BOSS_SOULS },
{ "Shuffle Settings:Shuffle Deku Stick Bag", RSK_SHUFFLE_DEKU_STICK_BAG },
{ "Shuffle Settings:Shuffle Deku Nut Bag", RSK_SHUFFLE_DEKU_NUT_BAG },
{ "Start with Deku Shield", RSK_STARTING_DEKU_SHIELD },
{ "Start with Kokiri Sword", RSK_STARTING_KOKIRI_SWORD },
{ "Start with Fairy Ocarina", RSK_STARTING_OCARINA },
{ "Start with Zelda's Lullaby", RSK_STARTING_ZELDAS_LULLABY },
{ "Start with Epona's Song", RSK_STARTING_EPONAS_SONG },
{ "Start with Saria's Song", RSK_STARTING_SARIAS_SONG },
{ "Start with Sun's Song", RSK_STARTING_SUNS_SONG },
{ "Start with Song of Time", RSK_STARTING_SONG_OF_TIME },
{ "Start with Song of Storms", RSK_STARTING_SONG_OF_STORMS },
{ "Start with Minuet of Forest", RSK_STARTING_MINUET_OF_FOREST },
{ "Start with Bolero of Fire", RSK_STARTING_BOLERO_OF_FIRE },
{ "Start with Serenade of Water", RSK_STARTING_SERENADE_OF_WATER },
{ "Start with Requiem of Spirit", RSK_STARTING_REQUIEM_OF_SPIRIT },
{ "Start with Nocturne of Shadow", RSK_STARTING_NOCTURNE_OF_SHADOW },
{ "Start with Prelude of Light", RSK_STARTING_PRELUDE_OF_LIGHT },
{ "Shuffle Dungeon Items:Maps/Compasses", RSK_SHUFFLE_MAPANDCOMPASS },
{ "Shuffle Dungeon Items:Small Keys", RSK_KEYSANITY },
{ "Shuffle Dungeon Items:Gerudo Fortress Keys", RSK_GERUDO_KEYS },
{ "Shuffle Dungeon Items:Boss Keys", RSK_BOSS_KEYSANITY },
{ "Shuffle Dungeon Items:Ganon's Boss Key", RSK_GANONS_BOSS_KEY },
{ "Shuffle Dungeon Items:Stone Count", RSK_LACS_STONE_COUNT },
{ "Shuffle Dungeon Items:Medallion Count", RSK_LACS_MEDALLION_COUNT },
{ "Shuffle Dungeon Items:Reward Count", RSK_LACS_REWARD_COUNT },
{ "Shuffle Dungeon Items:Dungeon Count", RSK_LACS_DUNGEON_COUNT },
{ "Shuffle Dungeon Items:Token Count", RSK_LACS_TOKEN_COUNT },
{ "Shuffle Dungeon Items:LACS Reward Options", RSK_LACS_OPTIONS },
{ "Shuffle Dungeon Items:Key Rings", RSK_KEYRINGS },
{ "Shuffle Dungeon Items:Keyring Dungeon Count", RSK_KEYRINGS_RANDOM_COUNT },
{ "Shuffle Dungeon Items:Gerudo Fortress Keyring", RSK_KEYRINGS_GERUDO_FORTRESS },
{ "Shuffle Dungeon Items:Forest Temple Keyring", RSK_KEYRINGS_FOREST_TEMPLE },
{ "Shuffle Dungeon Items:Fire Temple Keyring", RSK_KEYRINGS_FIRE_TEMPLE },
{ "Shuffle Dungeon Items:Water Temple Keyring", RSK_KEYRINGS_WATER_TEMPLE },
{ "Shuffle Dungeon Items:Spirit Temple Keyring", RSK_KEYRINGS_SPIRIT_TEMPLE },
{ "Shuffle Dungeon Items:Shadow Temple Keyring", RSK_KEYRINGS_SHADOW_TEMPLE },
{ "Shuffle Dungeon Items:Bottom of the Well Keyring", RSK_KEYRINGS_BOTTOM_OF_THE_WELL },
{ "Shuffle Dungeon Items:GTG Keyring", RSK_KEYRINGS_GTG },
{ "Shuffle Dungeon Items:Ganon's Castle Keyring", RSK_KEYRINGS_GANONS_CASTLE },
{ "World Settings:Starting Age", RSK_STARTING_AGE },
// TODO: Ammo Drop settings
{ "World Settings:Bombchu Drops", RSK_ENABLE_BOMBCHU_DROPS },
{ "World Settings:Bombchus in Logic", RSK_BOMBCHUS_IN_LOGIC },
{ "World Settings:Shuffle Entrances", RSK_SHUFFLE_ENTRANCES },
{ "World Settings:Dungeon Entrances", RSK_SHUFFLE_DUNGEON_ENTRANCES },
{ "World Settings:Boss Entrances", RSK_SHUFFLE_BOSS_ENTRANCES },
{ "World Settings:Overworld Entrances", RSK_SHUFFLE_OVERWORLD_ENTRANCES },
{ "World Settings:Interior Entrances", RSK_SHUFFLE_INTERIOR_ENTRANCES },
{ "World Settings:Grottos Entrances", RSK_SHUFFLE_GROTTO_ENTRANCES },
{ "World Settings:Owl Drops", RSK_SHUFFLE_OWL_DROPS },
{ "World Settings:Warp Songs", RSK_SHUFFLE_WARP_SONGS },
{ "World Settings:Overworld Spawns", RSK_SHUFFLE_OVERWORLD_SPAWNS },
{ "World Settings:Mixed Entrance Pools", RSK_MIXED_ENTRANCE_POOLS },
{ "World Settings:Mix Dungeons", RSK_MIX_DUNGEON_ENTRANCES },
{ "World Settings:Mix Bosses", RSK_MIX_BOSS_ENTRANCES },
{ "World Settings:Mix Overworld", RSK_MIX_OVERWORLD_ENTRANCES },
{ "World Settings:Mix Interiors", RSK_MIX_INTERIOR_ENTRANCES },
{ "World Settings:Mix Grottos", RSK_MIX_GROTTO_ENTRANCES },
{ "World Settings:Decouple Entrances", RSK_DECOUPLED_ENTRANCES },
{ "World Settings:Triforce Hunt", RSK_TRIFORCE_HUNT },
{ "World Settings:Triforce Hunt Total Pieces", RSK_TRIFORCE_HUNT_PIECES_TOTAL },
{ "World Settings:Triforce Hunt Required Pieces", RSK_TRIFORCE_HUNT_PIECES_REQUIRED },
{ "Miscellaneous Settings:Gossip Stone Hints", RSK_GOSSIP_STONE_HINTS }, { "Miscellaneous Settings:Gossip Stone Hints", RSK_GOSSIP_STONE_HINTS },
{ "Miscellaneous Settings:Hint Clarity", RSK_HINT_CLARITY },
{ "Miscellaneous Settings:ToT Altar Hint", RSK_TOT_ALTAR_HINT }, { "Miscellaneous Settings:ToT Altar Hint", RSK_TOT_ALTAR_HINT },
{ "Miscellaneous Settings:Ganondorf Hint", RSK_GANONDORF_HINT }, { "Miscellaneous Settings:Ganondorf Hint", RSK_GANONDORF_HINT },
{ "Miscellaneous Settings:Sheik Light Arrow Hint", RSK_SHEIK_LA_HINT }, { "Miscellaneous Settings:Sheik Light Arrow Hint", RSK_SHEIK_LA_HINT },
@ -1413,30 +1347,55 @@ void Settings::CreateOptions() {
{ "Miscellaneous Settings:Mask Shop Hint", RSK_MASK_SHOP_HINT }, { "Miscellaneous Settings:Mask Shop Hint", RSK_MASK_SHOP_HINT },
{ "Miscellaneous Settings:Biggoron's Hint", RSK_BIGGORON_HINT }, { "Miscellaneous Settings:Biggoron's Hint", RSK_BIGGORON_HINT },
{ "Miscellaneous Settings:Big Poes Hint", RSK_BIG_POES_HINT }, { "Miscellaneous Settings:Big Poes Hint", RSK_BIG_POES_HINT },
{ "Miscellaneous Settings:Chickens Hint", RSK_CHICKENS_HINT },
{ "Miscellaneous Settings:Malon Hint", RSK_MALON_HINT },
{ "Miscellaneous Settings:Horseback Archery Hint", RSK_HBA_HINT },
{ "Miscellaneous Settings:Warp Song Hints", RSK_WARP_SONG_HINTS }, { "Miscellaneous Settings:Warp Song Hints", RSK_WARP_SONG_HINTS },
{ "Miscellaneous Settings:Scrub Hint Text", RSK_SCRUB_TEXT_HINT }, { "Miscellaneous Settings:Scrub Hint Text", RSK_SCRUB_TEXT_HINT },
{ "Miscellaneous Settings:Merchant Hint Text", RSK_MERCHANT_TEXT_HINT }, { "Miscellaneous Settings:Merchant Hint Text", RSK_MERCHANT_TEXT_HINT },
{ "Miscellaneous Settings:Fishing Pole Hint", RSK_FISHING_POLE_HINT }, { "Miscellaneous Settings:Fishing Pole Hint", RSK_FISHING_POLE_HINT },
{ "Miscellaneous Settings:Hint Clarity", RSK_HINT_CLARITY },
{ "Miscellaneous Settings:Hint Distribution", RSK_HINT_DISTRIBUTION }, { "Miscellaneous Settings:Hint Distribution", RSK_HINT_DISTRIBUTION },
{ "Miscellaneous Settings:Blue Fire Arrows", RSK_BLUE_FIRE_ARROWS }, { "Shuffle Dungeon Items:Maps/Compasses", RSK_SHUFFLE_MAPANDCOMPASS },
{ "Miscellaneous Settings:Sunlight Arrows", RSK_SUNLIGHT_ARROWS }, { "Shuffle Dungeon Items:Small Keys", RSK_KEYSANITY },
{ "Miscellaneous Settings:Infinite Upgrades", RSK_INFINITE_UPGRADES }, { "Shuffle Dungeon Items:Gerudo Fortress Keys", RSK_GERUDO_KEYS },
{ "Miscellaneous Settings:Skeleton Key", RSK_SKELETON_KEY }, { "Shuffle Dungeon Items:Boss Keys", RSK_BOSS_KEYSANITY },
{ "Shuffle Dungeon Items:Ganon's Boss Key", RSK_GANONS_BOSS_KEY },
{ "Timesaver Settings:Skip Child Stealth", RSK_SKIP_CHILD_STEALTH },
{ "Timesaver Settings:Skip Child Zelda", RSK_SKIP_CHILD_ZELDA }, { "Timesaver Settings:Skip Child Zelda", RSK_SKIP_CHILD_ZELDA },
{ "Start with Consumables", RSK_STARTING_CONSUMABLES }, { "Start with Consumables", RSK_STARTING_CONSUMABLES },
{ "Full Wallets", RSK_FULL_WALLETS }, { "Full Wallets", RSK_FULL_WALLETS },
{ "Gold Skulltula Tokens", RSK_STARTING_SKULLTULA_TOKEN },
{ "Hearts", RSK_STARTING_HEARTS },
{ "Timesaver Settings:Cuccos to return", RSK_CUCCO_COUNT }, { "Timesaver Settings:Cuccos to return", RSK_CUCCO_COUNT },
{ "Timesaver Settings:Big Poe Target Count", RSK_BIG_POE_COUNT }, { "Timesaver Settings:Big Poe Target Count", RSK_BIG_POE_COUNT },
{ "Timesaver Settings:Skip Child Stealth", RSK_SKIP_CHILD_STEALTH },
{ "Timesaver Settings:Skip Epona Race", RSK_SKIP_EPONA_RACE }, { "Timesaver Settings:Skip Epona Race", RSK_SKIP_EPONA_RACE },
{ "Timesaver Settings:Complete Mask Quest", RSK_COMPLETE_MASK_QUEST }, { "Timesaver Settings:Complete Mask Quest", RSK_COMPLETE_MASK_QUEST },
{ "Timesaver Settings:Skip Scarecrow's Song", RSK_SKIP_SCARECROWS_SONG }, { "Timesaver Settings:Skip Scarecrow's Song", RSK_SKIP_SCARECROWS_SONG },
{ "Timesaver Settings:Enable Glitch-Useful Cutscenes", RSK_ENABLE_GLITCH_CUTSCENES }, { "Timesaver Settings:Enable Glitch-Useful Cutscenes", RSK_ENABLE_GLITCH_CUTSCENES },
{ "Logic Options:Night Skulltula's Expect Sun's Song", RSK_SKULLS_SUNS_SONG },
{ "Shuffle Settings:Shuffle Adult Trade", RSK_SHUFFLE_ADULT_TRADE },
{ "Shuffle Settings:Shuffle Merchants", RSK_SHUFFLE_MERCHANTS },
{ "Shuffle Settings:Merchant Prices", RSK_MERCHANT_PRICES },
{ "Shuffle Settings:Merchant Fixed Amount", RSK_MERCHANT_PRICES_FIXED_PRICE },
{ "Shuffle Settings:Merchant Range 1", RSK_MERCHANT_PRICES_RANGE_1 },
{ "Shuffle Settings:Merchant Range 2", RSK_MERCHANT_PRICES_RANGE_2 },
{ "Shuffle Settings:Merchant No Wallet Weight", RSK_MERCHANT_PRICES_NO_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Child Wallet Weight", RSK_MERCHANT_PRICES_CHILD_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Adult Wallet Weight", RSK_MERCHANT_PRICES_ADULT_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Giants Wallet Weight", RSK_MERCHANT_PRICES_GIANT_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Tycoon Wallet Weight", RSK_MERCHANT_PRICES_TYCOON_WALLET_WEIGHT },
{ "Shuffle Settings:Merchant Affordable Prices", RSK_MERCHANT_PRICES_AFFORDABLE },
{ "Miscellaneous Settings:Blue Fire Arrows", RSK_BLUE_FIRE_ARROWS },
{ "Miscellaneous Settings:Sunlight Arrows", RSK_SUNLIGHT_ARROWS },
// TODO: Ammo Drop settings
{ "World Settings:Bombchu Drops", RSK_ENABLE_BOMBCHU_DROPS },
{ "World Settings:Bombchus in Logic", RSK_BOMBCHUS_IN_LOGIC },
{ "Shuffle Settings:Link's Pocket", RSK_LINKS_POCKET },
{ "World Settings:MQ Dungeon Setting", RSK_MQ_DUNGEON_RANDOM }, { "World Settings:MQ Dungeon Setting", RSK_MQ_DUNGEON_RANDOM },
{ "World Settings:MQ Dungeon Count", RSK_MQ_DUNGEON_COUNT }, { "World Settings:MQ Dungeon Count", RSK_MQ_DUNGEON_COUNT },
{ "World Settings:Set Dungeon Quests", RSK_MQ_DUNGEON_SET }, { "World Settings:Set Dungeon Quests", RSK_MQ_DUNGEON_SET },
{ "Shuffle Dungeon Quest:Deku Tree", RSK_MQ_DEKU_TREE },
{ "Shuffle Dungeon Quest:Dodongo's Cavern", RSK_MQ_DODONGOS_CAVERN },
{ "Shuffle Dungeon Quest:Jabu-Jabu's Belly", RSK_MQ_JABU_JABU },
{ "Shuffle Dungeon Quest:Forest Temple", RSK_MQ_FOREST_TEMPLE }, { "Shuffle Dungeon Quest:Forest Temple", RSK_MQ_FOREST_TEMPLE },
{ "Shuffle Dungeon Quest:Fire Temple", RSK_MQ_FIRE_TEMPLE }, { "Shuffle Dungeon Quest:Fire Temple", RSK_MQ_FIRE_TEMPLE },
{ "Shuffle Dungeon Quest:Water Temple", RSK_MQ_WATER_TEMPLE }, { "Shuffle Dungeon Quest:Water Temple", RSK_MQ_WATER_TEMPLE },
@ -1446,6 +1405,55 @@ void Settings::CreateOptions() {
{ "Shuffle Dungeon Quest:Ice Cavern", RSK_MQ_ICE_CAVERN }, { "Shuffle Dungeon Quest:Ice Cavern", RSK_MQ_ICE_CAVERN },
{ "Shuffle Dungeon Quest:GTG", RSK_MQ_GTG }, { "Shuffle Dungeon Quest:GTG", RSK_MQ_GTG },
{ "Shuffle Dungeon Quest:Ganon's Castle", RSK_MQ_GANONS_CASTLE }, { "Shuffle Dungeon Quest:Ganon's Castle", RSK_MQ_GANONS_CASTLE },
{ "Shuffle Dungeon Items:Stone Count", RSK_LACS_STONE_COUNT },
{ "Shuffle Dungeon Items:Medallion Count", RSK_LACS_MEDALLION_COUNT },
{ "Shuffle Dungeon Items:Reward Count", RSK_LACS_REWARD_COUNT },
{ "Shuffle Dungeon Items:Dungeon Count", RSK_LACS_DUNGEON_COUNT },
{ "Shuffle Dungeon Items:Token Count", RSK_LACS_TOKEN_COUNT },
{ "Shuffle Dungeon Items:LACS Reward Options", RSK_LACS_OPTIONS },
{ "Shuffle Dungeon Items:Key Rings", RSK_KEYRINGS },
{ "Shuffle Dungeon Items:Keyring Dungeon Count", RSK_KEYRINGS_RANDOM_COUNT },
{ "Shuffle Dungeon Items:Gerudo Fortress Keyring", RSK_KEYRINGS_GERUDO_FORTRESS },
{ "Shuffle Dungeon Items:Forest Temple Keyring", RSK_KEYRINGS_FOREST_TEMPLE },
{ "Shuffle Dungeon Items:Fire Temple Keyring", RSK_KEYRINGS_FIRE_TEMPLE },
{ "Shuffle Dungeon Items:Water Temple Keyring", RSK_KEYRINGS_WATER_TEMPLE },
{ "Shuffle Dungeon Items:Spirit Temple Keyring", RSK_KEYRINGS_SPIRIT_TEMPLE },
{ "Shuffle Dungeon Items:Shadow Temple Keyring", RSK_KEYRINGS_SHADOW_TEMPLE },
{ "Shuffle Dungeon Items:Bottom of the Well Keyring", RSK_KEYRINGS_BOTTOM_OF_THE_WELL },
{ "Shuffle Dungeon Items:GTG Keyring", RSK_KEYRINGS_GTG },
{ "Shuffle Dungeon Items:Ganon's Castle Keyring", RSK_KEYRINGS_GANONS_CASTLE },
{ "World Settings:Shuffle Entrances", RSK_SHUFFLE_ENTRANCES },
{ "World Settings:Dungeon Entrances", RSK_SHUFFLE_DUNGEON_ENTRANCES },
{ "World Settings:Overworld Entrances", RSK_SHUFFLE_OVERWORLD_ENTRANCES },
{ "World Settings:Interior Entrances", RSK_SHUFFLE_INTERIOR_ENTRANCES },
{ "World Settings:Grottos Entrances", RSK_SHUFFLE_GROTTO_ENTRANCES },
{ "World Settings:Owl Drops", RSK_SHUFFLE_OWL_DROPS },
{ "World Settings:Warp Songs", RSK_SHUFFLE_WARP_SONGS },
{ "World Settings:Overworld Spawns", RSK_SHUFFLE_OVERWORLD_SPAWNS },
{ "World Settings:Mixed Entrance Pools", RSK_MIXED_ENTRANCE_POOLS },
{ "World Settings:Mix Dungeons", RSK_MIX_DUNGEON_ENTRANCES },
{ "World Settings:Mix Bosses", RSK_MIX_BOSS_ENTRANCES },
{ "World Settings:Mix Overworld", RSK_MIX_OVERWORLD_ENTRANCES },
{ "World Settings:Mix Interiors", RSK_MIX_INTERIOR_ENTRANCES },
{ "World Settings:Mix Grottos", RSK_MIX_GROTTO_ENTRANCES },
{ "World Settings:Decouple Entrances", RSK_DECOUPLED_ENTRANCES },
{ "Gold Skulltula Tokens", RSK_STARTING_SKULLTULA_TOKEN },
{ "Hearts", RSK_STARTING_HEARTS },
{ "Logic Options:All Locations Reachable", RSK_ALL_LOCATIONS_REACHABLE },
{ "World Settings:Boss Entrances", RSK_SHUFFLE_BOSS_ENTRANCES },
{ "Shuffle Settings:Shuffle 100 GS Reward", RSK_SHUFFLE_100_GS_REWARD },
{ "World Settings:Triforce Hunt", RSK_TRIFORCE_HUNT },
{ "World Settings:Triforce Hunt Total Pieces", RSK_TRIFORCE_HUNT_PIECES_TOTAL },
{ "World Settings:Triforce Hunt Required Pieces", RSK_TRIFORCE_HUNT_PIECES_REQUIRED },
{ "Shuffle Settings:Shuffle Boss Souls", RSK_SHUFFLE_BOSS_SOULS },
{ "Shuffle Settings:Fishsanity", RSK_FISHSANITY },
{ "Shuffle Settings:Pond Fish Count", RSK_FISHSANITY_POND_COUNT },
{ "Shuffle Settings:Split Pond Fish", RSK_FISHSANITY_AGE_SPLIT },
{ "Shuffle Settings:Shuffle Fishing Pole", RSK_SHUFFLE_FISHING_POLE },
{ "Miscellaneous Settings:Infinite Upgrades", RSK_INFINITE_UPGRADES },
{ "Miscellaneous Settings:Skeleton Key", RSK_SKELETON_KEY },
{ "Shuffle Settings:Shuffle Deku Stick Bag", RSK_SHUFFLE_DEKU_STICK_BAG },
{ "Shuffle Settings:Shuffle Deku Nut Bag", RSK_SHUFFLE_DEKU_NUT_BAG },
}; };
} }