44#include <unordered_set>
80namespace Trinity {
struct ObjectUpdater; }
150#define MIN_UNLOAD_DELAY 1
151#define MAP_INVALID_ZONE 0xFFFFFFFF
199 if (m_unloadTimer <= diff)
202 m_unloadTimer -= diff;
206 virtual bool AddPlayerToMap(
Player* player,
bool initPlayer =
true);
207 virtual void RemovePlayerFromMap(
Player*,
bool);
209 template<
class T>
bool AddToMap(T *);
210 template<
class T>
void RemoveFromMap(T *,
bool);
217 virtual void InitVisibilityDistance();
219 void PlayerRelocation(
Player*,
float x,
float y,
float z,
float orientation);
220 void CreatureRelocation(
Creature* creature,
float x,
float y,
float z,
float ang,
bool respawnRelocationOnFail =
true);
221 void GameObjectRelocation(
GameObject* go,
float x,
float y,
float z,
float orientation,
bool respawnRelocationOnFail =
true);
222 void DynamicObjectRelocation(
DynamicObject* go,
float x,
float y,
float z,
float orientation);
223 void AreaTriggerRelocation(
AreaTrigger* at,
float x,
float y,
float z,
float orientation);
225 template<
class T,
class CONTAINER>
241 void LoadGrid(
float x,
float y);
242 void LoadGridForActiveObject(
float x,
float y,
WorldObject const*
object);
244 bool UnloadGrid(
NGridType& ngrid,
bool pForce);
256 static void InitStateMachine();
257 static void DeleteStateMachine();
269 void GetZoneAndAreaId(
PhaseShift const& phaseShift,
uint32& zoneid,
uint32& areaid,
float x,
float y,
float z);
272 float GetMinHeight(
PhaseShift const& phaseShift,
float x,
float y);
273 float GetGridHeight(
PhaseShift const& phaseShift,
float x,
float y);
276 float GetHeight(
PhaseShift const& phaseShift,
float x,
float y,
float z,
bool vmap =
true,
float maxSearchDist =
DEFAULT_HEIGHT_SEARCH) {
return std::max<float>(GetStaticHeight(phaseShift, x, y, z, vmap, maxSearchDist), GetGameObjectFloor(phaseShift, x, y, z, maxSearchDist)); }
279 float GetWaterLevel(
PhaseShift const& phaseShift,
float x,
float y);
280 bool IsInWater(
PhaseShift const& phaseShift,
float x,
float y,
float z,
LiquidData* data =
nullptr);
281 bool IsUnderWater(
PhaseShift const& phaseShift,
float x,
float y,
float z);
283 float GetWaterOrGroundLevel(
PhaseShift const& phaseShift,
float x,
float y,
float z,
float* ground =
nullptr,
bool swim =
false,
float collisionHeight = 2.03128f);
285 void MoveAllCreaturesInMoveList();
286 void MoveAllGameObjectsInMoveList();
287 void MoveAllDynamicObjectsInMoveList();
288 void MoveAllAreaTriggersInMoveList();
289 void RemoveAllObjectsInRemoveList();
290 virtual void RemoveAllPlayers();
293 bool CreatureRespawnRelocation(
Creature* c,
bool diffGridOnly);
294 bool GameObjectRespawnRelocation(
GameObject* go,
bool diffGridOnly);
297 template <
typename T>
298 static bool CheckGridIntegrity(T*
object,
bool moved,
char const* objType);
304 char const* GetMapName()
const;
312 bool Instanceable()
const;
313 bool IsDungeon()
const;
314 bool IsNonRaidDungeon()
const;
316 bool IsHeroic()
const;
317 bool Is25ManRaid()
const;
318 bool IsBattleground()
const;
319 bool IsBattleArena()
const;
320 bool IsBattlegroundOrArena()
const;
321 bool IsScenario()
const;
322 bool IsGarrison()
const;
323 bool GetEntrancePos(
int32& mapid,
float& x,
float& y);
326 void AddObjectToSwitchList(
WorldObject* obj,
bool on);
327 virtual void DelayedUpdate(
uint32 diff);
334 uint32 GetPlayersCountExceptGMs()
const;
335 bool ActiveObjectsNearGrid(
NGridType const& ngrid)
const;
345 template <
typename T>
349 if (
Player* player = ref.GetSource())
354 void ScriptsStart(std::map<
uint32, std::multimap<uint32, ScriptInfo>>
const& scripts,
uint32 id,
Object* source,
Object* target);
363 template<
class T>
void SwitchGridContainers(T* obj,
bool on);
366 void UpdateIteratorBack(
Player* player);
369 void SummonCreatureGroup(
uint8 group, std::list<TempSummon*>* list =
nullptr);
388 return reinterpret_cast<WorldObject*
>(GetCreatureBySpawnId(spawnId));
390 return reinterpret_cast<WorldObject*
>(GetGameObjectBySpawnId(spawnId));
392 return reinterpret_cast<WorldObject*
>(GetAreaTriggerBySpawnId(spawnId));
414 auto itr = _corpsesByCell.find(cellId);
415 if (itr != _corpsesByCell.end())
423 auto itr = _corpsesByPlayer.find(ownerGuid);
424 if (itr != _corpsesByPlayer.end())
443 return _dynamicTree.getHeight(x, y, z, maxSearchDist, phaseShift);
445 bool getObjectHitPos(
PhaseShift const& phaseShift,
float x1,
float y1,
float z1,
float x2,
float y2,
float z2,
float& rx,
float &ry,
float& rz,
float modifyDist);
451 time_t GetLinkedRespawnTime(
ObjectGuid guid)
const;
454 if (
auto map = GetRespawnMapForType(type))
456 auto it = map->find(spawnId);
457 return (it == map->end()) ? 0 : it->second->respawnTime;
464 void UpdatePlayerZoneStats(
uint32 oldZone,
uint32 newZone);
468 void LoadRespawnTimes();
470 void DeleteRespawnTimesInDB();
472 void LoadCorpseData();
473 void DeleteCorpseData();
474 void AddCorpse(
Corpse* corpse);
475 void RemoveCorpse(
Corpse* corpse);
476 Corpse* ConvertCorpseToBones(
ObjectGuid const& ownerGuid,
bool insignia =
false);
477 void RemoveOldCorpses();
479 void SendInitTransports(
Player* player);
480 void SendRemoveTransports(
Player* player);
481 void SendUpdateTransportVisibility(
Player* player);
482 void SendZoneDynamicInfo(
uint32 zoneId,
Player* player)
const;
483 void SendZoneWeather(
uint32 zoneId,
Player* player)
const;
492 void UpdateAreaDependentAuras();
494 template<HighGu
id high>
498 return GetGuidSequenceGenerator(high).Generate();
501 template<HighGu
id high>
505 return GetGuidSequenceGenerator(high).GetNextAfterMaxUsed();
510 _updateObjects.insert(obj);
515 _updateObjects.erase(obj);
520 return m_activeNonPlayers.size();
529 void SendInitSelf(
Player* player);
531 template <
typename T>
532 bool MapObjectCellRelocation(T*
object,
Cell new_cell,
char const* objType);
534 bool CreatureCellRelocation(
Creature* creature,
Cell new_cell);
539 template<
class T>
void InitializeObject(T* obj);
540 void AddCreatureToMoveList(
Creature* c,
float x,
float y,
float z,
float ang);
541 void RemoveCreatureFromMoveList(
Creature* c);
542 void AddGameObjectToMoveList(
GameObject* go,
float x,
float y,
float z,
float ang);
543 void RemoveGameObjectFromMoveList(
GameObject* go);
544 void AddDynamicObjectToMoveList(
DynamicObject* go,
float x,
float y,
float z,
float ang);
546 void AddAreaTriggerToMoveList(
AreaTrigger* at,
float x,
float y,
float z,
float ang);
547 void RemoveAreaTriggerFromMoveList(
AreaTrigger* at);
561 bool IsGridLoaded(
GridCoord const&)
const;
562 void EnsureGridCreated(
GridCoord const&);
563 bool EnsureGridLoaded(
Cell const&);
564 void EnsureGridLoadedForActiveObject(
Cell const&,
WorldObject const*
object);
571 return i_grids[x][y];
578 void ScriptsProcess();
580 void SendObjectUpdates();
583 virtual void LoadGridObjects(
NGridType* grid,
Cell const& cell);
622 std::bitset<TOTAL_NUMBER_OF_CELLS_PER_MAP*TOTAL_NUMBER_OF_CELLS_PER_MAP>
marked_cells;
626 void ProcessRelocationNotifies(
const uint32 diff);
637 void ProcessRespawns();
647 void UnloadAllRespawnInfos();
654 void GetRespawnInfo(std::vector<RespawnInfo const*>& respawnData,
SpawnObjectTypeMask types)
const;
657 if (
RespawnInfo* info = GetRespawnInfo(type, spawnId))
658 Respawn(info, dbTrans);
662 if (
RespawnInfo* info = GetRespawnInfo(type, spawnId))
663 DeleteRespawnInfo(info, dbTrans);
665 else if (alwaysDeleteFromDB)
666 DeleteRespawnInfoFromDB(type, spawnId, dbTrans);
675 bool IsSpawnGroupActive(
uint32 groupId)
const;
679 bool SpawnGroupSpawn(
uint32 groupId,
bool ignoreRespawn =
false,
bool force =
false, std::vector<WorldObject*>* spawnedObjects =
nullptr);
682 bool SpawnGroupDespawn(
uint32 groupId,
bool deleteRespawnTimes =
false,
size_t* count =
nullptr);
694 void UpdateSpawnGroupConditions();
699 void AddToGrid(T*
object,
Cell const& cell);
702 void DeleteFromWorld(T*);
706 m_activeNonPlayers.insert(obj);
712 if (m_activeNonPlayersIter != m_activeNonPlayers.end())
714 ActiveNonPlayers::iterator itr = m_activeNonPlayers.find(obj);
715 if (itr == m_activeNonPlayers.end())
717 if (itr == m_activeNonPlayersIter)
718 ++m_activeNonPlayersIter;
719 m_activeNonPlayers.erase(itr);
722 m_activeNonPlayers.erase(obj);
735 return &_creatureRespawnTimesBySpawnId;
737 return &_gameObjectRespawnTimesBySpawnId;
749 return &_creatureRespawnTimesBySpawnId;
751 return &_gameObjectRespawnTimesBySpawnId;
757 void SetSpawnGroupActive(
uint32 groupId,
bool state);
787 void UpdatePersonalPhasesForPlayer(
Player const* player);
796 int32 GetWorldStateValue(
int32 worldStateId)
const;
797 void SetWorldStateValue(
int32 worldStateId,
int32 value,
bool hidden);
826 void CreateInstanceData();
829 std::string
const& GetScriptName()
const;
838 void CreateInstanceLockForPlayer(
Player* player);
841 uint32 GetMaxPlayers()
const;
842 TeamId GetTeamIdInInstance()
const;
848 void TrySetOwningGroup(
Group* group);
880template<
class T,
class CONTAINER>
Difficulty
Definition: DBCEnums.h:732
ItemContext
Definition: DBCEnums.h:922
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
Definition: DatabaseEnvFwd.h:72
#define UI64FMTD
Definition: Define.h:127
#define TC_GAME_API
Definition: Define.h:124
uint8_t uint8
Definition: Define.h:145
int32_t int32
Definition: Define.h:139
#define UI64LIT(N)
Definition: Define.h:128
uint32_t uint32
Definition: Define.h:143
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition: Duration.h:29
std::string GetDebugInfo()
Definition: Errors.cpp:157
#define ABORT
Definition: Errors.h:74
#define ASSERT
Definition: Errors.h:68
#define DEFAULT_HEIGHT_SEARCH
Definition: GridDefines.h:63
#define MIN_GRID_DELAY
Definition: GridDefines.h:45
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
Definition: GridDefines.h:187
#define MAX_NUMBER_OF_GRIDS
Definition: GridDefines.h:38
std::conditional_t< IntrusiveLink !=nullptr, Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >, Trinity::Impl::MPSCQueueNonIntrusive< T > > MPSCQueue
Definition: MPSCQueue.h:173
ZLiquidStatus
Definition: MapDefines.h:125
map_liquidHeaderTypeFlags
Definition: MapDefines.h:97
InstanceResetMethod
Definition: Map.h:805
std::unordered_map< ObjectGuid::LowType, RespawnInfo * > RespawnInfoMap
Definition: Map.h:160
InstanceResetResult
Definition: Map.h:812
std::unordered_map< uint32, ZoneDynamicInfo > ZoneDynamicInfoMap
Definition: Map.h:158
TypeUnorderedMapContainer< AllMapStoredObjectTypes, ObjectGuid > MapStoredObjectTypesContainer
Definition: Map.h:182
TransferAbortReason
Definition: Map.h:84
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
Definition: Map.h:89
@ TRANSFER_ABORT_NOT_CROSS_FACTION_COMPATIBLE
Definition: Map.h:106
@ TRANSFER_ABORT_XREALM_ZONE_DOWN
Definition: Map.h:104
@ TRANSFER_ABORT_NOT_FOUND_2
Definition: Map.h:96
@ TRANSFER_ABORT_DIFFICULTY
Definition: Map.h:92
@ TRANSFER_ABORT_UNIQUE_MESSAGE
Definition: Map.h:93
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
Definition: Map.h:100
@ TRANSFER_ABORT_INSUF_EXPAN_LVL
Definition: Map.h:91
@ TRANSFER_ABORT_TOO_MANY_REALM_INSTANCES
Definition: Map.h:94
@ TRANSFER_ABORT_MAX_PLAYERS
Definition: Map.h:87
@ TRANSFER_ABORT_NOT_FOUND_4
Definition: Map.h:98
@ TRANSFER_ABORT_ZONE_IN_COMBAT
Definition: Map.h:90
@ TRANSFER_ABORT_DIFFICULTY_NOT_FOUND
Definition: Map.h:103
@ TRANSFER_ABORT_NONE
Definition: Map.h:85
@ TRANSFER_ABORT_ALREADY_COMPLETED_ENCOUNTER
Definition: Map.h:102
@ TRANSFER_ABORT_SOLO_PLAYER_SWITCH_DIFFICULTY
Definition: Map.h:105
@ TRANSFER_ABORT_NOT_FOUND
Definition: Map.h:88
@ TRANSFER_ABORT_LOCKED_TO_DIFFERENT_INSTANCE
Definition: Map.h:101
@ TRANSFER_ABORT_NEED_GROUP
Definition: Map.h:95
@ TRANSFER_ABORT_NOT_FOUND_3
Definition: Map.h:97
@ TRANSFER_ABORT_REALM_ONLY
Definition: Map.h:99
@ TRANSFER_ABORT_ERROR
Definition: Map.h:86
@ GRID_STATE_REMOVAL
Definition: NGrid.h:58
HighGuid
Definition: ObjectGuid.h:71
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
TeamId
Definition: SharedDefines.h:1109
@ TEAM_ALLIANCE
Definition: SharedDefines.h:1110
Team
Definition: SharedDefines.h:1116
@ TEAM_OTHER
Definition: SharedDefines.h:1124
@ ALLIANCE
Definition: SharedDefines.h:1118
@ HORDE
Definition: SharedDefines.h:1117
LineOfSightChecks
Definition: SharedDefines.h:6805
SpawnObjectTypeMask
Definition: SpawnData.h:42
SpawnObjectType
Definition: SpawnData.h:33
@ SPAWN_TYPE_GAMEOBJECT
Definition: SpawnData.h:35
@ SPAWN_TYPE_AREATRIGGER
Definition: SpawnData.h:36
@ SPAWN_TYPE_CREATURE
Definition: SpawnData.h:34
std::unordered_map< int32, int32 > WorldStateValueContainer
Definition: WorldStateDefines.h:35
Definition: AreaTrigger.h:43
Battleground * GetBG()
Definition: Map.h:874
Battleground * m_bg
Definition: Map.h:877
void SetBG(Battleground *bg)
Definition: Map.h:875
Definition: Battleground.h:256
Definition: Conversation.h:30
Definition: CreatureGroups.h:69
Definition: Creature.h:70
Definition: DynamicTree.h:39
Definition: DynamicObject.h:37
Definition: GameObjectModel.h:62
Definition: GameObject.h:125
Definition: GridRefManager.h:28
Definition: GroupInstanceReference.h:27
Definition: InstanceLockMgr.h:84
Optional< SystemTimePoint > i_instanceExpireEvent
Definition: Map.h:852
InstanceLock * i_instanceLock
Definition: Map.h:856
InstanceScript const * GetInstanceScript() const
Definition: Map.h:831
InstanceScenario * GetInstanceScenario()
Definition: Map.h:832
InstanceScenario * i_scenario
Definition: Map.h:855
uint32 GetScriptId() const
Definition: Map.h:828
Team GetTeamInInstance() const
Definition: Map.h:843
InstanceLock const * GetInstanceLock() const
Definition: Map.h:835
GroupInstanceReference i_owningGroupRef
Definition: Map.h:857
InstanceScript * i_data
Definition: Map.h:853
void SetInstanceScenario(InstanceScenario *scenario)
Definition: Map.h:834
InstanceScenario const * GetInstanceScenario() const
Definition: Map.h:833
uint32 i_script_id
Definition: Map.h:854
Group * GetOwningGroup() const
Definition: Map.h:847
InstanceScript * GetInstanceScript()
Definition: Map.h:830
Definition: InstanceScenario.h:26
Definition: InstanceScript.h:186
Definition: MapRefManager.h:26
Definition: MapReference.h:27
MapEntry const * i_mapEntry
Definition: Map.h:585
bool _creatureToMoveLock
Definition: Map.h:549
std::map< WorldObject *, bool > i_objectsToSwitch
Definition: Map.h:630
WorldObject * GetWorldObjectBySpawnId(SpawnObjectType type, ObjectGuid::LowType spawnId) const
Definition: Map.h:383
std::unordered_map< uint32, uint32 > _zonePlayerCountMap
Definition: Map.h:761
std::vector< Creature * > _creaturesToMove
Definition: Map.h:550
CreatureBySpawnIdContainer const & GetCreatureBySpawnIdStore() const
Definition: Map.h:402
bool IsRemovalGrid(Position const &pos) const
Definition: Map.h:233
RespawnInfoMap const * GetRespawnMapForType(SpawnObjectType type) const
Definition: Map.h:742
float GetStaticHeight(PhaseShift const &phaseShift, Position const &pos, bool checkVMap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
Definition: Map.h:275
void SetSpawnGroupInactive(uint32 groupId)
Definition: Map.h:686
std::unordered_set< Corpse * > const * GetCorpsesInCell(uint32 cellId) const
Definition: Map.h:412
std::unordered_multimap< ObjectGuid::LowType, Creature * > CreatureBySpawnIdContainer
Definition: Map.h:400
std::unordered_map< ObjectGuid, Corpse * > _corpsesByPlayer
Definition: Map.h:775
bool ShouldBeSpawnedOnGridLoad(ObjectGuid::LowType spawnId) const
Definition: Map.h:671
MapStoredObjectTypesContainer & GetObjectsStore()
Definition: Map.h:398
TransportsContainer::iterator _transportsUpdateIter
Definition: Map.h:604
virtual void RemovePlayerFromMap(Player *, bool)
Definition: Map.cpp:905
InstanceMap const * ToInstanceMap() const
Definition: Map.h:431
virtual bool AddPlayerToMap(Player *player, bool initPlayer=true)
Definition: Map.cpp:431
uint32 GetAreaId(PhaseShift const &phaseShift, Position const &pos)
Definition: Map.h:266
void RemoveFromActiveHelper(WorldObject *obj)
Definition: Map.h:709
void GetZoneAndAreaId(PhaseShift const &phaseShift, uint32 &zoneid, uint32 &areaid, Position const &pos)
Definition: Map.h:270
std::function< void(Map *)> FarSpellCallback
Definition: Map.h:691
bool GetUnloadLock(GridCoord const &p) const
Definition: Map.h:239
void RemoveGameObjectModel(GameObjectModel const &model)
Definition: Map.h:438
RespawnInfoMap * GetRespawnMapForType(SpawnObjectType type)
Definition: Map.h:728
virtual TransferAbortParams CannotEnter(Player *)
Definition: Map.h:303
void DeleteRespawnTimes()
Definition: Map.h:469
void RemoveUpdateObject(Object *obj)
Definition: Map.h:513
RespawnInfoMap _gameObjectRespawnTimesBySpawnId
Definition: Map.h:727
uint32 m_unloadTimer
Definition: Map.h:588
bool IsGridLoaded(Position const &pos) const
Definition: Map.h:237
MapRefManager PlayerList
Definition: Map.h:342
AreaTriggerBySpawnIdContainer & GetAreaTriggerBySpawnIdStore()
Definition: Map.h:409
void SetTimer(uint32 t)
Definition: Map.h:527
std::bitset< TOTAL_NUMBER_OF_CELLS_PER_MAP *TOTAL_NUMBER_OF_CELLS_PER_MAP > marked_cells
Definition: Map.h:622
uint32 GetZoneId(PhaseShift const &phaseShift, Position const &pos)
Definition: Map.h:268
SpawnedPoolData const & GetPoolData() const
Definition: Map.h:689
virtual ObjectGuid::LowType GetOwnerGuildId(uint32=TEAM_OTHER) const
Definition: Map.h:447
BattlegroundMap const * ToBattlegroundMap() const
Definition: Map.h:434
bool CanUnload(uint32 diff)
Definition: Map.h:194
WorldStateValueContainer _worldStateValues
Definition: Map.h:801
IntervalTimer _weatherUpdateTimer
Definition: Map.h:764
void RemoveRespawnTime(SpawnObjectType type, ObjectGuid::LowType spawnId, CharacterDatabaseTransaction dbTrans=nullptr, bool alwaysDeleteFromDB=false)
Definition: Map.h:660
bool _dynamicObjectsToMoveLock
Definition: Map.h:555
NGridType * getNGrid(uint32 x, uint32 y) const
Definition: Map.h:568
std::shared_ptr< TerrainInfo > m_terrain
Definition: Map.h:619
void AddToActiveHelper(WorldObject *obj)
Definition: Map.h:704
bool _gameObjectsToMoveLock
Definition: Map.h:552
bool ContainsGameObjectModel(GameObjectModel const &model) const
Definition: Map.h:440
uint32 _respawnCheckTimer
Definition: Map.h:760
WorldStateValueContainer const & GetWorldStateValues() const
Definition: Map.h:798
bool HavePlayers() const
Definition: Map.h:333
bool IsRemovalGrid(float x, float y) const
Definition: Map.h:228
std::unordered_map< uint32, std::unordered_set< Corpse * > > _corpsesByCell
Definition: Map.h:774
MapRefManager m_mapRefManager
Definition: Map.h:592
void resetMarkedCells()
Definition: Map.h:329
void Visit(Cell const &cell, TypeContainerVisitor< T, CONTAINER > &visitor)
Definition: Map.h:881
ScriptScheduleMap m_scriptSchedule
Definition: Map.h:634
ObjectGuid::LowType GetMaxLowGuid()
Definition: Map.h:502
void AddWorldObject(WorldObject *obj)
Definition: Map.h:337
void ResetGridExpiry(NGridType &grid, float factor=1) const
Definition: Map.h:249
DynamicMapTree _dynamicTree
Definition: Map.h:590
void Respawn(SpawnObjectType type, ObjectGuid::LowType spawnId, CharacterDatabaseTransaction dbTrans=nullptr)
Definition: Map.h:655
std::vector< GameObject * > _gameObjectsToMove
Definition: Map.h:553
ObjectGuid::LowType GenerateLowGuid()
Definition: Map.h:495
std::unordered_map< ObjectGuid::LowType, CreatureGroup * > CreatureGroupHolder
Definition: Map.h:364
void DoOnPlayers(T &&fn)
Definition: Map.h:346
AreaTriggerBySpawnIdContainer _areaTriggerBySpawnIdStore
Definition: Map.h:773
time_t i_gridExpiry
Definition: Map.h:617
int32 m_VisibilityNotifyPeriod
Definition: Map.h:595
std::unordered_set< Corpse * > _corpseBones
Definition: Map.h:776
MPSCQueue< FarSpellCallback > _farSpellCallbacks
Definition: Map.h:780
Difficulty i_spawnMode
Definition: Map.h:586
time_t GetGORespawnTime(ObjectGuid::LowType spawnId) const
Definition: Map.h:462
bool i_scriptLock
Definition: Map.h:628
virtual void RemoveAllPlayers()
Definition: Map.cpp:1627
std::unordered_set< uint32 > _toggledSpawnGroupIds
Definition: Map.h:758
bool isCellMarked(uint32 pCellId)
Definition: Map.h:330
time_t GetCreatureRespawnTime(ObjectGuid::LowType spawnId) const
Definition: Map.h:461
MultiPersonalPhaseTracker & GetMultiPersonalPhaseTracker()
Definition: Map.h:786
BattlegroundMap * ToBattlegroundMap()
Definition: Map.h:433
MultiPersonalPhaseTracker _multiPersonalPhaseTracker
Definition: Map.h:790
virtual std::string GetDebugInfo() const
Definition: Map.cpp:3918
MapRefManager::iterator m_mapRefIter
Definition: Map.h:593
std::multimap< time_t, ScriptAction > ScriptScheduleMap
Definition: Map.h:633
std::unique_ptr< RespawnListContainer > _respawnTimes
Definition: Map.h:725
time_t GetRespawnTime(SpawnObjectType type, ObjectGuid::LowType spawnId) const
Definition: Map.h:452
void Balance()
Definition: Map.h:437
virtual void Update(uint32)
Definition: Map.cpp:664
ZoneDynamicInfoMap _zoneDynamicInfo
Definition: Map.h:763
bool _areaTriggersToMoveLock
Definition: Map.h:558
std::vector< AreaTrigger * > _areaTriggersToMove
Definition: Map.h:559
void RemoveWorldObject(WorldObject *obj)
Definition: Map.h:338
std::set< WorldObject * > i_worldObjects
Definition: Map.h:631
Difficulty GetDifficultyID() const
Definition: Map.h:307
ActiveNonPlayers m_activeNonPlayers
Definition: Map.h:598
GameObjectBySpawnIdContainer & GetGameObjectBySpawnIdStore()
Definition: Map.h:405
void InsertGameObjectModel(GameObjectModel const &model)
Definition: Map.h:439
void SetUnloadLock(GridCoord const &p, bool on)
Definition: Map.h:240
std::set< Transport * > TransportsContainer
Definition: Map.h:602
std::unordered_set< Object * > _updateObjects
Definition: Map.h:778
void buildNGridLinkage(NGridType *pNGridType)
Definition: Map.h:566
MapEntry const * GetEntry() const
Definition: Map.h:191
std::set< WorldObject * > i_objectsToRemove
Definition: Map.h:629
MapStoredObjectTypesContainer _objectsStore
Definition: Map.h:770
bool IsGridLoaded(float x, float y) const
Definition: Map.h:236
std::unordered_multimap< ObjectGuid::LowType, AreaTrigger * > AreaTriggerBySpawnIdContainer
Definition: Map.h:408
friend class MapReference
Definition: Map.h:186
float m_VisibleDistance
Definition: Map.h:589
float GetVisibilityRange() const
Definition: Map.h:215
float GetHeight(PhaseShift const &phaseShift, float x, float y, float z, bool vmap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
Definition: Map.h:276
InstanceMap * ToInstanceMap()
Definition: Map.h:430
Corpse * GetCorpseByPlayer(ObjectGuid const &ownerGuid) const
Definition: Map.h:421
bool IsGridLoaded(uint32 gridId) const
Definition: Map.h:235
std::set< WorldObject * > ActiveNonPlayers
Definition: Map.h:597
void markCell(uint32 pCellId)
Definition: Map.h:331
float GetHeight(PhaseShift const &phaseShift, Position const &pos, bool vmap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
Definition: Map.h:277
AreaTriggerBySpawnIdContainer const & GetAreaTriggerBySpawnIdStore() const
Definition: Map.h:410
CreatureBySpawnIdContainer & GetCreatureBySpawnIdStore()
Definition: Map.h:401
virtual void InitVisibilityDistance()
Definition: Map.cpp:185
void setGridObjectDataLoaded(bool pLoaded, uint32 x, uint32 y)
Definition: Map.h:575
bool EnsureGridLoaded(Cell const &)
Definition: Map.cpp:371
std::vector< DynamicObject * > _dynamicObjectsToMove
Definition: Map.h:556
uint32 GetInstanceId() const
Definition: Map.h:300
TransportsContainer _transports
Definition: Map.h:603
PlayerList const & GetPlayers() const
Definition: Map.h:343
GameObjectBySpawnIdContainer const & GetGameObjectBySpawnIdStore() const
Definition: Map.h:406
SpawnedPoolData & GetPoolData()
Definition: Map.h:688
void AddUpdateObject(Object *obj)
Definition: Map.h:508
RespawnInfoMap _creatureRespawnTimesBySpawnId
Definition: Map.h:726
CreatureBySpawnIdContainer _creatureBySpawnIdStore
Definition: Map.h:771
uint32 i_InstanceId
Definition: Map.h:587
ActiveNonPlayers::iterator m_activeNonPlayersIter
Definition: Map.h:599
time_t GetGridExpiry() const
Definition: Map.h:254
std::unordered_multimap< ObjectGuid::LowType, GameObject * > GameObjectBySpawnIdContainer
Definition: Map.h:404
std::map< HighGuid, std::unique_ptr< ObjectGuidGenerator > > _guidGenerators
Definition: Map.h:768
bool isGridObjectDataLoaded(uint32 x, uint32 y) const
Definition: Map.h:574
TerrainInfo * GetTerrain() const
Definition: Map.h:259
float GetGameObjectFloor(PhaseShift const &phaseShift, float x, float y, float z, float maxSearchDist=DEFAULT_HEIGHT_SEARCH) const
Definition: Map.h:441
GameObjectBySpawnIdContainer _gameobjectBySpawnIdStore
Definition: Map.h:772
std::unique_ptr< SpawnedPoolData > _poolData
Definition: Map.h:769
size_t GetActiveNonPlayersCount() const
Definition: Map.h:518
void ResetTimeTracker(time_t interval)
Definition: NGrid.h:109
void VisitGrid(const uint32 x, const uint32 y, TypeContainerVisitor< T, TypeMapContainer< TT > > &visitor)
Definition: NGrid.h:145
void link(GridRefManager< NGrid< N, ACTIVE_OBJECT, WORLD_OBJECT_TYPES, GRID_OBJECT_TYPES > > *pTo)
Definition: NGrid.h:96
Definition: ObjectGuid.h:390
Definition: ObjectGuid.h:258
static ObjectGuid const Empty
Definition: ObjectGuid.h:264
uint64 LowType
Definition: ObjectGuid.h:268
Definition: PhaseShift.h:55
Definition: Player.h:1125
Definition: SceneObject.h:33
Definition: TemporarySummon.h:44
Definition: TerrainMgr.h:38
Definition: Transport.h:30
Definition: TypeContainerVisitor.h:84
Definition: TypeContainer.h:149
Weather for one zone.
Definition: Weather.h:66
Definition: WorldPacket.h:26
WeatherState
Definition: Weather.h:46
Definition: AsioHacksFwd.h:53
GridCoord ComputeGridCoord(float x, float y)
Definition: GridDefines.h:204
Definition: DynamicTree.h:34
ModelIgnoreFlags
Definition: ModelIgnoreFlags.h:26
uint32 GridX() const
Definition: Cell.h:73
bool NoCreate() const
Definition: Cell.h:75
uint32 GridY() const
Definition: Cell.h:74
uint32 CellX() const
Definition: Cell.h:71
uint32 CellY() const
Definition: Cell.h:72
bool operator()(RespawnInfo const *a, RespawnInfo const *b) const
Definition: Map.h:169
Definition: GridDefines.h:106
uint32 x_coord
Definition: GridDefines.h:171
uint32 y_coord
Definition: GridDefines.h:172
Definition: DB2Structure.h:1405
Definition: MapDefines.h:137
Definition: DB2Structure.h:2684
Definition: DB2Structure.h:2591
Definition: PersonalPhaseTracker.h:69
Definition: ObjectGuid.h:163
Definition: MapDefines.h:145
Definition: Position.h:28
float GetPositionZ() const
Definition: Position.h:79
float GetPositionX() const
Definition: Position.h:77
float GetPositionY() const
Definition: Position.h:78
uint32 gridId
Definition: Map.h:167
ObjectGuid::LowType spawnId
Definition: Map.h:164
time_t respawnTime
Definition: Map.h:166
uint32 entry
Definition: Map.h:165
SpawnObjectType type
Definition: Map.h:163
ObjectGuid targetGUID
Definition: Map.h:126
ObjectGuid ownerGUID
Definition: Map.h:127
ObjectGuid sourceGUID
Definition: Map.h:125
ScriptInfo const * script
owner of source if source is item
Definition: Map.h:128
Definition: ObjectMgr.h:223
Definition: SmoothPhasing.h:27
Definition: SpawnData.h:66
Definition: DB2Structure.h:3833
int32 MapDifficultyXConditionId
Definition: Map.h:118
TransferAbortReason Reason
Definition: Map.h:116
uint8 Arg
Definition: Map.h:117
TransferAbortParams(TransferAbortReason reason, uint8 arg=0, int32 mapDifficultyXConditionId=0)
Definition: Map.h:111
Definition: InstanceScript.h:171
Definition: InstanceScript.h:164
uint32 TransitionMilliseconds
Definition: Map.h:145
uint32 AreaLightId
Definition: Map.h:143
uint32 OverrideLightId
Definition: Map.h:144
ZoneDynamicInfo()
Definition: Map.cpp:76
std::vector< LightOverride > LightOverrides
Definition: Map.h:147
uint32 MusicId
Definition: Map.h:135
WeatherState WeatherId
Definition: Map.h:138
std::unique_ptr< Weather > DefaultWeather
Definition: Map.h:137
float Intensity
Definition: Map.h:139