diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-04-07 19:19:36 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-04-07 19:19:36 +0300 |
commit | e879c92596f86e8f1ad040e85b2b3eb3c19aab90 (patch) | |
tree | 42407946b886ed0aa40d6fc1789d43c9962b3ff3 | |
parent | 7281c68b271092feeac6f3d56946dbb01d1179e5 (diff) | |
download | minetest-e879c92596f86e8f1ad040e85b2b3eb3c19aab90.tar.gz minetest-e879c92596f86e8f1ad040e85b2b3eb3c19aab90.tar.bz2 minetest-e879c92596f86e8f1ad040e85b2b3eb3c19aab90.zip |
Fix collision code getting stuck if speed is 0
-rw-r--r-- | src/collision.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/collision.cpp b/src/collision.cpp index 3460b04fd..ff0c083fd 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -29,6 +29,10 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef, { collisionMoveResult result; + // If there is no speed, there are no collisions + if(speed_f.getLength() == 0) + return result; + v3f oldpos_f = pos_f; v3s16 oldpos_i = floatToInt(oldpos_f, BS); @@ -196,6 +200,10 @@ collisionMoveResult collisionMovePrecise(Map *map, IGameDef *gamedef, f32 dtime, v3f &pos_f, v3f &speed_f) { collisionMoveResult final_result; + + // If there is no speed, there are no collisions + if(speed_f.getLength() == 0) + return final_result; // Maximum time increment (for collision detection etc) // time = distance / speed |