Fix collision code getting stuck if speed is 0

master
Perttu Ahola 2012-04-07 19:19:36 +03:00
parent 7281c68b27
commit e879c92596
1 changed files with 8 additions and 0 deletions

View File

@ -29,6 +29,10 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
{ {
collisionMoveResult result; collisionMoveResult result;
// If there is no speed, there are no collisions
if(speed_f.getLength() == 0)
return result;
v3f oldpos_f = pos_f; v3f oldpos_f = pos_f;
v3s16 oldpos_i = floatToInt(oldpos_f, BS); 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) f32 dtime, v3f &pos_f, v3f &speed_f)
{ {
collisionMoveResult final_result; 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) // Maximum time increment (for collision detection etc)
// time = distance / speed // time = distance / speed