aboutsummaryrefslogtreecommitdiff
path: root/src/common/Collision/DynamicTree.cpp
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-06-08 00:25:06 +0200
committerCarbenium <carbenium@outlook.com>2020-07-16 22:00:24 +0200
commit51ce3b1c1dc6a53938ed6f240bac00681d18a44f (patch)
treecd6415f3c7a1dc12cc003a707b16fb0e1cd468eb /src/common/Collision/DynamicTree.cpp
parentf7a7d02a7f50400cdc2be3c4722afeefe7efce80 (diff)
[3.3.5] Get zone/area IDs from vmap data in the liquid update (#19840)
* Add new method Map::getFullVMapDataForPosition to get area info and liquid info in a single vmap lookup * Use this lookup in Map:: relocation methods to update m_areaId and m_zoneId fields on WorldObject * Adjust GetZoneId/GetAreaId on WorldObject to always return these cached fields * Clean up liquid state handling on Unit and Player * Hand floor's Z coord up through GetFullTerrainStatusForPosition, use it to update a new field in WorldObject, and use that to feed a new GetFloorZ call on WorldObject. Closes #16489 (cherry picked from commit f6c849729b27b77228704b595de3adaf24da2c10)
Diffstat (limited to 'src/common/Collision/DynamicTree.cpp')
-rw-r--r--src/common/Collision/DynamicTree.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/common/Collision/DynamicTree.cpp b/src/common/Collision/DynamicTree.cpp
index ae215e0db4f..b1f03aace13 100644
--- a/src/common/Collision/DynamicTree.cpp
+++ b/src/common/Collision/DynamicTree.cpp
@@ -283,13 +283,13 @@ bool DynamicMapTree::getAreaInfo(float x, float y, float& z, PhaseShift const& p
return false;
}
-void DynamicMapTree::getAreaAndLiquidData(float x, float y, float z, PhaseShift const& phaseShift, uint8 /*reqLiquidType*/, VMAP::AreaAndLiquidData& /*data*/) const
+void DynamicMapTree::getAreaAndLiquidData(float x, float y, float z, PhaseShift const& phaseShift, uint8 reqLiquidType, VMAP::AreaAndLiquidData& data) const
{
G3D::Vector3 v(x, y, z + 0.5f);
DynamicTreeLocationInfoCallback intersectionCallBack(phaseShift);
impl->intersectPoint(v, intersectionCallBack);
if (intersectionCallBack.GetLocationInfo().hitModel)
- {/* For future use (needs cherry-pick f6c849729b27b77228704b595de3adaf24da2c10)
+ {
data.floorZ = intersectionCallBack.GetLocationInfo().ground_Z;
uint32 liquidType = intersectionCallBack.GetLocationInfo().hitModel->GetLiquidType();
float liquidLevel;
@@ -301,5 +301,5 @@ void DynamicMapTree::getAreaAndLiquidData(float x, float y, float z, PhaseShift
intersectionCallBack.GetLocationInfo().rootId,
intersectionCallBack.GetLocationInfo().hitModel->GetWmoID(),
intersectionCallBack.GetLocationInfo().hitModel->GetMogpFlags());
- */}
+ }
}