From 64f3081ee2d12f4bca33725edd5318a9a0975519 Mon Sep 17 00:00:00 2001 From: 9382 Date: Tue, 18 Nov 2025 19:01:24 +0000 Subject: [PATCH] Gracefully handle 0 acceleration for walking targets --- engine/physics/src/physics.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/physics/src/physics.rs b/engine/physics/src/physics.rs index 1c28e341..edb3cf1b 100644 --- a/engine/physics/src/physics.rs +++ b/engine/physics/src/physics.rs @@ -100,7 +100,6 @@ enum TransientAcceleration{ time:Time, }, //walk target will never be reached - #[expect(dead_code)] Unreachable{ acceleration:Planar64Vec3, } @@ -116,6 +115,10 @@ impl TransientAcceleration{ fn with_target_diff(target_diff:Planar64Vec3,accel:Planar64,time:Time)->Self{ if target_diff==vec3::ZERO{ TransientAcceleration::Reached + }else if accel==Planar64::ZERO{ + TransientAcceleration::Unreachable{ + acceleration:vec3::ZERO + } }else{ //normal friction acceleration is clippedAcceleration.dot(normal)*friction TransientAcceleration::Reachable{ -- 2.49.1