mirror of
https://github.com/minetest/minetest.git
synced 2024-11-23 08:03:45 +01:00
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.
This commit is contained in:
parent
007ce24a11
commit
12a63021d0
@ -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();
|
||||
|
@ -457,11 +457,16 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
|
||||
|
||||
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;
|
||||
|
||||
m_rotation.Y = wrapDegrees_0_360(m_rotation.Y);
|
||||
wrappedApproachShortest(m_rotation.Y, target_yaw, max_rotation_delta, 360.f);
|
||||
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;
|
||||
m_rotation.Y = wrapDegrees_0_360(m_rotation.Y);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user