From 6662818d95ac6ae2814b6257af77da5b7d7fb40a Mon Sep 17 00:00:00 2001 From: Jerom Venneker Date: Tue, 27 May 2025 22:03:12 +0200 Subject: [PATCH] Filtering out already locally checked locations from recieving location sync --- soh/soh/Network/Archipelago/Archipelago.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/soh/soh/Network/Archipelago/Archipelago.cpp b/soh/soh/Network/Archipelago/Archipelago.cpp index 6469dca1f0..07263f2130 100644 --- a/soh/soh/Network/Archipelago/Archipelago.cpp +++ b/soh/soh/Network/Archipelago/Archipelago.cpp @@ -195,6 +195,15 @@ void ArchipelagoClient::SynchRecievedLocations() { void ArchipelagoClient::QueueExternalCheck(const int64_t apLocation) { const std::string checkName = apClient->get_location_name(apLocation, AP_Client_consts::AP_GAME_NAME); const uint32_t RC = static_cast(Rando::StaticData::locationNameToEnum[checkName]); + + // Don't queue checks we already have + if(Rando::Context::GetInstance()->GetItemLocation(RC)->HasObtained()) { + return; + } + + std::string locationLog = "[LOG] Externaly checking" + checkName; + ArchipelagoConsole_SendMessage(locationLog.c_str(), true); + GameInteractor_ExecuteOnRandomizerExternalCheck(RC); }