Fix unique handling of OoT and iron boots and add bow chest
This commit is contained in:
@@ -309,7 +309,9 @@ void RandomizerOnExternalCheckHandler(uint32_t randomizerCheck) {
|
||||
|
||||
// Receiving the OoT or Iron Boots chest locations without preventing the locations locked behind them.
|
||||
// OoT locks Song of Time, Iron boots chest locks the song from Sheik in Ice Cavern.
|
||||
if (rc == RC_HF_OCARINA_OF_TIME_ITEM || rc == RC_ICE_CAVERN_IRON_BOOTS_CHEST) {
|
||||
// We also skip the bow chest in Forest Temple as the chest would spawn while the Stalfos fight still happens,
|
||||
// leading to a double chest spawn.
|
||||
if (rc == RC_HF_OCARINA_OF_TIME_ITEM || rc == RC_ICE_CAVERN_IRON_BOOTS_CHEST || RC_FOREST_TEMPLE_BOW_CHEST) {
|
||||
randomizerQueuedChecks.push(rc);
|
||||
return;
|
||||
}
|
||||
@@ -391,8 +393,12 @@ void RandomizerOnPlayerUpdateForRCQueueHandler() {
|
||||
// When Ocarina or Iron Boots chest has been received externally before, and then picked up in the game itself,
|
||||
// it'll be skipped and not give the song properly because the RC is already checked off. So instead we handle
|
||||
// it here and send out the check locked behind them manually.
|
||||
if ((rc == RC_HF_OCARINA_OF_TIME_ITEM || rc == RC_ICE_CAVERN_IRON_BOOTS_CHEST) && loc->HasObtained()) {
|
||||
RandomizerOnExternalCheckHandler(rc);
|
||||
if (loc->HasObtained()) {
|
||||
if (rc == RC_HF_OCARINA_OF_TIME_ITEM) {
|
||||
RandomizerOnExternalCheckHandler(RC_SONG_FROM_OCARINA_OF_TIME);
|
||||
} else if (rc == RC_ICE_CAVERN_IRON_BOOTS_CHEST) {
|
||||
RandomizerOnExternalCheckHandler(RC_SHEIK_IN_ICE_CAVERN);
|
||||
}
|
||||
}
|
||||
|
||||
if (loc->HasObtained()) {
|
||||
|
||||
Reference in New Issue
Block a user