summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Dubé <159546+serprex@users.noreply.github.com>2026-09-13 00:26:29 +0000
committerGitHub <noreply@github.com>2026-09-13 00:26:29 +0000
commit3cfe4ddffb5e4ca0fac13369aa09defe648c9895 (patch)
tree0b7500ed8b07c653c148aea7d841a2cb741e6cb9
parentf04b570d2a08399a64d7cff294ad1c2e42871888 (diff)
Prevent despawning shuffled gerudo guard drops (#7183)
-rw-r--r--soh/soh/Enhancements/randomizer/hook_handlers.cpp10
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(