TrinityCore
Loading...
Searching...
No Matches
MapManager Class Reference

#include <MapManager.h>

Public Member Functions

 MapManager (MapManager const &)=delete
 
 MapManager (MapManager &&)=delete
 
MapManager & operator= (MapManager const &)=delete
 
MapManager & operator= (MapManager &&)=delete
 
Map * CreateMap (uint32 mapId, Player *player, Optional< uint32 > lfgDungeonsId={})
 
Map * FindMap (uint32 mapId, uint32 instanceId) const
 
uint32 FindInstanceIdForPlayer (uint32 mapId, Player const *player) const
 
void Initialize ()
 
void Update (uint32 diff)
 
void SetGridCleanUpDelay (uint32 t)
 
void SetMapUpdateInterval (uint32 t)
 
void UnloadAll ()
 
void InitializeVisibilityDistanceInfo ()
 
uint32 GetNumInstances () const
 
uint32 GetNumPlayersInInstances () const
 
void InitInstanceIds ()
 
uint32 GenerateInstanceId ()
 
void RegisterInstanceId (uint32 instanceId)
 
void FreeInstanceId (uint32 instanceId)
 
MapUpdater * GetMapUpdater ()
 
template<typename Worker >
void DoForAllMaps (Worker &&worker)
 
template<typename Worker >
void DoForAllMapsWithMapId (uint32 mapId, Worker &&worker)
 
void IncreaseScheduledScriptsCount ()
 
void DecreaseScheduledScriptCount ()
 
void DecreaseScheduledScriptCount (std::size_t count)
 
bool IsScriptScheduled () const
 
void AddSC_BuiltInScripts ()
 

Static Public Member Functions

static MapManager * instance ()
 
static bool IsValidMAP (uint32 mapId)
 
static bool IsValidMapCoord (uint32 mapid, float x, float y)
 
static bool IsValidMapCoord (uint32 mapid, float x, float y, float z)
 
static bool IsValidMapCoord (uint32 mapid, float x, float y, float z, float o)
 
static bool IsValidMapCoord (uint32 mapid, Position const &pos)
 
static bool IsValidMapCoord (WorldLocation const &loc)
 

Private Types

using MapKey = std::pair< uint32, uint32 >
 
typedef std::map< MapKey, Trinity::unique_trackable_ptr< Map > > MapMapType
 
typedef boost::dynamic_bitset< size_t > InstanceIds
 

Private Member Functions

 MapManager ()
 
 ~MapManager ()
 
Map * FindMap_i (uint32 mapId, uint32 instanceId) const
 
Map * CreateWorldMap (uint32 mapId, uint32 instanceId)
 
InstanceMap * CreateInstance (uint32 mapId, uint32 instanceId, InstanceLock *instanceLock, Difficulty difficulty, TeamId team, Group *group, Optional< uint32 > lfgDungeonsId)
 
BattlegroundMap * CreateBattleground (uint32 mapId, uint32 instanceId, Battleground *bg)
 
GarrisonMap * CreateGarrison (uint32 mapId, uint32 instanceId, Player *owner)
 
bool DestroyMap (Map *map)
 

Private Attributes

std::shared_mutex _mapsLock
 
uint32 i_gridCleanUpDelay
 
MapMapType i_maps
 
IntervalTimer i_timer
 
std::unique_ptr< InstanceIds > _freeInstanceIds
 
uint32 _nextInstanceId
 
MapUpdater m_updater
 
std::atomic< std::size_t > _scheduledScripts
 

Detailed Description

Definition at line 42 of file MapManager.h.

Member Typedef Documentation

◆ InstanceIds

typedef boost::dynamic_bitset<size_t> MapManager::InstanceIds
private

Definition at line 138 of file MapManager.h.

◆ MapKey

using MapManager::MapKey = std::pair<uint32, uint32>
private

Definition at line 136 of file MapManager.h.

