diff options
author | Malcrom <malcromdev@gmail.com> | 2012-02-12 08:11:22 -0330 |
---|---|---|
committer | Malcrom <malcromdev@gmail.com> | 2012-02-12 08:11:22 -0330 |
commit | 6ed5dcbc5af97da04454cc8e74a747454999cd80 (patch) | |
tree | f0e00ce1995aafff7672b9a73db9174955195306 /src/server/game/Maps/Map.cpp | |
parent | d5192bafa0cc3c92dfac08959921f73a2dc82f6b (diff) | |
parent | d3a510957ec14f7f88951a73453f93a9b1e1a90e (diff) |
Merge branch 'master' of git://github.com/TrinityCore/TrinityCore
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rwxr-xr-x | src/server/game/Maps/Map.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 6e13e70d1cd..b8c35d45e98 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -500,7 +500,7 @@ void Map::VisitNearbyCellsOf(WorldObject* obj, TypeContainerVisitor<Trinity::Obj void Map::Update(const uint32 t_diff) { - m_dyn_tree.update(t_diff); + _dynamicTree.update(t_diff); /// update worldsessions for existing players for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter) { @@ -1800,12 +1800,26 @@ void Map::GetZoneAndAreaIdByAreaFlag(uint32& zoneid, uint32& areaid, uint16 area bool Map::isInLineOfSight(float x1, float y1, float z1, float x2, float y2, float z2, uint32 phasemask) const { return VMAP::VMapFactory::createOrGetVMapManager()->isInLineOfSight(GetId(), x1, y1, z1, x2, y2, z2) - && m_dyn_tree.isInLineOfSight(x1, y1, z1, x2, y2, z2, phasemask); + && _dynamicTree.isInLineOfSight(x1, y1, z1, x2, y2, z2, phasemask); +} + +bool Map::getObjectHitPos(uint32 phasemask, float x1, float y1, float z1, float x2, float y2, float z2, float& rx, float& ry, float& rz, float modifyDist) +{ + Vector3 startPos = Vector3(x1, y1, z1); + Vector3 dstPos = Vector3(x2, y2, z2); + + Vector3 resultPos; + bool result = _dynamicTree.getObjectHitPos(phasemask, startPos, dstPos, resultPos, modifyDist); + + rx = resultPos.x; + ry = resultPos.y; + rz = resultPos.z; + return result; } float Map::GetHeight(uint32 phasemask, float x, float y, float z, bool vmap/*=true*/, float maxSearchDist/*=DEFAULT_HEIGHT_SEARCH*/) const { - return std::max<float>(GetHeight(x, y, z, vmap, maxSearchDist), m_dyn_tree.getHeight(x, y, z, maxSearchDist, phasemask)); + return std::max<float>(GetHeight(x, y, z, vmap, maxSearchDist), _dynamicTree.getHeight(x, y, z, maxSearchDist, phasemask)); } bool Map::IsInWater(float x, float y, float pZ, LiquidData* data) const |