diff --git a/soh/soh/Enhancements/randomizer/context.cpp b/soh/soh/Enhancements/randomizer/context.cpp index e47723562..5ba839c1f 100644 --- a/soh/soh/Enhancements/randomizer/context.cpp +++ b/soh/soh/Enhancements/randomizer/context.cpp @@ -438,6 +438,7 @@ void Context::ParseArchipelago() { ParseArchipelagoItemsLocations(apClient.GetScoutedItems()); ParseArchipelagoOptions(); ParseArchipelagoTricks(); + ParseArchipelagoExcludedLocations(); mEntranceShuffler->UnshuffleAllEntrances(); mDungeons->ResetAllDungeons(); mTrials->RemoveAllTrials(); @@ -758,6 +759,15 @@ void Context::ParseArchipelagoTricks() { // See Context::ParseTricksJson for more info } +void Context::ParseArchipelagoExcludedLocations() { + // Maybe eventually we can add locations that are excluded on AP's side. + // For now, remove all of them to prevent seed bleed from normal rando seeds. + const auto ctx = Rando::Context::GetInstance(); + for (int count = 0; count < RC_MAX; count++) { + ctx->GetItemLocation(count)->SetExcludedOption(RO_GENERIC_OFF); + }; +} + void Context::ParseArchipelagoItemsLocations(const std::vector& scouted_items) { const std::string SlotName = ArchipelagoClient::GetInstance().GetSlotName(); nlohmann::json slotData = ArchipelagoClient::GetInstance().GetSlotData(); diff --git a/soh/soh/Enhancements/randomizer/context.h b/soh/soh/Enhancements/randomizer/context.h index bd859565b..2c2ace794 100644 --- a/soh/soh/Enhancements/randomizer/context.h +++ b/soh/soh/Enhancements/randomizer/context.h @@ -139,6 +139,7 @@ class Context { void ParseArchipelago(); void ParseArchipelagoOptions(); void ParseArchipelagoTricks(); + void ParseArchipelagoExcludedLocations(); void ParseArchipelagoItemsLocations(const std::vector& slot_data); /**