From a97f853a140b06cd344a855edaec543f08b46b9c Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sun, 16 Mar 2025 16:55:14 -0400 Subject: [PATCH] Prevent Big Octo one point cutscene from playing twice. (#5113) --- .../SkipMiscInteractions/SkipChildRutoInteractions.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/TimeSavers/SkipMiscInteractions/SkipChildRutoInteractions.cpp b/soh/soh/Enhancements/TimeSavers/SkipMiscInteractions/SkipChildRutoInteractions.cpp index 7d676e6f8..2894cb914 100644 --- a/soh/soh/Enhancements/TimeSavers/SkipMiscInteractions/SkipChildRutoInteractions.cpp +++ b/soh/soh/Enhancements/TimeSavers/SkipMiscInteractions/SkipChildRutoInteractions.cpp @@ -65,7 +65,12 @@ void SkipChildRutoInteractions_Register() { enRu1->action = 42; Animation_Change(&enRu1->skelAnime, (AnimationHeader*)&gRutoChildWait2Anim, 1.0f, 0, Animation_GetLastFrame((void*)&gRutoChildWait2Anim), ANIMMODE_LOOP, -8.0f); - enRu1->unk_28C->cameraSetting = 1; + // If we aren't skipping one point cutscenes and BgBdan objects has set the camera setting + // to CAM_SET_NORMAL1 (2), don't reset the camera setting to 1. This prevents the One Point + // Cutscene of Ruto getting lifted up from getting queued up twice. + if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.OnePoint"), IS_RANDO) || enRu1->unk_28C->cameraSetting != 2) { + enRu1->unk_28C->cameraSetting = 1; + } Actor* sapphire = func_80AEB124(gPlayState); if (sapphire != NULL) { Actor_Kill(sapphire);