◆ MapMapType

Definition at line 137 of file MapManager.h.

Constructor & Destructor Documentation

◆ MapManager() [1/3]

MapManager::MapManager ( )
private

◆ ~MapManager()

MapManager::~MapManager ( )
privatedefault

◆ MapManager() [2/3]

MapManager::MapManager ( MapManager const &  )
delete

◆ MapManager() [3/3]

MapManager::MapManager ( MapManager &&  )
delete

Member Function Documentation

◆ AddSC_BuiltInScripts()

void MapManager::AddSC_BuiltInScripts ( )

Definition at line 490 of file MapManager.cpp.

References sMapStore, and Trinity::StringFormat().

◆ CreateBattleground()

◆ CreateGarrison()

GarrisonMap * MapManager::CreateGarrison ( uint32  mapId,
uint32  instanceId,
Player *  owner 
)
private

◆ CreateInstance()

InstanceMap * MapManager::CreateInstance ( uint32  mapId,
uint32  instanceId,
InstanceLock *  instanceLock,
Difficulty  difficulty,
TeamId  team,
Group *  group,
Optional< uint32 >  lfgDungeonsId 
)
private

◆ CreateMap()

◆ CreateWorldMap()

Map * MapManager::CreateWorldMap ( uint32  mapId,
uint32  instanceId 
)
private

◆ DecreaseScheduledScriptCount() [1/2]

void MapManager::DecreaseScheduledScriptCount ( )
inline

Definition at line 129 of file MapManager.h.

◆ DecreaseScheduledScriptCount() [2/2]

void MapManager::DecreaseScheduledScriptCount ( std::size_t  count)
inline

Definition at line 130 of file MapManager.h.

◆ DestroyMap()

◆ DoForAllMaps()

template<typename Worker >
void MapManager::DoForAllMaps ( Worker &&  worker)

Definition at line 164 of file MapManager.h.

References _mapsLock, and i_maps.

◆ DoForAllMapsWithMapId()

template<typename Worker >
void MapManager::DoForAllMapsWithMapId ( uint32  mapId,
Worker &&  worker 
)

Definition at line 173 of file MapManager.h.

References _mapsLock, i_maps, and Trinity::Containers::MakeIteratorPair().

◆ FindInstanceIdForPlayer()

◆ FindMap()

Map * MapManager::FindMap ( uint32  mapId,
uint32  instanceId 
) const

Definition at line 272 of file MapManager.cpp.

References _mapsLock, and FindMap_i().

Referenced by FindInstanceIdForPlayer().

◆ FindMap_i()

Map * MapManager::FindMap_i ( uint32  mapId,
uint32  instanceId 
) const
private

Definition at line 72 of file MapManager.cpp.

References RefManager< ReferenceType >::end(), and i_maps.

Referenced by CreateMap(), and FindMap().

◆ FreeInstanceId()

void MapManager::FreeInstanceId ( uint32  instanceId)

Definition at line 468 of file MapManager.cpp.

References _freeInstanceIds, and _nextInstanceId.

◆ GenerateInstanceId()

uint32 MapManager::GenerateInstanceId ( )

Definition at line 442 of file MapManager.cpp.

References _freeInstanceIds, _nextInstanceId, ASSERT, ERROR_EXIT_CODE, World::StopNow(), and TC_LOG_ERROR.

Referenced by CreateMap().

◆ GetMapUpdater()

MapUpdater * MapManager::GetMapUpdater ( )
inline

Definition at line 120 of file MapManager.h.

◆ GetNumInstances()

uint32 MapManager::GetNumInstances ( ) const

Definition at line 402 of file MapManager.cpp.

References _mapsLock, and i_maps.

◆ GetNumPlayersInInstances()

uint32 MapManager::GetNumPlayersInInstances ( ) const

Definition at line 408 of file MapManager.cpp.

References _mapsLock, and i_maps.

◆ IncreaseScheduledScriptsCount()

