Avert collision static detection rounding error (#12822)

This commit is contained in:
Jude Melton-Houghton 2022-09-30 06:31:24 -04:00 committed by GitHub
parent 6eb7d57ed3
commit e832cee1e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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