summaryrefslogtreecommitdiff
path: root/src/collision.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-27 04:31:05 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:54 +0200
commit82a460ec90b4537926f31603219504bce8817ac2 (patch)
tree91bfae1ab35367a3617e19023842d9218255b1eb /src/collision.cpp
parentb4e6ca63b54407bf67e5656692016c4f2927358d (diff)
downloadminetest-82a460ec90b4537926f31603219504bce8817ac2.tar.gz
minetest-82a460ec90b4537926f31603219504bce8817ac2.tar.bz2
minetest-82a460ec90b4537926f31603219504bce8817ac2.zip
Improve luaentity sprite functionality (and add some random stuff)
Diffstat (limited to 'src/collision.cpp')
-rw-r--r--src/collision.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/collision.cpp b/src/collision.cpp
index 24f1e9d18..3460b04fd 100644
--- a/src/collision.cpp
+++ b/src/collision.cpp
@@ -72,11 +72,16 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
/*
Go through every node around the object
- TODO: Calculate the range of nodes that need to be checked
*/
- for(s16 y = oldpos_i.Y - 1; y <= oldpos_i.Y + 2; y++)
- for(s16 z = oldpos_i.Z - 1; z <= oldpos_i.Z + 1; z++)
- for(s16 x = oldpos_i.X - 1; x <= oldpos_i.X + 1; x++)
+ s16 min_x = (box_0.MinEdge.X / BS) - 2;
+ s16 min_y = (box_0.MinEdge.Y / BS) - 2;
+ s16 min_z = (box_0.MinEdge.Z / BS) - 2;
+ s16 max_x = (box_0.MaxEdge.X / BS) + 1;
+ s16 max_y = (box_0.MaxEdge.Y / BS) + 1;
+ s16 max_z = (box_0.MaxEdge.Z / BS) + 1;
+ for(s16 y = oldpos_i.Y + min_y; y <= oldpos_i.Y + max_y; y++)
+ for(s16 z = oldpos_i.Z + min_z; z <= oldpos_i.Z + max_z; z++)
+ for(s16 x = oldpos_i.X + min_x; x <= oldpos_i.X + max_x; x++)
{
try{
// Object collides into walkable nodes