From e832cee1e60c3e615d38711a87737691245df35d Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Fri, 30 Sep 2022 06:31:24 -0400 Subject: [PATCH] Avert collision static detection rounding error (#12822) --- src/collision.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/collision.cpp b/src/collision.cpp index 1ef094d29..e363673fe 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -250,11 +250,12 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, time_notification_done = false; } - v3f newpos_f = *pos_f + (*speed_f + accel_f * 0.5f * dtime) * dtime; + v3f dpos_f = (*speed_f + accel_f * 0.5f * dtime) * dtime; + v3f newpos_f = *pos_f + dpos_f; *speed_f += accel_f * dtime; // If the object is static, there are no collisions - if (newpos_f == *pos_f) + if (dpos_f == v3f()) return result; // Limit speed for avoiding hangs