diff --git a/common/src/sys/movement.rs b/common/src/sys/movement.rs index 2966397071..4637a8b746 100644 --- a/common/src/sys/movement.rs +++ b/common/src/sys/movement.rs @@ -111,8 +111,13 @@ impl<'a> System<'a> for Sys { }; // Set direction based on move direction when on the ground - if Vec2::::from(move_dir.0).magnitude_squared() > 0.0001 { - ori.0 = Lerp::lerp(ori.0, Vec3::from(move_dir.0.normalized()), 4.0 * dt.0); + let ori_dir = if a.gliding || a.rolling { + Vec2::from(vel.0) + } else { + move_dir.0 + }; + if ori_dir.magnitude_squared() > 0.0001 { + ori.0 = Lerp::lerp(ori.0, Vec3::from(ori_dir.normalized()), 4.0 * dt.0); } }