Added queueing up song of time check when getting the ocarina of time check when its already been checked remotely

This commit is contained in:
Jerom Venneker
2025-08-04 21:27:17 +02:00
parent 799e2c2d5a
commit a72660959c

View File

@@ -257,9 +257,10 @@ void RandomizerOnFlagSetHandler(int16_t flagType, int16_t flag) {
Rando::Context::GetInstance()->GetOption(RSK_SHUFFLE_TOKENS).Is(RO_TOKENSANITY_OFF))
return;
auto loc = Rando::Context::GetInstance()->GetItemLocation(rc);
if (loc == nullptr || loc->HasObtained() || loc->GetPlacedRandomizerGet() == RG_NONE)
return;
if(rc != RC_HF_OCARINA_OF_TIME_ITEM) {
if (loc == nullptr || loc->HasObtained() || loc->GetPlacedRandomizerGet() == RG_NONE)
return;
}
SPDLOG_INFO("Queuing RC: {}", static_cast<uint32_t>(rc));
randomizerQueuedChecks.push(rc);
}
@@ -301,6 +302,12 @@ void RandomizerOnExternalCheckHandler(uint32_t randomizerCheck) {
inSameArea = scene == gPlayState->sceneNum;
}
// setting the ocarinina obtained event flag
if(rc == RC_HF_OCARINA_OF_TIME_ITEM) {
randomizerQueuedChecks.push(rc);
return;
}
std::string logMessage = "";
switch (loc->GetCollectionCheck().type) {
@@ -375,6 +382,10 @@ void RandomizerOnPlayerUpdateForRCQueueHandler() {
getItemEntry = Rando::Context::GetInstance()->GetFinalGIEntry(rc, true, (GetItemID)vanillaRandomizerGet);
}
if(rc == RC_HF_OCARINA_OF_TIME_ITEM && loc->HasObtained()) {
RandomizerOnExternalCheckHandler(RC_SONG_FROM_OCARINA_OF_TIME);
}
if (loc->HasObtained()) {
SPDLOG_INFO("RC {} already obtained, skipping", static_cast<uint32_t>(rc));
} else {