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); }