From 9e0faace9a5114fc2324c2c601ba943272e0d6ff Mon Sep 17 00:00:00 2001 From: Jeremy Date: Fri, 16 Feb 2018 20:59:19 +0100 Subject: Core/Entities: Reduce the probability of units dropping under the map (#21322) Reduce the probabilty of going under the map --- src/common/Collision/DynamicTree.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/common/Collision/DynamicTree.cpp') diff --git a/src/common/Collision/DynamicTree.cpp b/src/common/Collision/DynamicTree.cpp index 96378ef9c0d..a69d54c7f9a 100644 --- a/src/common/Collision/DynamicTree.cpp +++ b/src/common/Collision/DynamicTree.cpp @@ -254,3 +254,16 @@ float DynamicMapTree::getHeight(float x, float y, float z, float maxSearchDist, else return -G3D::finf(); } + +float DynamicMapTree::getCeil(float x, float y, float z, float maxSearchDist, uint32 phasemask) const +{ + G3D::Vector3 v(x, y, z); + G3D::Ray r(v, G3D::Vector3(0, 0, 1)); + DynamicTreeIntersectionCallback callback(phasemask); + impl->intersectZAllignedRay(r, callback, maxSearchDist); + + if (callback.didHit()) + return v.z + maxSearchDist; + + return G3D::finf(); +} -- cgit v1.2.3