![]() |
TrinityCore
|
#include <MapManager.h>
Public Member Functions | |
| Map * | CreateBaseMap (uint32 mapId) |
| Map * | FindBaseNonInstanceMap (uint32 mapId) const |
| Map * | CreateMap (uint32 mapId, Player *player, uint32 loginInstanceId=0) |
| Map * | FindMap (uint32 mapId, uint32 instanceId) const |
| uint32 | GetAreaId (uint32 phaseMask, uint32 mapid, float x, float y, float z) const |
| uint32 | GetAreaId (uint32 phaseMask, uint32 mapid, Position const &pos) const |
| uint32 | GetAreaId (uint32 phaseMask, WorldLocation const &loc) const |
| uint32 | GetZoneId (uint32 phaseMask, uint32 mapid, float x, float y, float z) const |
| uint32 | GetZoneId (uint32 phaseMask, uint32 mapid, Position const &pos) const |
| uint32 | GetZoneId (uint32 phaseMask, WorldLocation const &loc) const |
| void | GetZoneAndAreaId (uint32 phaseMask, uint32 &zoneid, uint32 &areaid, uint32 mapid, float x, float y, float z) const |
| void | GetZoneAndAreaId (uint32 phaseMask, uint32 &zoneid, uint32 &areaid, uint32 mapid, Position const &pos) const |
| void | GetZoneAndAreaId (uint32 phaseMask, uint32 &zoneid, uint32 &areaid, WorldLocation const &loc) const |
| void | Initialize (void) |
| void | Update (uint32) |
| void | SetGridCleanUpDelay (uint32 t) |
| void | SetMapUpdateInterval (uint32 t) |
| void | UnloadAll () |
| void | DoDelayedMovesAndRemoves () |
| Map::EnterState | PlayerCannotEnter (uint32 mapid, Player *player, bool loginCheck=false) |
| void | InitializeVisibilityDistanceInfo () |
| uint32 | GetNumInstances () |
| uint32 | GetNumPlayersInInstances () |
| 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 |
Static Public Member Functions | |
| static MapManager * | instance () |
| static bool | ExistMapAndVMap (uint32 mapid, float x, float y) |
| static bool | IsValidMAP (uint32 mapid, bool startUp) |
| 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 | |
| typedef std::unordered_map< uint32, Trinity::unique_trackable_ptr< Map > > | MapMapType |
| typedef boost::dynamic_bitset< size_t > | InstanceIds |
Private Member Functions | |
| MapManager () | |
| ~MapManager () | |
| Map * | FindBaseMap (uint32 mapId) const |
| MapManager (MapManager const &)=delete | |
| MapManager & | operator= (MapManager const &)=delete |
Private Attributes | |
| std::mutex | _mapsLock |
| uint32 | i_gridCleanUpDelay |
| MapMapType | i_maps |
| IntervalTimer | i_timer |
| InstanceIds | _freeInstanceIds |
| uint32 | _nextInstanceId |
| MapUpdater | m_updater |
| std::atomic< std::size_t > | _scheduledScripts |
Definition at line 32 of file MapManager.h.
|
private |
Definition at line 145 of file MapManager.h.
|
private |
Definition at line 144 of file MapManager.h.
|
private |
Definition at line 39 of file MapManager.cpp.
References CONFIG_INTERVAL_GRIDCLEAN, CONFIG_INTERVAL_MAPUPDATE, i_gridCleanUpDelay, i_timer, IntervalTimer::SetInterval(), and sWorld.
|
private |
Definition at line 46 of file MapManager.cpp.
|
privatedelete |
Definition at line 70 of file MapManager.cpp.
References _mapsLock, ASSERT, FindBaseMap(), i_gridCleanUpDelay, i_maps, MapEntry::Instanceable(), Map::LoadCorpseData(), Map::LoadRespawnTimes(), REGULAR_DIFFICULTY, Trinity::unique_trackable_ptr< T >::reset(), Map::SetWeakPtr(), sMapStore, and sScriptMgr.
Referenced by CreateMap().
Definition at line 109 of file MapManager.cpp.
References CreateBaseMap(), and Map::Instanceable().
|
inline |
Definition at line 139 of file MapManager.h.
|
inline |
Definition at line 140 of file MapManager.h.
| void MapManager::DoDelayedMovesAndRemoves | ( | ) |
Definition at line 241 of file MapManager.cpp.
| void MapManager::DoForAllMaps | ( | Worker && | worker | ) |
Definition at line 173 of file MapManager.h.
References _mapsLock, i_maps, and Map::ToMapInstanced().
|
inline |
Definition at line 192 of file MapManager.h.
References _mapsLock, i_maps, and Map::ToMapInstanced().
|
static |
Definition at line 243 of file MapManager.cpp.
References Trinity::ComputeGridCoord(), Map::ExistMap(), Map::ExistVMap(), MAX_NUMBER_OF_GRIDS, CoordPair< LIMIT >::x_coord, and CoordPair< LIMIT >::y_coord.
Referenced by World::SetInitialWorldSettings().
Definition at line 150 of file MapManager.h.
Referenced by CreateBaseMap(), FindBaseNonInstanceMap(), and FindMap().
Definition at line 101 of file MapManager.cpp.
References FindBaseMap(), and Map::Instanceable().
Definition at line 119 of file MapManager.cpp.
References FindBaseMap(), and Map::Instanceable().
| void MapManager::FreeInstanceId | ( | uint32 | instanceId | ) |
Definition at line 365 of file MapManager.cpp.
References _freeInstanceIds, and _nextInstanceId.
| uint32 MapManager::GenerateInstanceId | ( | ) |
Definition at line 339 of file MapManager.cpp.
References _freeInstanceIds, _nextInstanceId, ASSERT, ERROR_EXIT_CODE, World::StopNow(), and TC_LOG_ERROR.
|
inline |
Definition at line 42 of file MapManager.h.
References Map::GetAreaId().
Definition at line 47 of file MapManager.h.
References GetAreaId(), Position::GetPositionX(), Position::GetPositionY(), and Position::GetPositionZ().
Referenced by GetAreaId().
|
inline |
Definition at line 48 of file MapManager.h.
References GetAreaId(), and WorldLocation::GetMapId().
Referenced by GetAreaId().
|
inline |
Definition at line 130 of file MapManager.h.
| uint32 MapManager::GetNumInstances | ( | ) |
Definition at line 284 of file MapManager.cpp.
References _mapsLock, MapInstanced::GetInstancedMaps(), i_maps, and Map::ToMapInstanced().
| uint32 MapManager::GetNumPlayersInInstances | ( | ) |
Definition at line 299 of file MapManager.cpp.
References _mapsLock, MapInstanced::GetInstancedMaps(), i_maps, and Map::ToMapInstanced().
|
inline |
Definition at line 56 of file MapManager.h.
References Map::GetZoneAndAreaId().
|
inline |
Definition at line 61 of file MapManager.h.
References Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), and GetZoneAndAreaId().
Referenced by GetZoneAndAreaId().
|
inline |
Definition at line 62 of file MapManager.h.
References WorldLocation::GetMapId(), and GetZoneAndAreaId().
Referenced by GetZoneAndAreaId().
|
inline |
Definition at line 49 of file MapManager.h.
References Map::GetZoneId().
Definition at line 54 of file MapManager.h.
References Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), and GetZoneId().
Referenced by GetZoneId().
|
inline |
Definition at line 55 of file MapManager.h.
References WorldLocation::GetMapId(), and GetZoneId().
Referenced by GetZoneId().
|
inline |
Definition at line 138 of file MapManager.h.
| void MapManager::Initialize | ( | void | ) |
Definition at line 48 of file MapManager.cpp.
References MapUpdater::activate(), CONFIG_NUMTHREADS, Map::InitStateMachine(), m_updater, and sWorld.
| void MapManager::InitializeVisibilityDistanceInfo | ( | ) |
Definition at line 58 of file MapManager.cpp.
References i_maps.
| void MapManager::InitInstanceIds | ( | ) |
Definition at line 315 of file MapManager.cpp.
References _freeInstanceIds, _nextInstanceId, and CharacterDatabase.
|
static |
Definition at line 64 of file MapManager.cpp.
References instance().
Referenced by instance(), and PlayerCannotEnter().
|
inline |
Definition at line 141 of file MapManager.h.
|
static |
Definition at line 253 of file MapManager.cpp.
References MapEntry::IsDungeon(), sMapStore, and sObjectMgr.
Referenced by ObjectMgr::LoadInstanceTemplate().
|
inlinestatic |
Definition at line 90 of file MapManager.h.
References Trinity::IsValidMapCoord().
Referenced by Player::_LoadHomeBind(), tele_commandscript::DoNameTeleport(), go_commandscript::DoTeleport(), gobject_commandscript::HandleGameObjectMoveCommand(), go_commandscript::HandleGoGraveyardCommand(), go_commandscript::HandleGoGridCommand(), go_commandscript::HandleGoXYZCommand(), go_commandscript::HandleGoZoneXYCommand(), WorldSession::HandleMoveWorldportAck(), ObjectMgr::LoadGameObjects(), ObjectMgr::LoadGameTele(), ObjectMgr::LoadPlayerInfo(), and Player::TeleportTo().
|
inlinestatic |
Definition at line 95 of file MapManager.h.
References Trinity::IsValidMapCoord().
|
inlinestatic |
Definition at line 100 of file MapManager.h.
References Trinity::IsValidMapCoord().
Definition at line 105 of file MapManager.h.
References Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), and Position::GetPositionZ().
|
inlinestatic |
Definition at line 110 of file MapManager.h.
References WorldLocation::GetMapId().
|
privatedelete |
| Map::EnterState MapManager::PlayerCannotEnter | ( | uint32 | mapid, |
| Player * | player, | ||
| bool | loginCheck = false |
||
| ) |
Definition at line 131 of file MapManager.cpp.
References Map::CAN_ENTER, Map::CANNOT_ENTER_CORPSE_IN_DIFFERENT_INSTANCE, Map::CANNOT_ENTER_DIFFICULTY_UNAVAILABLE, Map::CANNOT_ENTER_NO_ENTRY, Map::CANNOT_ENTER_NOT_IN_RAID, Map::CANNOT_ENTER_TOO_MANY_INSTANCES, Map::CANNOT_ENTER_UNINSTANCED_DUNGEON, Map::CANNOT_ENTER_UNSPECIFIED_REASON, CONFIG_INSTANCE_IGNORE_RAID, Group::GetBoundInstance(), Player::GetCorpseLocation(), Player::GetDifficultyID(), Group::GetDifficultyID(), GetDownscaledMapDifficultyData(), Player::GetGroup(), InstanceSave::GetInstanceId(), Player::GetInstanceSave(), WorldLocation::GetMapId(), WorldObject::GetName(), Player::GetSession(), WorldSession::GetSessionDbcLocale(), Player::HasCorpse(), MapEntry::ID, instance(), Unit::IsAlive(), Unit::isDead(), MapEntry::IsDungeon(), Player::IsGameMaster(), Group::isLFGGroup(), MapEntry::IsRaid(), Group::isRaidGroup(), MapEntry::MapName, InstanceTemplate::Parent, Player::Satisfy(), InstanceGroupBind::save, sMapMgr, sMapStore, sObjectMgr, sWorld, TC_LOG_DEBUG, and WorldSession::UpdateAndCheckInstanceCount().
| void MapManager::RegisterInstanceId | ( | uint32 | instanceId | ) |
Definition at line 328 of file MapManager.cpp.
References _freeInstanceIds, and _nextInstanceId.
|
inline |
Definition at line 67 of file MapManager.h.
References MIN_GRID_DELAY.
|
inline |
Definition at line 75 of file MapManager.h.
References MIN_MAP_UPDATE_DELAY.
| void MapManager::UnloadAll | ( | ) |
Definition at line 265 of file MapManager.cpp.
References MapUpdater::activated(), MapUpdater::deactivate(), Map::DeleteStateMachine(), i_maps, m_updater, and sScriptMgr.
| void MapManager::Update | ( | uint32 | diff | ) |
Definition at line 218 of file MapManager.cpp.
References MapUpdater::activated(), IntervalTimer::GetCurrent(), i_maps, i_timer, m_updater, IntervalTimer::Passed(), MapUpdater::schedule_update(), IntervalTimer::SetCurrent(), IntervalTimer::Update(), and MapUpdater::wait().
|
private |
Definition at line 164 of file MapManager.h.
Referenced by FreeInstanceId(), GenerateInstanceId(), InitInstanceIds(), and RegisterInstanceId().
|
private |
Definition at line 159 of file MapManager.h.
Referenced by CreateBaseMap(), DoForAllMaps(), DoForAllMapsWithMapId(), GetNumInstances(), and GetNumPlayersInInstances().
|
private |
Definition at line 165 of file MapManager.h.
Referenced by FreeInstanceId(), GenerateInstanceId(), InitInstanceIds(), and RegisterInstanceId().
|
private |
Definition at line 169 of file MapManager.h.
|
private |
Definition at line 160 of file MapManager.h.
Referenced by CreateBaseMap(), and MapManager().
|
private |
Definition at line 161 of file MapManager.h.
Referenced by CreateBaseMap(), DoForAllMaps(), DoForAllMapsWithMapId(), GetNumInstances(), GetNumPlayersInInstances(), InitializeVisibilityDistanceInfo(), UnloadAll(), and Update().
|
private |
Definition at line 162 of file MapManager.h.
Referenced by MapManager(), and Update().
|
private |
Definition at line 166 of file MapManager.h.
Referenced by Initialize(), UnloadAll(), and Update().