void MapManager::IncreaseScheduledScriptsCount ( )
inline

Definition at line 128 of file MapManager.h.

◆ Initialize()

void MapManager::Initialize ( )

◆ InitializeVisibilityDistanceInfo()

void MapManager::InitializeVisibilityDistanceInfo ( )

Definition at line 60 of file MapManager.cpp.

References i_maps.

◆ InitInstanceIds()

void MapManager::InitInstanceIds ( )

Definition at line 414 of file MapManager.cpp.

References _freeInstanceIds, _nextInstanceId, and CharacterDatabase.

◆ instance()

MapManager * MapManager::instance ( )
static

Definition at line 66 of file MapManager.cpp.

References instance().

Referenced by instance().

◆ IsScriptScheduled()

bool MapManager::IsScriptScheduled ( ) const
inline

Definition at line 131 of file MapManager.h.

◆ IsValidMAP()

bool MapManager::IsValidMAP ( uint32  mapId)
static

Definition at line 376 of file MapManager.cpp.

References sMapStore.

Referenced by ObjectMgr::LoadInstanceTemplate().

◆ IsValidMapCoord() [1/5]

◆ IsValidMapCoord() [2/5]

static bool MapManager::IsValidMapCoord ( uint32  mapid,
float  x,
float  y,
float  z 
)
inlinestatic

Definition at line 88 of file MapManager.h.

References Trinity::IsValidMapCoord().

◆ IsValidMapCoord() [3/5]

static bool MapManager::IsValidMapCoord ( uint32  mapid,
float  x,
float  y,
float  z,
float  o 
)
inlinestatic

Definition at line 93 of file MapManager.h.

References Trinity::IsValidMapCoord().

◆ IsValidMapCoord() [4/5]

static bool MapManager::IsValidMapCoord ( uint32  mapid,
Position const &  pos 
)
inlinestatic

◆ IsValidMapCoord() [5/5]

static bool MapManager::IsValidMapCoord ( WorldLocation const &  loc)
inlinestatic

Definition at line 103 of file MapManager.h.

References WorldLocation::GetMapId().

◆ operator=() [1/2]

MapManager & MapManager::operator= ( MapManager &&  )
delete

◆ operator=() [2/2]

MapManager & MapManager::operator= ( MapManager const &  )
delete

◆ RegisterInstanceId()

void MapManager::RegisterInstanceId ( uint32  instanceId)

Definition at line 431 of file MapManager.cpp.

References _freeInstanceIds, and _nextInstanceId.

◆ SetGridCleanUpDelay()

void MapManager::SetGridCleanUpDelay ( uint32  t)
inline

Definition at line 62 of file MapManager.h.

References MIN_GRID_DELAY.

◆ SetMapUpdateInterval()

void MapManager::SetMapUpdateInterval ( uint32  t)
inline

Definition at line 70 of file MapManager.h.

References MIN_MAP_UPDATE_DELAY.

◆ UnloadAll()

◆ Update()

Member Data Documentation

◆ _freeInstanceIds

std::unique_ptr<InstanceIds> MapManager::_freeInstanceIds
private

◆ _mapsLock

std::shared_mutex MapManager::_mapsLock
mutableprivate

◆ _nextInstanceId

uint32 MapManager::_nextInstanceId
private

◆ _scheduledScripts

std::atomic<std::size_t> MapManager::_scheduledScripts
private

Definition at line 160 of file MapManager.h.

◆ i_gridCleanUpDelay

uint32 MapManager::i_gridCleanUpDelay
private

◆ i_maps

◆ i_timer

IntervalTimer MapManager::i_timer
private

Definition at line 153 of file MapManager.h.

Referenced by MapManager(), and Update().

◆ m_updater

MapUpdater MapManager::m_updater
private

Definition at line 157 of file MapManager.h.

Referenced by Initialize(), UnloadAll(), and Update().


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