diff options
author | Pedro Gimeno <pgimeno@users.noreply.notabug.org> | 2019-04-04 18:53:55 +0200 |
---|---|---|
committer | Paramat <paramat@users.noreply.github.com> | 2019-04-14 22:21:51 +0100 |
commit | 12a63021d01abd7395be3614767648d0b39f42a3 (patch) | |
tree | cadd476c22038b0b9b76bc914b9488a1c7f61b95 /src/client | |
parent | 007ce24a111372ddd0d4d5a9fbe862cea430fa4b (diff) | |
download | minetest-12a63021d01abd7395be3614767648d0b39f42a3.tar.gz minetest-12a63021d01abd7395be3614767648d0b39f42a3.tar.bz2 minetest-12a63021d01abd7395be3614767648d0b39f42a3.zip |
Fix regression in automatic_face_movement_max_rotation_per_sec
Values <= 0 should make the yaw change instant. This worked in 0.4.16 but was broken in 089f59458286.
Per bug report by oil_boi_minetest on IRC.
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/content_cao.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 8643b5824..22f62e6c3 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1000,10 +1000,16 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) float target_yaw = atan2(m_velocity.Z, m_velocity.X) * 180 / M_PI + m_prop.automatic_face_movement_dir_offset; - float max_rotation_delta = - dtime * m_prop.automatic_face_movement_max_rotation_per_sec; + float max_rotation_per_sec = + m_prop.automatic_face_movement_max_rotation_per_sec; + if (max_rotation_per_sec > 0) { + float max_rotation_delta = dtime * max_rotation_per_sec; + + wrappedApproachShortest(m_rotation.Y, target_yaw, max_rotation_delta, 360.f); + } else + // Negative values of ...max_rotation_per_sec mean disabled. + m_rotation.Y = target_yaw; - wrappedApproachShortest(m_rotation.Y, target_yaw, max_rotation_delta, 360.f); rot_translator.val_current = m_rotation; updateNodePos(); |