From 43f3166517d3173910501d89ad94ef7694d2d72d Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Mon, 12 Feb 2024 21:55:33 -0500 Subject: [PATCH] Adds vanilla silver rupees to pool when option is on. --- .../randomizer/3drando/item_pool.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp index a54f522aa..a4a9797fd 100644 --- a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp @@ -1061,6 +1061,43 @@ void GenerateItemPool() { } } + // Silver Rupees + + // The Silver Rupees to add to the pool will be different according to which dungeons are vanilla/mq. + if (ctx->GetOption(RSK_SHUFFLE_SILVER_RUPEES).IsNot(RO_SILVER_SHUFFLE_VANILLA)) { + std::vector silversToAdd; + if (ctx->GetDungeon(Rando::ICE_CAVERN)->IsVanilla()) { + silversToAdd.push_back(RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE); + silversToAdd.push_back(RG_ICE_CAVERN_SLIDING_SILVER_RUPEE); + } + if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->IsVanilla()) { + silversToAdd.push_back(RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE); + } + if (ctx->GetDungeon(Rando::GERUDO_TRAINING_GROUNDS)->IsVanilla()) { + silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE); + silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE); + silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE); + } + if (ctx->GetDungeon(Rando::SPIRIT_TEMPLE)->IsVanilla()) { + silversToAdd.push_back(RG_SPIRIT_CHILD_BLOCK_PUSH_SILVER_RUPEE); + silversToAdd.push_back(RG_SPIRIT_BOULDER_SILVER_RUPEE); + } + if (ctx->GetDungeon(Rando::SHADOW_TEMPLE)->IsVanilla()) { + silversToAdd.push_back(RG_SHADOW_SCYTHE_SILVER_RUPEE); + silversToAdd.push_back(RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE); + silversToAdd.push_back(RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE); + } + if (ctx->GetDungeon(Rando::GANONS_CASTLE)->IsVanilla()) { + silversToAdd.push_back(RG_FOREST_TRIAL_SILVER_RUPEE); + silversToAdd.push_back(RG_FIRE_TRIAL_SILVER_RUPEE); + silversToAdd.push_back(RG_SPIRIT_TRIAL_SILVER_RUPEE); + silversToAdd.push_back(RG_LIGHT_TRIAL_SILVER_RUPEE); + } + for (auto rgid : silversToAdd) { + AddItemToMainPool(rgid, ctx->GetSilverRupees()->GetInfo(rgid).GetTotal()); + } + } + if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) { if (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD)) { AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);