diff options
author | Jude Melton-Houghton <jwmhjwmh@gmail.com> | 2022-09-30 06:31:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-30 06:31:24 -0400 |
commit | e832cee1e60c3e615d38711a87737691245df35d (patch) | |
tree | 8cd24137c7f2b6d137ead252c68853b52155a996 /src/collision.cpp | |
parent | 6eb7d57ed335d43a893992ff7cc388075f37ad5f (diff) | |
download | minetest-e832cee1e60c3e615d38711a87737691245df35d.tar.xz |
Avert collision static detection rounding error (#12822)
Diffstat (limited to 'src/collision.cpp')
-rw-r--r-- | src/collision.cpp | 5 |
1 files 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 |