Core/Entities: use PhaseShift when processing terrain updates

This commit is contained in:
Ovahlord committed 2018-03-12 11:08:05 +01:00
1 parent 3857b76431
commit 78793ac452
3 files changed
+6 -5

No files matched your search

+4 -3
View File
@@ -2579,16 +2579,17 @@ ZLiquidStatus Map::GetLiquidStatus(PhaseShift const& phaseShift, float x, float
return result;
}
void Map::GetFullTerrainStatusForPosition(float x, float y, float z, PositionFullTerrainStatus& data, uint8 reqLiquidType) const
void Map::GetFullTerrainStatusForPosition(PhaseShift const& phaseShift, float x, float y, float z, PositionFullTerrainStatus& data, uint8 reqLiquidType) const
{
VMAP::IVMapManager* vmgr = VMAP::VMapFactory::createOrGetVMapManager();
VMAP::AreaAndLiquidData vmapData;
vmgr->getAreaAndLiquidData(GetId(), x, y, z, reqLiquidType, vmapData);
uint32 terrainMapId = PhasingHandler::GetTerrainMapId(phaseShift, this, x, y);
vmgr->getAreaAndLiquidData(terrainMapId, x, y, z, reqLiquidType, vmapData);
if (vmapData.areaInfo)
data.areaInfo = boost::in_place(vmapData.areaInfo->adtId, vmapData.areaInfo->rootId, vmapData.areaInfo->groupId, vmapData.areaInfo->mogpFlags);
float mapHeight = VMAP_INVALID_HEIGHT;
GridMap* gmap = const_cast<Map*>(this)->GetGrid(x, y);
GridMap* gmap = const_cast<Map*>(this)->GetGrid(terrainMapId, x, y);
if (gmap)
mapHeight = gmap->getHeight(x, y);