aboutsummaryrefslogtreecommitdiff
path: root/src/server/collision/Maps/MapTree.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-06-15 17:08:04 +0200
committerShauren <none@none>2010-06-15 17:08:04 +0200
commitebb07858170c7552439ce0afd9395d93b79e2eb8 (patch)
tree752c44cf277578cb15eada4b0a7346e6004aecf7 /src/server/collision/Maps/MapTree.cpp
parent2a544c94b39238a353b8ec896936c7a6f00b53f8 (diff)
Commit from Lynx3d: Add assert to values that can cause nasty freeze, but should never occur with
valid input. --HG-- branch : trunk
Diffstat (limited to 'src/server/collision/Maps/MapTree.cpp')
-rw-r--r--src/server/collision/Maps/MapTree.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp
index 8c77ee109f3..af4073fcc8c 100644
--- a/src/server/collision/Maps/MapTree.cpp
+++ b/src/server/collision/Maps/MapTree.cpp
@@ -16,6 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "Errors.h"
#include "MapTree.h"
#include "ModelInstance.h"
#include "VMapManager2.h"
@@ -24,6 +25,7 @@
#include <string>
#include <sstream>
#include <iomanip>
+#include <limits>
using G3D::Vector3;
@@ -146,6 +148,8 @@ namespace VMAP
{
bool result = true;
float maxDist = (pos2 - pos1).magnitude();
+ // valid map coords should *never ever* produce float overflow, but this would produce NaNs too
+ ASSERT(maxDist < std::numeric_limits<float>::max());
// prevent NaN values which can cause BIH intersection to enter infinite loop
if (maxDist < 1e-10f)
return true;
@@ -168,6 +172,8 @@ namespace VMAP
{
bool result=false;
float maxDist = (pPos2 - pPos1).magnitude();
+ // valid map coords should *never ever* produce float overflow, but this would produce NaNs too
+ ASSERT(maxDist < std::numeric_limits<float>::max());
// prevent NaN values which can cause BIH intersection to enter infinite loop
if (maxDist < 1e-10f)
{