Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
MapInstanced.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRE_MAP_INSTANCED_H
7#define SKYFIRE_MAP_INSTANCED_H
8
9#include "DBCEnums.h"
10#include "InstanceSaveMgr.h"
11#include "Map.h"
12
13class MapInstanced : public Map
14{
15 friend class MapManager;
16public:
18
19 MapInstanced(uint32 id, time_t expiry);
21
22 // functions overwrite Map versions
23 void Update(const uint32) OVERRIDE;
24 void DelayedUpdate(const uint32 diff) OVERRIDE;
25 //void RelocationNotify();
26 void UnloadAll() OVERRIDE;
27 bool CanEnter(Player* player) OVERRIDE;
28
29 Map* CreateInstanceForPlayer(const uint32 mapId, Player* player);
30 Map* FindInstanceMap(uint32 instanceId) const
31 {
32 InstancedMaps::const_iterator i = m_InstancedMaps.find(instanceId);
33 return (i == m_InstancedMaps.end() ? NULL : i->second);
34 }
35 bool DestroyInstance(InstancedMaps::iterator& itr);
36
38 {
40 SetUnloadReferenceLock(GridCoord(63 - p.x_coord, 63 - p.y_coord), true);
41 }
42
44 {
47 SetUnloadReferenceLock(GridCoord(63 - p.x_coord, 63 - p.y_coord), false);
48 }
49
51 virtual void InitVisibilityDistance() OVERRIDE;
52
53private:
54 InstanceMap* CreateInstance(uint32 InstanceId, InstanceSave* save, DifficultyID difficulty);
56
58
60};
61#endif
DifficultyID
Definition DBCEnums.h:330
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint16_t uint16
Definition Define.h:78
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
#define MAX_NUMBER_OF_GRIDS
Definition GridDefines.h:24
#define UNORDERED_MAP
Definition Map.h:238
Map(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode, Map *_parent=NULL)
Definition Map.cpp:222
void SetUnloadReferenceLock(const GridCoord &p, bool on)
Definition Map.h:536
InstanceMap * CreateInstance(uint32 InstanceId, InstanceSave *save, DifficultyID difficulty)
void AddGridMapReference(const GridCoord &p)
friend class MapManager
InstancedMaps m_InstancedMaps
void DelayedUpdate(const uint32 diff) OVERRIDE
void Update(const uint32) OVERRIDE
Map * FindInstanceMap(uint32 instanceId) const
uint16 GridMapReference[MAX_NUMBER_OF_GRIDS][MAX_NUMBER_OF_GRIDS]
bool CanEnter(Player *player) OVERRIDE
MapInstanced(uint32 id, time_t expiry)
Map * CreateInstanceForPlayer(const uint32 mapId, Player *player)
void RemoveGridMapReference(GridCoord const &p)
bool DestroyInstance(InstancedMaps::iterator &itr)
void UnloadAll() OVERRIDE
BattlegroundMap * CreateBattleground(uint32 InstanceId, Battleground *bg)
virtual void InitVisibilityDistance() OVERRIDE
UNORDERED_MAP< uint32, Map * > InstancedMaps
InstancedMaps & GetInstancedMaps()
uint32 x_coord
uint32 y_coord