TrinityCore
GarrisonMap Class Reference

#include <GarrisonMap.h>

+ Inheritance diagram for GarrisonMap:

Public Member Functions

 GarrisonMap (uint32 id, time_t, uint32 instanceId, ObjectGuid const &owner)
 
void LoadGridObjects (NGridType *grid, Cell const &cell) override
 
GarrisonGetGarrison ()
 
void InitVisibilityDistance () override
 
bool AddPlayerToMap (Player *player, bool initPlayer=true) override
 
- Public Member Functions inherited from Map
 Map (uint32 id, time_t, uint32 InstanceId, Difficulty SpawnMode)
 
virtual ~Map ()
 
MapEntry const * GetEntry () const
 
bool CanUnload (uint32 diff)
 
virtual bool AddPlayerToMap (Player *player, bool initPlayer=true)
 
virtual void RemovePlayerFromMap (Player *, bool)
 
template<class T >
bool AddToMap (T *)
 
template<class T >
void RemoveFromMap (T *, bool)
 
void VisitNearbyCellsOf (WorldObject *obj, TypeContainerVisitor< Trinity::ObjectUpdater, GridTypeMapContainer > &gridVisitor, TypeContainerVisitor< Trinity::ObjectUpdater, WorldTypeMapContainer > &worldVisitor)
 
virtual void Update (uint32)
 
float GetVisibilityRange () const
 
virtual void InitVisibilityDistance ()
 
void PlayerRelocation (Player *, float x, float y, float z, float orientation)
 
void CreatureRelocation (Creature *creature, float x, float y, float z, float ang, bool respawnRelocationOnFail=true)
 
void GameObjectRelocation (GameObject *go, float x, float y, float z, float orientation, bool respawnRelocationOnFail=true)
 
void DynamicObjectRelocation (DynamicObject *go, float x, float y, float z, float orientation)
 
void AreaTriggerRelocation (AreaTrigger *at, float x, float y, float z, float orientation)
 
template<class T , class CONTAINER >
void Visit (Cell const &cell, TypeContainerVisitor< T, CONTAINER > &visitor)
 
bool IsRemovalGrid (float x, float y) const
 
bool IsRemovalGrid (Position const &pos) const
 
bool IsGridLoaded (uint32 gridId) const
 
bool IsGridLoaded (float x, float y) const
 
bool IsGridLoaded (Position const &pos) const
 
bool GetUnloadLock (GridCoord const &p) const
 
void SetUnloadLock (GridCoord const &p, bool on)
 
void LoadGrid (float x, float y)
 
void LoadGridForActiveObject (float x, float y, WorldObject const *object)
 
void LoadAllCells ()
 
bool UnloadGrid (NGridType &ngrid, bool pForce)
 
void GridMarkNoUnload (uint32 x, uint32 y)
 
void GridUnmarkNoUnload (uint32 x, uint32 y)
 
void UnloadAll ()
 
void ResetGridExpiry (NGridType &grid, float factor=1) const
 
time_t GetGridExpiry () const
 
TerrainInfoGetTerrain () const
 
uint16 GetForceEnabledNavMeshFilterFlags () const
 
void SetForceEnabledNavMeshFilterFlag (uint16 flag)
 
void RemoveForceEnabledNavMeshFilterFlag (uint16 flag)
 
uint16 GetForceDisabledNavMeshFilterFlags () const
 
void SetForceDisabledNavMeshFilterFlag (uint16 flag)
 
void RemoveForceDisabledNavMeshFilterFlag (uint16 flag)
 
void GetFullTerrainStatusForPosition (PhaseShift const &phaseShift, float x, float y, float z, PositionFullTerrainStatus &data, Optional< map_liquidHeaderTypeFlags > reqLiquidType={}, float collisionHeight=2.03128f)
 
ZLiquidStatus GetLiquidStatus (PhaseShift const &phaseShift, float x, float y, float z, Optional< map_liquidHeaderTypeFlags > ReqLiquidType={}, LiquidData *data=nullptr, float collisionHeight=2.03128f)
 
uint32 GetAreaId (PhaseShift const &phaseShift, float x, float y, float z)
 
uint32 GetAreaId (PhaseShift const &phaseShift, Position const &pos)
 
uint32 GetZoneId (PhaseShift const &phaseShift, float x, float y, float z)
 
uint32 GetZoneId (PhaseShift const &phaseShift, Position const &pos)
 
void GetZoneAndAreaId (PhaseShift const &phaseShift, uint32 &zoneid, uint32 &areaid, float x, float y, float z)
 
