From c6dd67ca37f5673d2f88de2183a3b2b9b7723eb0 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..1d899f07 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==0{ + TransientAcceleration::Unreachable{ + acceleration:vec3::ZERO + } }else{ //normal friction acceleration is clippedAcceleration.dot(normal)*friction TransientAcceleration::Reachable{