From d7f5fb9e691439db6548415ad03e2975517085ea Mon Sep 17 00:00:00 2001 From: hiker Date: Sat, 21 Oct 2017 00:58:25 +1100 Subject: [PATCH] Avoid flicker when a kart with backpedal animation is stopping and left/right is pressed (see #2939). --- src/karts/kart.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/karts/kart.cpp b/src/karts/kart.cpp index b1659e7f0..4b7a21f13 100644 --- a/src/karts/kart.cpp +++ b/src/karts/kart.cpp @@ -1616,7 +1616,11 @@ void Kart::updateSpeed() chassisTrans.getBasis()[1][2], chassisTrans.getBasis()[2][2]); - if (forwardW.dot(getVehicle()->getRigidBody()->getLinearVelocity()) < btScalar(0.)) + // In theory <0 should be sufficient, but floating point errors can cause + // flipping from +eps to -eps and back, resulting in animation flickering + // if the kart has backpedal animations. + if (forwardW.dot(getVehicle()->getRigidBody()->getLinearVelocity()) + < btScalar(-0.01f)) { m_speed = -m_speed; }