From 5b8855e83c0d1cc7aef21492e7fe862b7d06917e Mon Sep 17 00:00:00 2001 From: Craig Robbins Date: Fri, 14 Nov 2014 18:05:34 +1000 Subject: Remove most exceptions from getNode() (and variants) --- src/collision.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/collision.cpp') diff --git a/src/collision.cpp b/src/collision.cpp index edbee40b9..9e0c85531 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -251,9 +251,13 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, for(s16 z = min_z; z <= max_z; z++) { v3s16 p(x,y,z); - try{ + + bool is_position_valid; + MapNode n = map->getNodeNoEx(p, &is_position_valid); + + if (is_position_valid) { // Object collides into walkable nodes - MapNode n = map->getNode(p); + const ContentFeatures &f = gamedef->getNodeDefManager()->get(n); if(f.walkable == false) continue; @@ -275,8 +279,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, is_object.push_back(false); } } - catch(InvalidPositionException &e) - { + else { // Collide with unloaded nodes aabb3f box = getNodeBox(p, BS); cboxes.push_back(box); -- cgit v1.2.3