diff --git a/src/logic/PlayerController.cpp b/src/logic/PlayerController.cpp index 1d5875ef..df471c36 100644 --- a/src/logic/PlayerController.cpp +++ b/src/logic/PlayerController.cpp @@ -125,18 +125,21 @@ glm::vec3 CameraControl::updateCameraShaking( return offset; } -void CameraControl::updateFovEffects( - const Hitbox& hitbox, PlayerInput input, float delta +void CameraControl::updateFov( + const Hitbox& hitbox, PlayerInput input, float delta, bool effects ) { bool crouch = input.shift && hitbox.grounded && !input.sprint; float dt = fmin(1.0f, delta * ZOOM_SPEED); float zoomValue = 1.0f; - if (crouch) { - offset += glm::vec3(0.f, CROUCH_SHIFT_Y, 0.f); - zoomValue = CROUCH_ZOOM; - } else if (input.sprint && (input.moveForward || input.moveBack || input.moveLeft || input.moveRight)) { - zoomValue = RUN_ZOOM; + if (effects) { + if (crouch) { + offset += glm::vec3(0.f, CROUCH_SHIFT_Y, 0.f); + zoomValue = CROUCH_ZOOM; + } else if (input.sprint && (input.moveForward || input.moveBack || + input.moveLeft || input.moveRight)) { + zoomValue = RUN_ZOOM; + } } if (input.zoom) zoomValue *= C_ZOOM; camera->zoom = zoomValue * dt + camera->zoom * (1.0f - dt); @@ -176,9 +179,7 @@ void CameraControl::update( if (!input.cheat) { offset += updateCameraShaking(*hitbox, delta); } - if (settings.fovEffects.get()) { - updateFovEffects(*hitbox, input, delta); - } + updateFov(*hitbox, input, delta, settings.fovEffects.get()); } if (input.cameraMode) { switchCamera(); diff --git a/src/logic/PlayerController.hpp b/src/logic/PlayerController.hpp index 53d14311..cd49642c 100644 --- a/src/logic/PlayerController.hpp +++ b/src/logic/PlayerController.hpp @@ -32,10 +32,13 @@ class CameraControl { /// @return camera offset glm::vec3 updateCameraShaking(const Hitbox& hitbox, float delta); - /// @brief Update field-of-view effects + /// @brief Update field-of-view /// @param input player inputs /// @param delta delta time - void updateFovEffects(const Hitbox& hitbox, PlayerInput input, float delta); + /// @param effects movement-related effects + void updateFov( + const Hitbox& hitbox, PlayerInput input, float delta, bool effects + ); /// @brief Switch active player camera void switchCamera();