summaryrefslogtreecommitdiff
path: root/soh/src
diff options
context:
space:
mode:
authorAdam Bird <Archez@users.noreply.github.com>2023-03-31 21:29:35 -0400
committerGitHub <noreply@github.com>2023-03-31 21:29:35 -0400
commitf682102c96ca7944662aff301cc3558fa4d8f080 (patch)
tree1cd0b2ef7cd3d75bd6d53ce7f370272fc6d32e26 /soh/src
parente76b990c8a37d4877ebd4aef9ab8093450e9a0c1 (diff)
fix theater mask checks not always granting items (#2650)
Diffstat (limited to 'soh/src')
-rw-r--r--soh/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c11
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;
}