diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index d40a0de7a..1612db28f 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -218,7 +218,8 @@ void GivePlayerRandoRewardNocturne(GlobalContext* globalCtx, RandomizerCheck che !Player_InBlockingCsMode(globalCtx, player) && !Flags_GetEventChkInf(0xAA)) { GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(check, RG_NOCTURNE_OF_SHADOW); GiveItemEntryWithoutActor(globalCtx, getItemEntry); - Flags_SetEventChkInf(0xAA); + player->pendingFlag.flagID = 0xAA; + player->pendingFlag.flagType = FLAG_EVENT_CHECK_INF; } } @@ -230,7 +231,8 @@ void GivePlayerRandoRewardRequiem(GlobalContext* globalCtx, RandomizerCheck chec !Player_InBlockingCsMode(globalCtx, player)) { GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(check, RG_SONG_OF_TIME); GiveItemEntryWithoutActor(globalCtx, getItemEntry); - Flags_SetEventChkInf(0xAC); + player->pendingFlag.flagID = 0xAC; + player->pendingFlag.flagType = FLAG_EVENT_CHECK_INF; } } } diff --git a/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c b/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c index 78a559510..a8f3eefce 100644 --- a/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c +++ b/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c @@ -96,13 +96,19 @@ void BgJyaLift_DelayMove(BgJyaLift* this, GlobalContext* globalCtx) { if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F) || (this->moveDelay > 0)) { this->moveDelay++; if (this->moveDelay >= 20) { - // Skip this cutscene if using Sunlight Arrows in rando, since activating the switch while - // not standing on the platform will cause the cutscene to show the unloaded central room - if (!(gSaveContext.n64ddFlag && - (CVar_GetS32("gSunlightArrows", 0) || Randomizer_GetSettingValue(RSK_SUNLIGHT_ARROWS)))) { + // The cutscene of the platform lowering will show the central room in an unloaded state if + // Link is not standing on the platform as it lowers. Therefore check for the Sunlight arrows + // enhancement and if it's enabled, check that Link is on the platform. Otherwise skip it. + if (gSaveContext.n64ddFlag && CVar_GetS32("gSunlightArrows", 0)) { + if (GET_PLAYER(globalCtx)->actor.world.pos.x > -19.0f && GET_PLAYER(globalCtx)->actor.world.pos.x < 139.0f && + GET_PLAYER(globalCtx)->actor.world.pos.z > -1172.0f && GET_PLAYER(globalCtx)->actor.world.pos.z < -1009.0f) { + OnePointCutscene_Init(globalCtx, 3430, -99, &this->dyna.actor, MAIN_CAM); + } + BgJyaLift_SetupMove(this); + } else { OnePointCutscene_Init(globalCtx, 3430, -99, &this->dyna.actor, MAIN_CAM); + BgJyaLift_SetupMove(this); } - BgJyaLift_SetupMove(this); } } }