diff options
| author | Philip Dubé <159546+serprex@users.noreply.github.com> | 2026-09-13 00:26:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-13 00:26:29 +0000 |
| commit | 3cfe4ddffb5e4ca0fac13369aa09defe648c9895 (patch) | |
| tree | 0b7500ed8b07c653c148aea7d841a2cb741e6cb9 | |
| parent | f04b570d2a08399a64d7cff294ad1c2e42871888 (diff) | |
Prevent despawning shuffled gerudo guard drops (#7183)
| -rw-r--r-- | soh/soh/Enhancements/randomizer/hook_handlers.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index 984f244ab..1ed3fe81b 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -1188,6 +1188,16 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l } break; } + case VB_ITEM00_TIMER_TICK: { + EnItem00* item00 = va_arg(args, EnItem00*); + uint8_t ogType = item00->ogParams & 0xFF; + // Shuffled keys and heart pieces become ITEM00_SOH_DUMMY, no longer matching checks preventing despawning + if (item00->actor.params == ITEM00_SOH_DUMMY && + (ogType == ITEM00_SMALL_KEY || ogType == ITEM00_HEART_PIECE || ogType == ITEM00_HEART_CONTAINER)) { + *should = false; + } + break; + } case VB_ITEM_B_HEART_DESPAWN: { ItemBHeart* itemBHeart = va_arg(args, ItemBHeart*); RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromActor( |
