summaryrefslogtreecommitdiff
path: root/soh/src
diff options
context:
space:
mode:
authorJordan Longstaff <JordanLongstaff@users.noreply.github.com>2024-12-09 11:13:45 -0500
committerGitHub <noreply@github.com>2024-12-09 09:13:45 -0700
commitd0bfa6860b554a73cc1aeb4d025be4f26ee84b01 (patch)
treeed21c43787e467f0c002e2b52b14fcc7d67b57a8 /soh/src
parent4010229de5482cdd756bf2aaf1c7499e333730f7 (diff)
Skip the Mweep cutscene (#4646)
* Skip the Mweep cutscene * Fix bug: Ruto's letter was not removed from bottle
Diffstat (limited to 'soh/src')
-rw-r--r--soh/src/overlays/actors/ovl_En_Kz/z_en_kz.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/soh/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/soh/src/overlays/actors/ovl_En_Kz/z_en_kz.c
index d5f14c959..79b719734 100644
--- a/soh/src/overlays/actors/ovl_En_Kz/z_en_kz.c
+++ b/soh/src/overlays/actors/ovl_En_Kz/z_en_kz.c
@@ -437,17 +437,23 @@ void EnKz_SetupMweep(EnKz* this, PlayState* play) {
Vec3f pos;
Vec3f initPos;
- this->cutsceneCamera = Play_CreateSubCamera(play);
- this->gameplayCamera = play->activeCamera;
- Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_WAIT);
- Play_ChangeCameraStatus(play, this->cutsceneCamera, CAM_STAT_ACTIVE);
+ bool shouldPlayCutscene = GameInteractor_Should(VB_PLAY_MWEEP_CS, true);
+
+ if (shouldPlayCutscene) {
+ this->cutsceneCamera = Play_CreateSubCamera(play);
+ this->gameplayCamera = play->activeCamera;
+ Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_WAIT);
+ Play_ChangeCameraStatus(play, this->cutsceneCamera, CAM_STAT_ACTIVE);
+ }
pos = this->actor.world.pos;
initPos = this->actor.home.pos;
pos.y += 60.0f;
initPos.y += -100.0f;
initPos.z += 260.0f;
- Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
- Player_SetCsActionWithHaltedActors(play, &this->actor, 8);
+ if (shouldPlayCutscene) {
+ Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
+ Player_SetCsActionWithHaltedActors(play, &this->actor, 8);
+ }
this->actor.speedXZ = 0.1f * CVarGetFloat(CVAR_ENHANCEMENT("MweepSpeed"), 1.0f);
this->actionFunc = EnKz_Mweep;
}
@@ -462,7 +468,9 @@ void EnKz_Mweep(EnKz* this, PlayState* play) {
pos.y += 60.0f;
initPos.y += -100.0f;
initPos.z += 260.0f;
- Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
+ if (GameInteractor_Should(VB_PLAY_MWEEP_CS, true)) {
+ Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
+ }
if ((EnKz_FollowPath(this, play) == 1) && (this->waypoint == 0)) {
Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_1);
Inventory_ReplaceItem(play, ITEM_LETTER_RUTO, ITEM_BOTTLE);
@@ -477,9 +485,11 @@ void EnKz_Mweep(EnKz* this, PlayState* play) {
}
void EnKz_StopMweep(EnKz* this, PlayState* play) {
- Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_ACTIVE);
- Play_ClearCamera(play, this->cutsceneCamera);
- Player_SetCsActionWithHaltedActors(play, &this->actor, 7);
+ if (GameInteractor_Should(VB_PLAY_MWEEP_CS, true)) {
+ Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_ACTIVE);
+ Play_ClearCamera(play, this->cutsceneCamera);
+ Player_SetCsActionWithHaltedActors(play, &this->actor, 7);
+ }
this->actionFunc = EnKz_Wait;
}