From cd37a561611755c10503338f24479b7273c30182 Mon Sep 17 00:00:00 2001 From: aMannus Date: Tue, 16 Aug 2022 22:16:44 +0200 Subject: [PATCH] Rando: Fix being able to get Sun's Song check multiple times (#1185) --- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/soh/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/soh/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index cc7360c0a..56bd79e7b 100644 --- a/soh/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/soh/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -323,13 +323,9 @@ void func_80ABF708(EnOkarinaTag* this, GlobalContext* globalCtx) { } void GivePlayerRandoRewardSunSong(EnOkarinaTag* song, GlobalContext* globalCtx, RandomizerCheck check) { - if (song->actor.parent != NULL && song->actor.parent->id == GET_PLAYER(globalCtx)->actor.id && - !Flags_GetTreasure(globalCtx, 0x1F)) { - Flags_SetTreasure(globalCtx, 0x1F); - } else if (!Flags_GetTreasure(globalCtx, 0x1F)) { - GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_LETTER_ZELDA); - func_8002F434(&song->actor, globalCtx, getItemId, 10000.0f, 100.0f); - } + Flags_SetTreasure(globalCtx, 0x1F); + GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_LETTER_ZELDA); + func_8002F434(&song->actor, globalCtx, getItemId, 10000.0f, 100.0f); } void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) { @@ -338,15 +334,11 @@ void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) { if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(globalCtx)) { Message_CloseTextbox(globalCtx); - if (!gSaveContext.n64ddFlag) { - if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) { - globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs); - gSaveContext.cutsceneTrigger = 1; - } - } else { - if (!Flags_GetTreasure(globalCtx, 0x1F)) { - GivePlayerRandoRewardSunSong(this, globalCtx, RC_SONG_FROM_ROYAL_FAMILYS_TOMB); - } + if (!gSaveContext.n64ddFlag && !CHECK_QUEST_ITEM(QUEST_SONG_SUN)) { + globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs); + gSaveContext.cutsceneTrigger = 1; + } else if (!Flags_GetTreasure(globalCtx, 0x1F)) { + GivePlayerRandoRewardSunSong(this, globalCtx, RC_SONG_FROM_ROYAL_FAMILYS_TOMB); } this->actionFunc = func_80ABF708; }