From a353b6e7ceaf7e48e2b06ffda58a871ddffbb2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= <159546+serprex@users.noreply.github.com> Date: Fri, 18 Sep 2026 14:54:24 +0000 Subject: Shuffle Scarecrow Song (#7205) --- soh/src/code/code_800EC960.c | 3 ++- soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'soh/src') diff --git a/soh/src/code/code_800EC960.c b/soh/src/code/code_800EC960.c index b8aa5c8bf..31fc49de4 100644 --- a/soh/src/code/code_800EC960.c +++ b/soh/src/code/code_800EC960.c @@ -2090,7 +2090,8 @@ void AudioOcarina_PlaybackSong(void) { } return; } else { - sPlaybackNoteTimer -= nextNoteTimerStep; + // SoH [Fix] several audio tasks can run between updates, don't wrap below zero + sPlaybackNoteTimer -= MIN(nextNoteTimerStep, sPlaybackNoteTimer); } // Update volume diff --git a/soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 2f088e5f6..c1e692851 100644 --- a/soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -7,6 +7,7 @@ #include "z_en_kakasi3.h" #include "vt.h" #include "objects/object_ka/object_ka.h" +#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_DURING_OCARINA) @@ -387,7 +388,8 @@ void func_80A91A90(EnKakasi3* this, PlayState* play) { if (this->dialogState == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) { if (this->unk_195) { - if (!Flags_GetEventChkInf(EVENTCHKINF_PLAYED_SONG_FOR_SCARECROW_AS_ADULT)) { + if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SCARECROW, + !Flags_GetEventChkInf(EVENTCHKINF_PLAYED_SONG_FOR_SCARECROW_AS_ADULT))) { Flags_SetEventChkInf(EVENTCHKINF_PLAYED_SONG_FOR_SCARECROW_AS_ADULT); } } -- cgit v1.2.3