void GetZoneAndAreaId (PhaseShift const &phaseShift, uint32 &zoneid, uint32 &areaid, Position const &pos)
 
float GetMinHeight (PhaseShift const &phaseShift, float x, float y)
 
float GetGridHeight (PhaseShift const &phaseShift, float x, float y)
 
float GetStaticHeight (PhaseShift const &phaseShift, float x, float y, float z, bool checkVMap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
 
float GetStaticHeight (PhaseShift const &phaseShift, Position const &pos, bool checkVMap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
 
float GetHeight (PhaseShift const &phaseShift, float x, float y, float z, bool vmap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
 
float GetHeight (PhaseShift const &phaseShift, Position const &pos, bool vmap=true, float maxSearchDist=DEFAULT_HEIGHT_SEARCH)
 
float GetWaterLevel (PhaseShift const &phaseShift, float x, float y)
 
bool IsInWater (PhaseShift const &phaseShift, float x, float y, float z, LiquidData *data=nullptr)
 
bool IsUnderWater (PhaseShift const &phaseShift, float x, float y, float z)
 
float GetWaterOrGroundLevel (PhaseShift const &phaseShift, float x, float y, float z, float *ground=nullptr, bool swim=false, float collisionHeight=2.03128f)
 
void MoveAllCreaturesInMoveList ()
 
void MoveAllGameObjectsInMoveList ()
 
void MoveAllDynamicObjectsInMoveList ()
 
void MoveAllAreaTriggersInMoveList ()
 
void RemoveAllObjectsInRemoveList ()
 
virtual void RemoveAllPlayers ()
 
bool CreatureRespawnRelocation (Creature *c, bool diffGridOnly)
 
bool GameObjectRespawnRelocation (GameObject *go, bool diffGridOnly)
 
uint32 GetInstanceId () const
 
Trinity::unique_weak_ptr< MapGetWeakPtr () const
 
void SetWeakPtr (Trinity::unique_weak_ptr< Map > weakRef)
 
virtual TransferAbortParams CannotEnter (Player *)
 
char const * GetMapName () const
 
Difficulty GetDifficultyID () const
 
MapDifficultyEntry const * GetMapDifficulty () const
 
uint32 GetId () const
 
bool Instanceable () const
 
bool IsDungeon () const
 
bool IsNonRaidDungeon () const
 
bool IsRaid () const
 
bool IsLFR () const
 
bool IsNormal () const
 
bool IsHeroic () const
 
bool IsMythic () const
 
bool IsMythicPlus () const
 
bool IsHeroicOrHigher () const
 
bool Is25ManRaid () const
 
bool IsTimewalking () const
 
bool IsBattleground () const
 
bool IsBattleArena () const
 
bool IsBattlegroundOrArena () const
 
bool IsScenario () const
 
bool IsGarrison () const
 
bool IsAlwaysActive () const
 
bool GetEntrancePos (int32 &mapid, float &x, float &y)
 
void AddObjectToRemoveList (WorldObject *obj)
 
void AddObjectToSwitchList (WorldObject *obj, bool on)
 
virtual void DelayedUpdate (uint32 diff)
 
void resetMarkedCells ()
 
bool isCellMarked (uint32 pCellId)
 
void markCell (uint32 pCellId)
 
bool HavePlayers () const
 
uint32 GetPlayersCountExceptGMs () const
 
bool ActiveObjectsNearGrid (NGridType const &ngrid) const
 
void AddWorldObject (WorldObject *obj)
 
void RemoveWorldObject (WorldObject *obj)
 
void SendToPlayers (WorldPacket const *data) const
 
PlayerList const & GetPlayers () const
 
template<typename T >
void DoOnPlayers (T &&fn)
 
void ScriptsStart (std::map< uint32, std::multimap< uint32, ScriptInfo > > const &scripts, uint32 id, Object *source, Object *target)
 Put scripts in the execution queue. More...
 
void ScriptCommandStart (ScriptInfo const &script, uint32 delay, Object *source, Object *target)
 
void AddToActive (WorldObject *obj)
 
void RemoveFromActive (WorldObject *obj)
 
template<class T >
void SwitchGridContainers (T *obj, bool on)
 
void UpdateIteratorBack (Player *player)
 
TempSummonSummonCreature (uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, Milliseconds duration=0ms, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty, SmoothPhasingInfo const *smoothPhasingInfo=nullptr)
 
void SummonCreatureGroup (uint8 group, std::list< TempSummon * > *list=nullptr)
 
AreaTriggerGetAreaTrigger (ObjectGuid const &guid)
 
SceneObjectGetSceneObject (ObjectGuid const &guid)
 
ConversationGetConversation (ObjectGuid const &guid)
 
PlayerGetPlayer (ObjectGuid const &guid)
 
CorpseGetCorpse (ObjectGuid const &guid)
 
CreatureGetCreature (ObjectGuid const &guid)
 
DynamicObjectGetDynamicObject (ObjectGuid const &guid)
 
GameObjectGetGameObject (ObjectGuid const &guid)
 
PetGetPet (ObjectGuid const &guid)
 
TransportGetTransport (ObjectGuid const &guid)
 
CreatureGetCreatureBySpawnId (ObjectGuid::LowType spawnId) const
 
GameObjectGetGameObjectBySpawnId (ObjectGuid::LowType spawnId) const
 
AreaTriggerGetAreaTriggerBySpawnId (ObjectGuid::LowType spawnId) const
 
WorldObjectGetWorldObjectBySpawnId (SpawnObjectType type, ObjectGuid::LowType spawnId) const
 
MapStoredObjectTypesContainerGetObjectsStore ()
 
CreatureBySpawnIdContainerGetCreatureBySpawnIdStore ()
 
CreatureBySpawnIdContainer const & GetCreatureBySpawnIdStore () const
 
GameObjectBySpawnIdContainerGetGameObjectBySpawnIdStore ()
 
GameObjectBySpawnIdContainer const & GetGameObjectBySpawnIdStore () const
 
AreaTriggerBySpawnIdContainerGetAreaTriggerBySpawnIdStore ()
 
AreaTriggerBySpawnIdContainer const & GetAreaTriggerBySpawnIdStore () const
 
std::unordered_set< Corpse * > const * GetCorpsesInCell (uint32 cellId) const
 
CorpseGetCorpseByPlayer (ObjectGuid const &ownerGuid) const
 
InstanceMapToInstanceMap ()
 
InstanceMap const * ToInstanceMap () const
 
BattlegroundMapToBattlegroundMap ()
 
BattlegroundMap const * ToBattlegroundMap () const
 
bool isInLineOfSight (PhaseShift const &phaseShift, float x1, float y1, float z1, float x2, float y2, float z2, LineOfSightChecks checks, VMAP::ModelIgnoreFlags ignoreFlags) const
 
void Balance ()
 
void RemoveGameObjectModel (GameObjectModel const &model)
 
void InsertGameObjectModel (GameObjectModel const &model)
 
bool ContainsGameObjectModel (GameObjectModel const &model) const
 
float GetGameObjectFloor (PhaseShift const &phaseShift, float x, float y, float z, float maxSearchDist=DEFAULT_HEIGHT_SEARCH) const
 
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)
 
virtual ObjectGuid::LowType GetOwnerGuildId (uint32=TEAM_OTHER) const
 
time_t GetLinkedRespawnTime (ObjectGuid guid) const
 
time_t GetRespawnTime (SpawnObjectType type, ObjectGuid::LowType spawnId) const
 
time_t GetCreatureRespawnTime (ObjectGuid::LowType spawnId) const
 
time_t GetGORespawnTime (ObjectGuid::LowType spawnId) const
 
void UpdatePlayerZoneStats (uint32 oldZone, uint32 newZone)
 
void SaveRespawnTime (SpawnObjectType type, ObjectGuid::LowType spawnId, uint32 entry, time_t respawnTime, uint32 gridId, CharacterDatabaseTransaction dbTrans=nullptr, bool startup=false)
 
void SaveRespawnInfoDB (RespawnInfo const &info, CharacterDatabaseTransaction dbTrans=nullptr)
 
void LoadRespawnTimes ()
 
void DeleteRespawnTimes ()
 
void DeleteRespawnTimesInDB ()
 
void LoadCorpseData ()
 
void DeleteCorpseData ()
 
void AddCorpse (Corpse *corpse)
 
void RemoveCorpse (Corpse *corpse)
 
CorpseConvertCorpseToBones (ObjectGuid const &ownerGuid, bool insignia=false)
 
void RemoveOldCorpses ()
 
void SendInitTransports (Player *player)
 
void SendRemoveTransports (Player *player)
 
void SendUpdateTransportVisibility (Player *player)
 
void SendZoneDynamicInfo (uint32 zoneId, Player *player) const
 
void SendZoneWeather (uint32 zoneId, Player *player) const
 
void SendZoneWeather (ZoneDynamicInfo const &zoneDynamicInfo, Player *player) const
 
void SetZoneMusic (uint32 zoneId, uint32 musicId)
 
WeatherGetOrGenerateZoneDefaultWeather (uint32 zoneId)
 
WeatherState GetZoneWeather (uint32 zoneId) const
 
void SetZoneWeather (uint32 zoneId, WeatherState weatherId, float intensity)
 
void SetZoneOverrideLight (uint32 zoneId, uint32 areaLightId, uint32 overrideLightId, Milliseconds transitionTime)
 
void UpdateAreaDependentAuras ()
 
template<HighGuid high>
ObjectGuid::LowType GenerateLowGuid ()
 
template<HighGuid high>
ObjectGuid::LowType GetMaxLowGuid ()
 
void AddUpdateObject (Object *obj)
 
void RemoveUpdateObject (Object *obj)
 
size_t GetActiveNonPlayersCount () const
 
virtual std::string GetDebugInfo () const
 
void ProcessRespawns ()
 
void ApplyDynamicModeRespawnScaling (WorldObject const *obj, ObjectGuid::LowType spawnId, uint32 &respawnDelay, uint32 mode) const
 
void GetRespawnInfo (std::vector< RespawnInfo const * > &respawnData, SpawnObjectTypeMask types) const
 
void Respawn (SpawnObjectType type, ObjectGuid::LowType spawnId, CharacterDatabaseTransaction dbTrans=nullptr)
 
void RemoveRespawnTime (SpawnObjectType type, ObjectGuid::LowType spawnId, CharacterDatabaseTransaction dbTrans=nullptr, bool alwaysDeleteFromDB=false)
 
size_t DespawnAll (SpawnObjectType type, ObjectGuid::LowType spawnId)
 
bool ShouldBeSpawnedOnGridLoad (SpawnObjectType type, ObjectGuid::LowType spawnId) const
 
template<typename T >
bool ShouldBeSpawnedOnGridLoad (ObjectGuid::LowType spawnId) const
 
SpawnGroupTemplateData const * GetSpawnGroupData (uint32 groupId) const
 
bool IsSpawnGroupActive (uint32 groupId) const
 
bool SpawnGroupSpawn (uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
 
bool SpawnGroupDespawn (uint32 groupId, bool deleteRespawnTimes=false, size_t *count=nullptr)
 
void SetSpawnGroupInactive (uint32 groupId)
 
SpawnedPoolDataGetPoolData ()
 
SpawnedPoolData const & GetPoolData () const
 
void AddFarSpellCallback (FarSpellCallback &&callback)
 
void InitSpawnGroupState ()
 
void UpdateSpawnGroupConditions ()
 
MultiPersonalPhaseTrackerGetMultiPersonalPhaseTracker ()
 
void UpdatePersonalPhasesForPlayer (Player const *player)
 
int32 GetWorldStateValue (int32 worldStateId) const
 
void SetWorldStateValue (int32 worldStateId, int32 value, bool hidden)
 
WorldStateValueContainer const & GetWorldStateValues () const
 
void AddInfiniteAOIVignette (Vignettes::VignetteData *vignette)
 
void RemoveInfiniteAOIVignette (Vignettes::VignetteData *vignette)
 
std::vector< Vignettes::VignetteData * > const & GetInfiniteAOIVignettes () const
 
template<>
void AddToGrid (Creature *obj, Cell const &cell)
 
template<>
void AddToGrid (GameObject *obj, Cell const &cell)
 
template<>
void AddToGrid (DynamicObject *obj, Cell const &cell)
 
template<>
void AddToGrid (AreaTrigger *obj, Cell const &cell)
 
template<>
void AddToGrid (Corpse *obj, Cell const &cell)
 
template<>
void SwitchGridContainers (Creature *obj, bool on)
 
template<>
void DeleteFromWorld (Player *player)
 
template<>
void InitializeObject (Creature *obj)
 
template<>
void InitializeObject (GameObject *obj)
 
template<>
bool AddToMap (Transport *obj)
 
template<>
void RemoveFromMap (Transport *obj, bool remove)
 
- Public Member Functions inherited from GridRefManager< NGridType >
GridReference< NGridType > * getFirst ()
 
GridReference< NGridType > * getLast ()
 
iterator begin ()
 
iterator end ()
 
- Public Member Functions inherited from RefManager< GridRefManager< NGridType >, NGridType >
 RefManager ()
 
Reference< GridRefManager< NGridType >, NGridType > * getFirst ()
 
Reference< GridRefManager< NGridType >, NGridType > const * getFirst () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
virtual ~RefManager ()
 
void clearReferences ()
 
- Public Member Functions inherited from LinkedListHead
 LinkedListHead ()
 
bool isEmpty () const
 
LinkedListElementgetFirst ()
 
LinkedListElement const * getFirst () const
 
LinkedListElementgetLast ()
 
LinkedListElement const * getLast () const
 
void insertFirst (LinkedListElement *pElem)
 
void insertLast (LinkedListElement *pElem)
 
uint32 getSize () const
 
void incSize ()
 
void decSize ()
 

Private Attributes

ObjectGuid _owner
 
Player_loadingPlayer
 @workaround Player is not registered in ObjectAccessor during login More...
 

Additional Inherited Members

- Public Types inherited from Map
typedef MapRefManager PlayerList
 
typedef std::unordered_multimap< ObjectGuid::LowType, Creature * > CreatureBySpawnIdContainer
 
typedef std::unordered_multimap< ObjectGuid::LowType, GameObject * > GameObjectBySpawnIdContainer
 
typedef std::unordered_multimap< ObjectGuid::LowType, AreaTrigger * > AreaTriggerBySpawnIdContainer
 
typedef std::function< void(Map *)> FarSpellCallback
 
- Public Types inherited from GridRefManager< NGridType >
typedef LinkedListHead::Iterator< GridReference< NGridType > > iterator
 
- Public Types inherited from RefManager< GridRefManager< NGridType >, NGridType >
typedef LinkedListHead::Iterator< Reference< GridRefManager< NGridType >, NGridType > > iterator
 
typedef LinkedListHead::Iterator< Reference< GridRefManager< NGridType >, NGridType > const > const_iterator
 
- Public Types inherited from LinkedListHead
typedef Iterator< LinkedListElementiterator
 
- Static Public Member Functions inherited from Map
static void InitStateMachine ()
 
static void DeleteStateMachine ()
 
template<typename T >
static bool CheckGridIntegrity (T *object, bool moved, char const *objType)
 
static TransferAbortParams PlayerCannotEnter (uint32 mapid, Player *player)
 
- Public Attributes inherited from Map
std::unordered_map< ObjectGuid::LowType, CreatureGroup * > CreatureGroupHolder
 
- Protected Types inherited from Map
typedef std::set< WorldObject * > ActiveNonPlayers
 
typedef std::set< Transport * > TransportsContainer
 
virtual void LoadGridObjects (NGridType *grid, Cell const &cell)
 
- Protected Member Functions inherited from LinkedListHead
 ~LinkedListHead ()
 
- Protected Attributes inherited from Map
MapEntry const * i_mapEntry
 
Difficulty i_spawnMode
 
uint32 i_InstanceId
 
Trinity::unique_weak_ptr< Mapm_weakRef
 
uint32 m_unloadTimer
 
float m_VisibleDistance
 
DynamicMapTree _dynamicTree
 
MapRefManager m_mapRefManager
 
MapRefManager::iterator m_mapRefIter
 
int32 m_VisibilityNotifyPeriod
 
ActiveNonPlayers m_activeNonPlayers
 
ActiveNonPlayers::iterator m_activeNonPlayersIter
 
TransportsContainer _transports
 
TransportsContainer::iterator _transportsUpdateIter
 

Detailed Description

Definition at line 26 of file GarrisonMap.h.

Constructor & Destructor Documentation

◆ GarrisonMap()

GarrisonMap::GarrisonMap ( uint32  id,
time_t  expiry,
uint32  instanceId,
ObjectGuid const &  owner 
)

Definition at line 103 of file GarrisonMap.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ AddPlayerToMap()

bool GarrisonMap::AddPlayerToMap ( Player player,
bool  initPlayer = true 
)
overridevirtual

Reimplemented from Map.

Definition at line 135 of file GarrisonMap.cpp.

+ Here is the call graph for this function:

◆ GetGarrison()

Garrison * GarrisonMap::GetGarrison ( )

Definition at line 117 of file GarrisonMap.cpp.

+ Here is the call graph for this function:

◆ InitVisibilityDistance()

void GarrisonMap::InitVisibilityDistance ( )
overridevirtual

Reimplemented from Map.

Definition at line 128 of file GarrisonMap.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LoadGridObjects()

void GarrisonMap::LoadGridObjects ( NGridType grid,
Cell const &  cell 
)
overridevirtual

Reimplemented from Map.

Definition at line 109 of file GarrisonMap.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ _loadingPlayer

Player* GarrisonMap::_loadingPlayer
private

@workaround Player is not registered in ObjectAccessor during login

Definition at line 40 of file GarrisonMap.h.

◆ _owner

ObjectGuid GarrisonMap::_owner
private

Definition at line 39 of file GarrisonMap.h.


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