AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
MapCollisionData Class Reference

#include "MapCollisionData.h"

Public Member Functions

 MapCollisionData (Map const &map, Map const *parentMap)
 
 ~MapCollisionData ()=default
 
int LoadVMapTile (uint32 tileX, uint32 tileY)
 
int LoadMMapTile (uint32 tileX, uint32 tileY)
 
DynamicVMapCollisionDataGetDynamicTree ()
 
DynamicVMapCollisionData const & GetDynamicTree () const
 
StaticVMapCollisionDataGetStaticTree ()
 
StaticVMapCollisionData const & GetStaticTree () const
 
MMapDataGetMMapData ()
 
MMapData const & GetMMapData () const
 
std::shared_ptr< VMAP::StaticMapTree > const GetStaticTreeSharedPtr () const
 
std::shared_ptr< dtNavMesh > const GetMMapNavMeshSharedPtr () const
 

Private Attributes

Map const & _map
 
DynamicVMapCollisionData _dynamicVMapData
 
StaticVMapCollisionData _staticVMapData
 
MMapData _mmapData
 

Detailed Description

Constructor & Destructor Documentation

◆ MapCollisionData()

MapCollisionData::MapCollisionData ( Map const &  map,
Map const *  parentMap 
)
31 :
32 _map(map), _staticVMapData(map.GetId())
33{
34 if (parentMap)
35 {
36 // If we have a parent map, point our static tree and mmap nav mesh to the parent maps
37 _staticVMapData._staticTree = parentMap->GetMapCollisionData().GetStaticTreeSharedPtr();
38 _mmapData._navMesh = parentMap->GetMapCollisionData().GetMMapNavMeshSharedPtr();
39 }
40 else
41 {
42 // If we are a base map create a new static tree and mmap nav mesh
43 std::string const mapFileName = VMAP::VMapMgr2::getMapFileName(map.GetId());
44 std::shared_ptr<VMAP::StaticMapTree> newTree = std::make_shared<VMAP::StaticMapTree>(map.GetId(), (sWorld->GetDataPath() + "vmaps"));
45 if (newTree->InitMap(mapFileName))
47
49 }
50}
static std::shared_ptr< dtNavMesh > LoadNavMesh(uint32 mapId)
Definition MMapMgr.cpp:27
std::shared_ptr< dtNavMesh > _navMesh
Definition MapCollisionData.h:67
MMapData _mmapData
Definition MapCollisionData.h:97
StaticVMapCollisionData _staticVMapData
Definition MapCollisionData.h:96
Map const & _map
Definition MapCollisionData.h:93
std::shared_ptr< VMAP::StaticMapTree > _staticTree
Definition MapCollisionData.h:47
static std::string getMapFileName(unsigned int mapId)
Definition VMapMgr2.cpp:53
#define sWorld
Definition World.h:316

References _mmapData, MMapData::_navMesh, StaticVMapCollisionData::_staticTree, _staticVMapData, Map::GetId(), Map::GetMapCollisionData(), VMAP::VMapMgr2::getMapFileName(), GetMMapNavMeshSharedPtr(), GetStaticTreeSharedPtr(), MMAP::MMapMgr::LoadNavMesh(), and sWorld.

◆ ~MapCollisionData()

MapCollisionData::~MapCollisionData ( )
default

Member Function Documentation

◆ GetDynamicTree() [1/2]

◆ GetDynamicTree() [2/2]

DynamicVMapCollisionData const & MapCollisionData::GetDynamicTree ( ) const
inline
83{ return _dynamicVMapData; }

References _dynamicVMapData.

◆ GetMMapData() [1/2]

◆ GetMMapData() [2/2]

MMapData const & MapCollisionData::GetMMapData ( ) const
inline
87{ return _mmapData; }

References _mmapData.

◆ GetMMapNavMeshSharedPtr()

std::shared_ptr< dtNavMesh > const MapCollisionData::GetMMapNavMeshSharedPtr ( ) const
inline
90{ return _mmapData._navMesh; }

References _mmapData, and MMapData::_navMesh.

Referenced by MapCollisionData().

◆ GetStaticTree() [1/2]

◆ GetStaticTree() [2/2]

StaticVMapCollisionData const & MapCollisionData::GetStaticTree ( ) const
inline
85{ return _staticVMapData; }

References _staticVMapData.

◆ GetStaticTreeSharedPtr()

std::shared_ptr< VMAP::StaticMapTree > const MapCollisionData::GetStaticTreeSharedPtr ( ) const
inline

◆ LoadMMapTile()

int MapCollisionData::LoadMMapTile ( uint32  tileX,
uint32  tileY 
)
64{
67
68 return MMAP::MMapMgr::LoadTile(_mmapData._navMesh.get(), _map.GetId(), tileX, tileY);
69}
static bool IsPathfindingEnabled(Map const *map)
Definition DisableMgr.cpp:445
static bool LoadTile(dtNavMesh *navMesh, uint32 mapId, int32 x, int32 y)
Definition MMapMgr.cpp:68
uint32 GetId() const
Definition Map.h:230
@ MMAP_LOAD_RESULT_IGNORED
Definition MMapMgr.h:45

References _map, _mmapData, MMapData::_navMesh, Map::GetId(), DisableMgr::IsPathfindingEnabled(), MMAP::MMapMgr::LoadTile(), and MMAP::MMAP_LOAD_RESULT_IGNORED.

Referenced by GridTerrainLoader::LoadMMap().

◆ LoadVMapTile()

int MapCollisionData::LoadVMapTile ( uint32  tileX,
uint32  tileY 
)
53{
56
57 if (!_staticVMapData._staticTree->LoadMapTile(tileX, tileY))
59
61}
static VMapMgr2 * createOrGetVMapMgr()
Definition VMapFactory.cpp:27
@ VMAP_LOAD_RESULT_ERROR
Definition IVMapMgr.h:38
@ VMAP_LOAD_RESULT_OK
Definition IVMapMgr.h:39
@ VMAP_LOAD_RESULT_IGNORED
Definition IVMapMgr.h:40

References StaticVMapCollisionData::_staticTree, _staticVMapData, VMAP::VMapFactory::createOrGetVMapMgr(), VMAP::VMAP_LOAD_RESULT_ERROR, VMAP::VMAP_LOAD_RESULT_IGNORED, and VMAP::VMAP_LOAD_RESULT_OK.

Referenced by GridTerrainLoader::LoadVMap().

Member Data Documentation

◆ _dynamicVMapData

DynamicVMapCollisionData MapCollisionData::_dynamicVMapData
private

Referenced by GetDynamicTree(), and GetDynamicTree().

◆ _map

Map const& MapCollisionData::_map
private

Referenced by LoadMMapTile().

◆ _mmapData

MMapData MapCollisionData::_mmapData
private

◆ _staticVMapData


The documentation for this class was generated from the following files: