From fd8bd31507cad1744fa1d6a042c4aa3f26d99b9e Mon Sep 17 00:00:00 2001 From: Archez Date: Wed, 18 Dec 2024 17:54:55 -0500 Subject: [PATCH] Fix camera mode not following boomerang with first person rang (#4716) --- .../overlays/actors/ovl_player_actor/z_player.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 02f422ca0..d51e33e8b 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -11496,13 +11496,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { camMode = CAM_MODE_TALK; } else if (this->stateFlags1 & PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS) { if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { - // #region SOH [Enhancement] - if (CVarGetInteger(CVAR_ENHANCEMENT("BoomerangFirstPerson"), 0)) { - camMode = CAM_MODE_TARGET; - // #endregion - } else { - camMode = CAM_MODE_FOLLOWBOOMERANG; - } + camMode = CAM_MODE_FOLLOWBOOMERANG; } else { camMode = CAM_MODE_FOLLOWTARGET; } @@ -11515,7 +11509,13 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) { // #region SOH [Enhancement] if (CVarGetInteger(CVAR_ENHANCEMENT("BoomerangFirstPerson"), 0)) { - camMode = CAM_MODE_TARGET; + // Avoid camera jumps by switching to normal cam to exit the first person camera, + // before following the boomerang + if (Play_GetCamera(play, 0)->mode == CAM_MODE_FIRSTPERSON) { + camMode = CAM_MODE_NORMAL; + } else { + camMode = CAM_MODE_FOLLOWBOOMERANG; + } // #endregion } else { camMode = CAM_MODE_FOLLOWBOOMERANG;