From 48cd217e3b6f53af32802c1897ddd1914d215078 Mon Sep 17 00:00:00 2001 From: kilbith Date: Tue, 27 Jun 2017 11:26:13 +0200 Subject: [PATCH] Fix arm inertia limit case --- src/camera.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/camera.cpp b/src/camera.cpp index 855bca3a..2de76da1 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -197,13 +197,17 @@ void Camera::step(f32 dtime) void Camera::addArmInertia(f32 player_yaw, f32 frametime) { - if (m_timer.X == 0.0f) - m_cam_vel.X = std::fabs((m_last_cam_pos.X - player_yaw)) * 0.01f; + if (m_timer.X == 0.0f) { + // In the limit case where timer is 0 set a static velocity (generic case divide by zero) + m_cam_vel.X = 1.0001f; + } else m_cam_vel.X = std::fabs((m_last_cam_pos.X - player_yaw) / m_timer.X) * 0.01f; - if (m_timer.Y == 0.0f) - m_cam_vel.Y = std::fabs(m_last_cam_pos.Y - m_camera_direction.Y); + if (m_timer.Y == 0.0f) { + // In the limit case where timer is 0 set a static velocity (generic case divide by zero) + m_cam_vel.Y = 1.0001f; + } else m_cam_vel.Y = std::fabs((m_last_cam_pos.Y - m_camera_direction.Y) / m_timer.Y);