59 namespace Trinity {
struct ObjectUpdater; }
94 #define MAP_AREA_NO_AREA 0x0001
103 #define MAP_HEIGHT_NO_HEIGHT 0x0001
104 #define MAP_HEIGHT_AS_INT16 0x0002
105 #define MAP_HEIGHT_AS_INT8 0x0004
106 #define MAP_HEIGHT_HAS_FLIGHT_BOUNDS 0x0008
116 #define MAP_LIQUID_NO_TYPE 0x0001
117 #define MAP_LIQUID_NO_HEIGHT 0x0002
140 #define MAP_LIQUID_TYPE_NO_WATER 0x00
141 #define MAP_LIQUID_TYPE_WATER 0x01
142 #define MAP_LIQUID_TYPE_OCEAN 0x02
143 #define MAP_LIQUID_TYPE_MAGMA 0x04
144 #define MAP_LIQUID_TYPE_SLIME 0x08
146 #define MAP_ALL_LIQUIDS (MAP_LIQUID_TYPE_WATER | MAP_LIQUID_TYPE_OCEAN | MAP_LIQUID_TYPE_MAGMA | MAP_LIQUID_TYPE_SLIME)
148 #define MAP_LIQUID_TYPE_DARK_WATER 0x10
149 #define MAP_LIQUID_TYPE_WMO_WATER 0x20
194 bool loadAreaData(FILE* in,
uint32 offset,
uint32 size);
195 bool loadHeightData(FILE* in,
uint32 offset,
uint32 size);
196 bool loadLiquidData(FILE* in,
uint32 offset,
uint32 size);
199 typedef float (
GridMap::*GetHeightPtr) (
float x,
float y)
const;
201 float getHeightFromFloat(
float x,
float y)
const;
202 float getHeightFromUint16(
float x,
float y)
const;
203 float getHeightFromUint8(
float x,
float y)
const;
204 float getHeightFromFlat(
float x,
float y)
const;
209 bool loadData(
const char* filename);
212 uint16 getArea(
float x,
float y)
const;
213 inline float getHeight(
float x,
float y)
const {
return (this->*_gridGetHeight)(
x,
y);}
214 float getMinHeight(
float x,
float y)
const;
215 float getLiquidLevel(
float x,
float y)
const;
216 uint8 getTerrainType(
float x,
float y)
const;
220 #pragma pack(push, 1)
247 #define MAX_HEIGHT 100000.0f // can be use for find ground height at surface
248 #define INVALID_HEIGHT -100000.0f // for check, must be equal to VMAP_INVALID_HEIGHT, real value for unknown height is VMAP_INVALID_HEIGHT_VALUE
249 #define MAX_FALL_DISTANCE 250000.0f // "unlimited fall" to find VMap ground if it is available, just larger than MAX_HEIGHT - INVALID_HEIGHT
250 #define DEFAULT_HEIGHT_SEARCH 50.0f // default search distance to find height at nearby locations
251 #define MIN_UNLOAD_DELAY 1 // immediate unload
274 if (m_unloadTimer <= diff)
277 m_unloadTimer -= diff;
281 virtual bool AddPlayerToMap(
Player* player,
bool initPlayer =
true);
282 virtual void RemovePlayerFromMap(
Player*,
bool);
284 template<
class T>
bool AddToMap(T *);
285 template<
class T>
void RemoveFromMap(T *,
bool);
292 virtual void InitVisibilityDistance();
294 void PlayerRelocation(
Player*,
float x,
float y,
float z,
float orientation);
295 void CreatureRelocation(
Creature* creature,
float x,
float y,
float z,
float ang,
bool respawnRelocationOnFail =
true);
296 void GameObjectRelocation(
GameObject* go,
float x,
float y,
float z,
float orientation,
bool respawnRelocationOnFail =
true);
297 void DynamicObjectRelocation(
DynamicObject* go,
float x,
float y,
float z,
float orientation);
299 template<
class T,
class CONTAINER>
315 void LoadGrid(
float x,
float y);
316 bool UnloadGrid(
NGridType& ngrid,
bool pForce);
317 virtual void UnloadAll();
327 static bool ExistMap(
uint32 mapid,
int gx,
int gy);
328 static bool ExistVMap(
uint32 mapid,
int gx,
int gy);
330 static void InitStateMachine();
331 static void DeleteStateMachine();
337 float GetHeight(
float x,
float y,
float z,
bool checkVMap =
true,
float maxSearchDist =
DEFAULT_HEIGHT_SEARCH)
const;
338 float GetMinHeight(
float x,
float y)
const;
342 uint32 GetAreaId(
float x,
float y,
float z,
bool *isOutdoors)
const;
344 uint32 GetAreaId(
float x,
float y,
float z)
const;
345 uint32 GetZoneId(
float x,
float y,
float z)
const;
346 void GetZoneAndAreaId(
uint32& zoneid,
uint32& areaid,
float x,
float y,
float z)
const;
348 bool IsOutdoors(
float x,
float y,
float z)
const;
350 uint8 GetTerrainType(
float x,
float y)
const;
351 float GetWaterLevel(
float x,
float y)
const;
352 bool IsInWater(
float x,
float y,
float z,
LiquidData* data =
nullptr)
const;
353 bool IsUnderWater(
float x,
float y,
float z)
const;
355 void MoveAllCreaturesInMoveList();
356 void MoveAllGameObjectsInMoveList();
357 void MoveAllDynamicObjectsInMoveList();
358 void RemoveAllObjectsInRemoveList();
359 virtual void RemoveAllPlayers();
362 bool CreatureRespawnRelocation(
Creature* c,
bool diffGridOnly);
363 bool GameObjectRespawnRelocation(
GameObject* go,
bool diffGridOnly);
366 bool CheckGridIntegrity(
Creature* c,
bool moved)
const;
374 CANNOT_ENTER_ALREADY_IN_MAP = 1,
384 CANNOT_ENTER_UNSPECIFIED_REASON
387 const char* GetMapName()
const;
392 uint32 GetDifficultyLootBonusTreeMod()
const;
394 bool Instanceable()
const {
return i_mapEntry && i_mapEntry->Instanceable(); }
395 bool IsDungeon()
const {
return i_mapEntry && i_mapEntry->IsDungeon(); }
397 bool IsRaid()
const {
return i_mapEntry && i_mapEntry->IsRaid(); }
399 bool IsHeroic()
const;
401 bool IsBattleground()
const {
return i_mapEntry && i_mapEntry->IsBattleground(); }
402 bool IsBattleArena()
const {
return i_mapEntry && i_mapEntry->IsBattleArena(); }
404 bool IsGarrison()
const {
return i_mapEntry && i_mapEntry->IsGarrison(); }
409 return i_mapEntry->GetEntrancePos(mapid, x, y);
413 void AddObjectToSwitchList(
WorldObject* obj,
bool on);
414 virtual void DelayedUpdate(
const uint32 diff);
424 uint32 GetPlayersCountExceptGMs()
const;
425 bool ActiveObjectsNearGrid(
NGridType const& ngrid)
const;
433 PlayerList
const&
GetPlayers()
const {
return m_mapRefManager; }
436 void ScriptsStart(std::map<
uint32, std::multimap<uint32, ScriptInfo> >
const& scripts,
uint32 id,
Object* source,
Object* target);
441 void AddToActive(T* obj);
445 void RemoveFromActive(T* obj);
447 template<
class T>
void SwitchGridContainers(T* obj,
bool on);
448 template<
class NOTIFIER>
void VisitAll(
const float &
x,
const float &
y,
float radius, NOTIFIER ¬ifier);
449 template<
class NOTIFIER>
void VisitFirstFound(
const float &
x,
const float &
y,
float radius, NOTIFIER ¬ifier);
450 template<
class NOTIFIER>
void VisitWorld(
const float &
x,
const float &
y,
float radius, NOTIFIER ¬ifier);
451 template<
class NOTIFIER>
void VisitGrid(
const float &
x,
const float &
y,
float radius, NOTIFIER ¬ifier);
454 void UpdateIteratorBack(
Player* player);
457 void SummonCreatureGroup(
uint8 group, std::list<TempSummon*>* list =
NULL);
476 auto itr = _corpsesByCell.find(cellId);
477 if (itr != _corpsesByCell.end())
485 auto itr = _corpsesByPlayer.find(ownerGuid);
486 if (itr != _corpsesByPlayer.end())
501 float GetWaterOrGroundLevel(
float x,
float y,
float z,
float* ground =
NULL,
bool swim =
false)
const;
503 bool isInLineOfSight(
float x1,
float y1,
float z1,
float x2,
float y2,
float z2,
uint32 phasemask)
const;
508 bool getObjectHitPos(
uint32 phasemask,
float x1,
float y1,
float z1,
float x2,
float y2,
float z2,
float& rx,
float &ry,
float& rz,
float modifyDist);
514 time_t GetLinkedRespawnTime(
ObjectGuid guid)
const;
517 std::unordered_map<
ObjectGuid::LowType , time_t>::const_iterator itr = _creatureRespawnTimes.find(dbGuid);
518 if (itr != _creatureRespawnTimes.end())
526 std::unordered_map<
ObjectGuid::LowType , time_t>::const_iterator itr = _goRespawnTimes.find(dbGuid);
527 if (itr != _goRespawnTimes.end())
537 void LoadRespawnTimes();
538 void DeleteRespawnTimes();
540 void LoadCorpseData();
541 void DeleteCorpseData();
542 void AddCorpse(
Corpse* corpse);
543 void RemoveCorpse(
Corpse* corpse);
544 Corpse* ConvertCorpseToBones(
ObjectGuid const& ownerGuid,
bool insignia =
false);
545 void RemoveOldCorpses();
547 static void DeleteRespawnTimesInDB(
uint16 mapId,
uint32 instanceId);
549 void SendInitTransports(
Player* player);
550 void SendRemoveTransports(
Player* player);
551 void SendUpdateTransportVisibility(
Player* player, std::set<uint32>
const& previousPhases);
552 void SendZoneDynamicInfo(
Player* player);
558 void UpdateAreaDependentAuras();
560 template<HighGu
id high>
564 return GetGuidSequenceGenerator<high>().Generate();
569 _updateObjects.insert(obj);
574 _updateObjects.erase(obj);
578 void LoadMapAndVMap(
int gx,
int gy);
579 void LoadVMap(
int gx,
int gy);
580 void LoadMap(
int gx,
int gy,
bool reload =
false);
581 void LoadMMap(
int gx,
int gy);
586 void SendInitSelf(
Player* player);
588 bool CreatureCellRelocation(
Creature* creature,
Cell new_cell);
592 template<
class T>
void InitializeObject(T* obj);
593 void AddCreatureToMoveList(
Creature* c,
float x,
float y,
float z,
float ang);
594 void RemoveCreatureFromMoveList(
Creature* c);
595 void AddGameObjectToMoveList(
GameObject* go,
float x,
float y,
float z,
float ang);
596 void RemoveGameObjectFromMoveList(
GameObject* go);
597 void AddDynamicObjectToMoveList(
DynamicObject* go,
float x,
float y,
float z,
float ang);
609 bool IsGridLoaded(
const GridCoord &)
const;
610 void EnsureGridCreated(
const GridCoord &);
611 void EnsureGridCreated_i(
const GridCoord &);
612 bool EnsureGridLoaded(
Cell const&);
613 void EnsureGridLoadedForActiveObject(
Cell const&,
WorldObject*
object);
620 return i_grids[
x][
y];
627 void ScriptsProcess();
629 void UpdateActiveCells(
const float &
x,
const float &
y,
const uint32 t_diff);
631 void SendObjectUpdates();
635 virtual void LoadGridObjects(
NGridType* grid,
Cell const& cell);
679 std::bitset<TOTAL_NUMBER_OF_CELLS_PER_MAP*TOTAL_NUMBER_OF_CELLS_PER_MAP>
marked_cells;
683 void ProcessRelocationNotifies(
const uint32 diff);
695 void AddToGrid(T*
object,
Cell const& cell);
698 void DeleteFromWorld(T*);
702 m_activeNonPlayers.insert(obj);
708 if (m_activeNonPlayersIter != m_activeNonPlayers.end())
710 ActiveNonPlayers::iterator itr = m_activeNonPlayers.find(obj);
711 if (itr == m_activeNonPlayers.end())
713 if (itr == m_activeNonPlayersIter)
714 ++m_activeNonPlayersIter;
715 m_activeNonPlayers.erase(itr);
718 m_activeNonPlayers.erase(obj);
727 template<HighGu
id high>
730 auto itr = _guidGenerators.find(high);
731 if (itr == _guidGenerators.end())
766 void CreateInstanceData(
bool load);
767 bool Reset(
uint8 method);
770 void PermBindAllPlayers(
Player* source);
773 void SendResetWarnings(
uint32 timeLeft)
const;
774 void SetResetSchedule(
bool on);
778 bool HasPermBoundPlayers()
const;
779 uint32 GetMaxPlayers()
const;
780 uint32 GetMaxResetDelay()
const;
810 template<
class T,
class CONTAINER>
825 template<
class NOTIFIER>
826 inline void Map::VisitAll(
float const&
x,
float const&
y,
float radius, NOTIFIER& notifier)
833 cell.
Visit(p, world_object_notifier, *
this, radius, x, y);
835 cell.
Visit(p, grid_object_notifier, *
this, radius, x, y);
839 template<
class NOTIFIER>
847 cell.
Visit(p, world_object_notifier, *
this, radius, x, y);
848 if (!notifier.i_object)
851 cell.
Visit(p, grid_object_notifier, *
this, radius, x, y);
855 template<
class NOTIFIER>
863 cell.
Visit(p, world_object_notifier, *
this, radius, x, y);
866 template<
class NOTIFIER>
867 inline void Map::VisitGrid(
const float &
x,
const float &
y,
float radius, NOTIFIER ¬ifier)
874 cell.
Visit(p, grid_object_notifier, *
this, radius, x, y);
void SetTimer(uint32 t)
Definition: Map.h:584
float * m_V9
Definition: Map.h:163
TC_GAME_API Pet * GetPet(WorldObject const &, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:179
virtual ObjectGuid::LowType GetOwnerGuildId(uint32=TEAM_OTHER) const
Definition: Map.h:510
Definition: MapInstanced.h:28
bool IsBattlegroundOrArena() const
Definition: Map.h:403
std::vector< GameObject * > _gameObjectsToMove
Definition: Map.h:604
ScriptScheduleMap m_scriptSchedule
Definition: Map.h:691
BattlegroundMap * ToBattlegroundMap()
Definition: Map.h:498
#define MIN_GRID_DELAY
Definition: GridDefines.h:44
Difficulty
Definition: DBCEnums.h:402
uint8 GetSpawnMode() const
Definition: Map.h:369
void AddToActiveHelper(WorldObject *obj)
Definition: Map.h:700
bool IsBattleground() const
Definition: Map.h:401
bool EnsureGridLoaded(Cell const &)
Definition: Map.cpp:481
std::set< WorldObject * > i_objectsToRemove
Definition: Map.h:686
std::unordered_map< ObjectGuid, Corpse * > _corpsesByPlayer
Definition: Map.h:742
LevelRequirementVsMode
Definition: Map.h:229
float depth_level
Definition: Map.h:156
float WeatherGrade
Definition: Map.h:240
virtual void InitVisibilityDistance()
Definition: Map.cpp:253
Definition: TypeContainerVisitor.h:32
Definition: TemporarySummon.h:40
virtual void RemovePlayerFromMap(Player *, bool)
Definition: Map.cpp:872
MapEntry const * i_mapEntry
Definition: Map.h:640
float _gridIntHeightMultiplier
Definition: Map.h:176
bool isCellMarked(uint32 pCellId)
Definition: Map.h:420
bool GetEntrancePos(int32 &mapid, float &x, float &y)
Definition: Map.h:405
float m_VisibleDistance
Definition: Map.h:644
InstanceScript * i_data
Definition: Map.h:786
time_t i_gridExpiry
Definition: Map.h:671
void RemoveUpdateObject(Object *obj)
Definition: Map.h:572
std::unordered_map< uint32, ZoneDynamicInfo > ZoneDynamicInfoMap
Definition: Map.h:255
uint8 _liquidHeight
Definition: Map.h:191
uint32 CellY() const
Definition: Cell.h:75
std::map< HighGuid, std::unique_ptr< ObjectGuidGeneratorBase > > _guidGenerators
Definition: Map.h:737
std::unordered_map< ObjectGuid::LowType, time_t > _creatureRespawnTimes
Definition: Map.h:721
std::multimap< time_t, ScriptAction > ScriptScheduleMap
Definition: Map.h:690
bool IsRaid() const
Definition: Map.h:397
TransportsContainer _transports
Definition: Map.h:658
Map * m_parentMap
Definition: Map.h:675
Definition: ObjectGuid.h:372
std::unique_ptr< T > make_unique(Args &&...args)
std::make_unique implementation (TODO: remove this once C++14 is supported)
Definition: Common.h:176
Difficulty GetDifficultyID() const
Definition: Map.h:390
std::bitset< TOTAL_NUMBER_OF_CELLS_PER_MAP *TOTAL_NUMBER_OF_CELLS_PER_MAP > marked_cells
Definition: Map.h:679
uint8 _liquidOffX
Definition: Map.h:188
ScriptInfo const * script
owner of source if source is item
Definition: Map.h:66
MapRefManager PlayerList
Definition: Map.h:432
NGridType * getNGrid(uint32 x, uint32 y) const
Definition: Map.h:617
void ResetTimeTracker(time_t interval)
Definition: NGrid.h:119
Battleground * GetBG()
Definition: Map.h:804
std::unordered_map< uint32, std::unordered_set< Corpse * > > _corpsesByCell
Definition: Map.h:741
bool IsGarrison() const
Definition: Map.h:404
ObjectGuid ownerGUID
Definition: Map.h:65
GridCoord ComputeGridCoord(float x, float y)
Definition: GridDefines.h:188
CellCoord ComputeCellCoord(float x, float y)
Definition: GridDefines.h:193
std::map< WorldObject *, bool > i_objectsToSwitch
Definition: Map.h:687
void SetBG(Battleground *bg)
Definition: Map.h:805
int16 * _minHeight
Definition: Map.h:173
TC_GAME_API DynamicObject * GetDynamicObject(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:153
#define UI64LIT(N)
Definition: Define.h:138
uint16 _gridArea
Definition: Map.h:186
Definition: DBCStructure.h:830
void RemoveGameObjectModel(const GameObjectModel &model)
Definition: Map.h:505
#define MAX_NUMBER_OF_GRIDS
Definition: GridDefines.h:37
arena_t NULL
Definition: jemalloc_internal.h:624
GetHeightPtr _gridGetHeight
Definition: Map.h:200
TransportsContainer::iterator _transportsUpdateIter
Definition: Map.h:659
Definition: ObjectGuid.h:357
Definition: Transport.h:28
bool Is25ManRaid() const
Definition: Map.h:400
bool IsDungeon() const
Definition: Map.h:395
MapInstanced const * ToMapInstanced() const
Definition: Map.h:493
Definition: ObjectMgr.h:182
void SetUnloadReferenceLock(const GridCoord &p, bool on)
Definition: Map.h:634
void SetNoCreate()
Definition: Cell.h:79
void RemoveWorldObject(WorldObject *obj)
Definition: Map.h:428
Definition: Creature.h:467
uint32 y_coord
Definition: GridDefines.h:156
ZoneDynamicInfo()
Definition: Map.cpp:55
bool ContainsGameObjectModel(const GameObjectModel &model) const
Definition: Map.h:507
bool IsGridLoaded(float x, float y) const
Definition: Map.h:308
uint32 x_coord
Definition: GridDefines.h:155
uint64 LowType
Definition: ObjectGuid.h:199
Battleground * m_bg
Definition: Map.h:807
uint8 i_spawnMode
Definition: Map.h:641
#define DEFAULT_HEIGHT_SEARCH
Definition: Map.h:250
uint32 i_script_id
Definition: Map.h:787
TypeUnorderedMapContainer< AllMapStoredObjectTypes, ObjectGuid > MapStoredObjectTypesContainer
Definition: Map.h:257
ActiveNonPlayers m_activeNonPlayers
Definition: Map.h:653
bool i_scriptLock
Definition: Map.h:685
time_t GetGORespawnTime(ObjectGuid::LowType dbGuid) const
Definition: Map.h:524
Definition: DynamicTree.h:34
char asChar[4]
Definition: Map.h:72
uint16 * _areaMap
Definition: Map.h:179
TC_GAME_API Transport * GetTransport(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:148
bool CanUnload(uint32 diff)
Definition: Map.h:269
void RemoveFromActiveHelper(WorldObject *obj)
Definition: Map.h:705
uint32 MusicId
Definition: Map.h:238
ObjectGuidGeneratorBase & GetGuidSequenceGenerator()
Definition: Map.h:728
TC_GAME_API AreaTrigger * GetAreaTrigger(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:158
uint32 asUInt
Non-null terminated string
Definition: Map.h:73
std::vector< DynamicObject * > _dynamicObjectsToMove
Definition: Map.h:607
bool _gameObjectsToMoveLock
Definition: Map.h:603
uint8 * m_uint8_V8
Definition: Map.h:170
Definition: DynamicObject.h:35
uint32 GetId(void) const
Definition: Map.h:325
float * m_V8
Definition: Map.h:168
Corpse * GetCorpseByPlayer(ObjectGuid const &ownerGuid) const
Definition: Map.h:483
uint32 LightFadeInTime
Definition: Map.h:242
bool isGridObjectDataLoaded(uint32 x, uint32 y) const
Definition: Map.h:623
Definition: ObjectGuid.h:114
ZoneDynamicInfoMap _zoneDynamicInfo
Definition: Map.h:724
void markCell(uint32 pCellId)
Definition: Map.h:421
bool m_resetAfterUnload
Definition: Map.h:784
uint8 * m_uint8_V9
Definition: Map.h:165
Definition: CreatureGroups.h:56
void resetMarkedCells()
Definition: Map.h:419
uint32 m_unloadTimer
Definition: Map.h:643
BattlegroundMap const * ToBattlegroundMap() const
Definition: Map.h:499
Definition: GridReference.h:25
void VisitFirstFound(const float &x, const float &y, float radius, NOTIFIER ¬ifier)
Definition: Map.h:840
uint32 Parent
Definition: Map.h:224
void VisitGrid(const uint32 x, const uint32 y, TypeContainerVisitor< T, TypeMapContainer< TT > > &visitor)
Definition: NGrid.h:155
std::unordered_multimap< ObjectGuid::LowType, Creature * > CreatureBySpawnIdContainer
Definition: Map.h:468
float getHeight(float x, float y) const
Definition: Map.h:213
uint16 _liquidType
Definition: Map.h:187
std::set< WorldObject * > ActiveNonPlayers
Definition: Map.h:652
G3D::int16 z
Definition: Vector3int16.h:46
uint32 CellX() const
Definition: Cell.h:74
std::unordered_set< Corpse * > _corpseBones
Definition: Map.h:743
std::map< ObjectGuid::LowType, CreatureGroup * > CreatureGroupHolderType
Definition: Map.h:253
float level
Definition: Map.h:155
CreatureGroupHolderType CreatureGroupHolder
Definition: Map.h:452
uint8 _liquidOffY
Definition: Map.h:189
InstanceMap * ToInstanceMap()
Definition: Map.h:495
int32_t int32
Definition: Define.h:146
ObjectGuid targetGUID
Definition: Map.h:64
CreatureBySpawnIdContainer _creatureBySpawnIdStore
Definition: Map.h:739
uint32_t uint32
Definition: Define.h:150
TC_GAME_API Corpse * GetCorpse(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:138
MapEntry const * GetEntry() const
Definition: Map.h:266
G3D::int16 y
Definition: Vector2int16.h:38
uint16_t uint16
Definition: Define.h:151
ZLiquidStatus
Definition: Map.h:131
Definition: GridDefines.h:89
Definition: DBCEnums.h:408
Definition: GameObject.h:880
uint32 GridY() const
Definition: Cell.h:77
void SetUnloadLock(const GridCoord &p, bool on)
Definition: Map.h:314
uint32 type_flags
Definition: Map.h:153
float _gridHeight
Definition: Map.h:175
bool HavePlayers() const
Definition: Map.h:423
std::set< Transport * > TransportsContainer
Definition: Map.h:657
std::unordered_map< ObjectGuid::LowType, time_t > _goRespawnTimes
Definition: Map.h:722
MapStoredObjectTypesContainer & GetObjectsStore()
Definition: Map.h:466
Definition: DBCEnums.h:410
void VisitAll(const float &x, const float &y, float radius, NOTIFIER ¬ifier)
Definition: Map.h:826
uint16 * m_uint16_V8
Definition: Map.h:169
std::set< WorldObject * > i_worldObjects
Definition: Map.h:688
virtual void Update(const uint32)
Definition: Map.cpp:682
uint32 entry
Definition: Map.h:154
Definition: InstanceSaveMgr.h:44
void Balance()
Definition: Map.h:504
float GetVisibilityRange() const
Definition: Map.h:290
bool IsNonRaidDungeon() const
Definition: Map.h:396
ObjectGuid sourceGUID
Definition: Map.h:63
bool _dynamicObjectsToMoveLock
Definition: Map.h:606
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
uint32 ScriptId
Definition: Map.h:225
virtual void RemoveAllPlayers()
Definition: Map.cpp:1597
bool AllowMount
Definition: Map.h:226
DynamicMapTree _dynamicTree
Definition: Map.h:645
void buildNGridLinkage(NGridType *pNGridType)
Definition: Map.h:615
Definition: SharedDefines.h:1006
std::mutex _mapLock
Definition: Map.h:637
PlayerList const & GetPlayers() const
Definition: Map.h:433
Definition: GameObjectModel.h:50
virtual void UnloadAll()
Definition: Map.cpp:1614
InstanceScript * GetInstanceScript()
Definition: Map.h:769
Definition: MapRefManager.h:26
ActiveNonPlayers::iterator m_activeNonPlayersIter
Definition: Map.h:654
void Visit(const Cell &cell, TypeContainerVisitor< T, CONTAINER > &visitor)
Definition: Map.h:811
int32 m_VisibilityNotifyPeriod
Definition: Map.h:650
Definition: DBCStructure.h:885
uint16 * m_uint16_V9
Definition: Map.h:164
#define TC_GAME_API
Definition: Define.h:134
InstanceMap const * ToInstanceMap() const
Definition: Map.h:496
std::unordered_set< Object * > _updateObjects
Definition: Map.h:745
uint32 i_InstanceId
Definition: Map.h:642
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:143
uint32 GetScriptId() const
Definition: Map.h:768
InstanceResetMethod
Definition: Map.h:748
CreatureBySpawnIdContainer & GetCreatureBySpawnIdStore()
Definition: Map.h:469
GameObjectBySpawnIdContainer & GetGameObjectBySpawnIdStore()
Definition: Map.h:472
Definition: InstanceScript.h:141
uint8_t uint8
Definition: Define.h:152
Definition: Position.h:27
void link(GridRefManager< NGrid< N, ACTIVE_OBJECT, WORLD_OBJECT_TYPES, GRID_OBJECT_TYPES > > *pTo)
Definition: NGrid.h:105
bool NoCreate() const
Definition: Cell.h:78
#define ASSERT
Definition: Errors.h:55
bool Instanceable() const
Definition: Map.h:394
uint32 _flags
Definition: Map.h:161
bool IsBattleArena() const
Definition: Map.h:402
void VisitWorld(const float &x, const float &y, float radius, NOTIFIER ¬ifier)
Definition: Map.h:856
Definition: Battleground.h:235
EnterState
Definition: Map.h:371
bool GetUnloadLock(const GridCoord &p) const
Definition: Map.h:313
int16_t int16
Definition: Define.h:147
float _liquidLevel
Definition: Map.h:182
Definition: ObjectGuid.h:189
void setGridObjectDataLoaded(bool pLoaded, uint32 x, uint32 y)
Definition: Map.h:624
uint32_t uint32
Definition: g3dmath.h:168
#define const
Definition: zconf.h:217
MapInstanced * ToMapInstanced()
Definition: Map.h:492
void AddWorldObject(WorldObject *obj)
Definition: Map.h:427
G3D::int16 x
Definition: Vector2int16.h:37
uint32 OverrideLightId
Definition: Map.h:241
ObjectGuid::LowType GenerateLowGuid()
Definition: Map.h:561
GameObjectBySpawnIdContainer _gameobjectBySpawnIdStore
Definition: Map.h:740
bool IsRemovalGrid(float x, float y) const
Definition: Map.h:302
MapRefManager::iterator m_mapRefIter
Definition: Map.h:648
virtual bool AddPlayerToMap(Player *player, bool initPlayer=true)
Definition: Map.cpp:513
bool IsRaidOrHeroicDungeon() const
Definition: Map.h:398
void VisitGrid(const float &x, const float &y, float radius, NOTIFIER ¬ifier)
Definition: Map.h:867
MapStoredObjectTypesContainer _objectsStore
Definition: Map.h:738
virtual EnterState CannotEnter(Player *)
Definition: Map.h:386
std::mutex _gridLock
Definition: Map.h:638
time_t GetGridExpiry(void) const
Definition: Map.h:324
std::unordered_multimap< ObjectGuid::LowType, GameObject * > GameObjectBySpawnIdContainer
Definition: Map.h:471
Represents a map magic value of 4 bytes (used in versions)
Definition: Map.h:70
time_t GetCreatureRespawnTime(ObjectGuid::LowType dbGuid) const
Definition: Map.h:515
void ResetGridExpiry(NGridType &grid, float factor=1) const
Definition: Map.h:319
std::unordered_set< Corpse * > const * GetCorpsesInCell(uint32 cellId) const
Definition: Map.h:474
bool m_unloadWhenEmpty
Definition: Map.h:785
Map const * GetParent() const
Definition: Map.h:333
std::vector< Creature * > _creaturesToMove
Definition: Map.h:601
MapRefManager m_mapRefManager
Definition: Map.h:647
void InsertGameObjectModel(const GameObjectModel &model)
Definition: Map.h:506
uint32 GetInstanceId() const
Definition: Map.h:368
void Visit(CellCoord const &, TypeContainerVisitor< T, CONTAINER > &visitor, Map &, WorldObject const &, float) const
Definition: CellImpl.h:122
Definition: WorldPacket.h:26
WeatherState
Definition: Weather.h:46
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
Definition: GridDefines.h:171
void AddUpdateObject(Object *obj)
Definition: Map.h:567
WeatherState WeatherId
Definition: Map.h:239
uint8 _liquidWidth
Definition: Map.h:190
void Update(uint32 diff)
Definition: WeatherMgr.cpp:150
uint32 _defaultLight
Definition: Map.h:725
uint32 GridX() const
Definition: Cell.h:76
Definition: AreaTrigger.h:26
bool _creatureToMoveLock
Definition: Map.h:600
uint8 * _liquidFlags
Definition: Map.h:184
uint16 * _liquidEntry
Definition: Map.h:183
Definition: DBCStructure.h:1242
float * _liquidMap
Definition: Map.h:185
int16 * _maxHeight
Definition: Map.h:172
Definition: MapReference.h:25