From 29b9b4a5a76b6a869ac7ef33eaa72f00c27ebd07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= <159546+serprex@users.noreply.github.com> Date: Wed, 10 Jun 2026 01:23:47 +0000 Subject: [PATCH] Skip Epona Race: don't set EVENTCHKINF_EPONA_OBTAINED until collecting Epona's Song (#6706) Most notably this doesn't despawn gates allowing itemless epona steal --- soh/soh/Enhancements/randomizer/hook_handlers.cpp | 4 ++++ soh/soh/Enhancements/randomizer/savefile.cpp | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index 865d149c2f..f7b61b71a3 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -511,6 +511,10 @@ void RandomizerOnItemReceiveHandler(GetItemEntry receivedItemEntry) { } } + if (receivedItemEntry.modIndex == MOD_NONE && receivedItemEntry.itemId == ITEM_SONG_EPONA) { + Flags_SetEventChkInf(EVENTCHKINF_EPONA_OBTAINED); + } + if (receivedItemEntry.modIndex == MOD_NONE && (receivedItemEntry.itemId == ITEM_HEART_PIECE || receivedItemEntry.itemId == ITEM_HEART_PIECE_2 || receivedItemEntry.itemId == ITEM_HEART_CONTAINER)) { diff --git a/soh/soh/Enhancements/randomizer/savefile.cpp b/soh/soh/Enhancements/randomizer/savefile.cpp index da024d5165..a420abda02 100644 --- a/soh/soh/Enhancements/randomizer/savefile.cpp +++ b/soh/soh/Enhancements/randomizer/savefile.cpp @@ -425,10 +425,6 @@ extern "C" void Randomizer_InitSaveFile() { HIGH_SCORE(HS_POE_POINTS) = 1000 - (100 * Randomizer_GetSettingValue(RSK_BIG_POE_COUNT)); - if (Randomizer_GetSettingValue(RSK_SKIP_EPONA_RACE)) { - Flags_SetEventChkInf(EVENTCHKINF_EPONA_OBTAINED); - } - // Open lowest Vanilla Fire Temple locked door (to prevent key logic lockouts). // Not done on Keysanity since this lockout is a non-issue when Fire Keys can be found outside the temple. u8 keysanity = Randomizer_GetSettingValue(RSK_KEYSANITY) == RO_DUNGEON_ITEM_LOC_ANYWHERE ||