From f682102c96ca7944662aff301cc3558fa4d8f080 Mon Sep 17 00:00:00 2001 From: Adam Bird Date: Fri, 31 Mar 2023 21:29:35 -0400 Subject: [PATCH] fix theater mask checks not always granting items (#2650) --- .../overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c index 93eeb9490..07c3ead6e 100644 --- a/soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c +++ b/soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c @@ -136,19 +136,22 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) { } } else { if (gSaveContext.n64ddFlag) { + Player* player = GET_PLAYER(play); switch (Player_GetMask(play)) { case PLAYER_MASK_SKULL: - if (!Flags_GetTreasure(play, 0x1F)) { + if (!Flags_GetTreasure(play, 0x1F) && !Player_InBlockingCsMode(play, player)) { GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_DEKU_THEATER_SKULL_MASK, GI_STICK_UPGRADE_30); GiveItemEntryWithoutActor(play, getItemEntry); - Flags_SetTreasure(play, 0x1F); + player->pendingFlag.flagID = 0x1F; + player->pendingFlag.flagType = FLAG_SCENE_TREASURE; } break; case PLAYER_MASK_TRUTH: - if (!Flags_GetTreasure(play, 0x1E)) { + if (!Flags_GetTreasure(play, 0x1E) && !Player_InBlockingCsMode(play, player)) { GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_DEKU_THEATER_MASK_OF_TRUTH, GI_NUT_UPGRADE_40); GiveItemEntryWithoutActor(play, getItemEntry); - Flags_SetTreasure(play, 0x1E); + player->pendingFlag.flagID = 0x1E; + player->pendingFlag.flagType = FLAG_SCENE_TREASURE; } break; }