diff options
Diffstat (limited to 'soh/src')
| -rw-r--r-- | soh/src/code/code_800EC960.c | 3 | ||||
| -rw-r--r-- | soh/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c | 4 |
2 files changed, 5 insertions, 2 deletions
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); } } |
