diff options
| author | Adam Bird <Archez@users.noreply.github.com> | 2023-03-31 21:29:35 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-31 21:29:35 -0400 |
| commit | f682102c96ca7944662aff301cc3558fa4d8f080 (patch) | |
| tree | 1cd0b2ef7cd3d75bd6d53ce7f370272fc6d32e26 | |
| parent | e76b990c8a37d4877ebd4aef9ab8093450e9a0c1 (diff) | |
fix theater mask checks not always granting items (#2650)
| -rw-r--r-- | soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c | 11 |
1 files 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; } |
