Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
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
13
class
MapInstanced
:
public
Map
14
{
15
friend
class
MapManager
;
16
public
:
17
typedef
UNORDERED_MAP< uint32, Map*>
InstancedMaps
;
18
19
MapInstanced
(
uint32
id
, time_t expiry);
20
~MapInstanced
() { }
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
37
void
AddGridMapReference
(
const
GridCoord
& p)
38
{
39
++
GridMapReference
[p.
x_coord
][p.
y_coord
];
40
SetUnloadReferenceLock
(
GridCoord
(63 - p.
x_coord
, 63 - p.
y_coord
),
true
);
41
}
42
43
void
RemoveGridMapReference
(
GridCoord
const
& p)
44
{
45
--
GridMapReference
[p.
x_coord
][p.
y_coord
];
46
if
(!
GridMapReference
[p.
x_coord
][p.
y_coord
])
47
SetUnloadReferenceLock
(
GridCoord
(63 - p.
x_coord
, 63 - p.
y_coord
),
false
);
48
}
49
50
InstancedMaps
&
GetInstancedMaps
() {
return
m_InstancedMaps
; }
51
virtual
void
InitVisibilityDistance
()
OVERRIDE
;
52
53
private:
54
InstanceMap
*
CreateInstance
(
uint32
InstanceId,
InstanceSave
* save,
DifficultyID
difficulty);
55
BattlegroundMap
*
CreateBattleground
(
uint32
InstanceId,
Battleground
* bg);
56
57
InstancedMaps
m_InstancedMaps
;
58
59
uint16
GridMapReference
[
MAX_NUMBER_OF_GRIDS
][
MAX_NUMBER_OF_GRIDS
];
60
};
61
#endif
DBCEnums.h
DifficultyID
DifficultyID
Definition
DBCEnums.h:330
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
uint16
std::uint16_t uint16
Definition
Define.h:78
GridCoord
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
Definition
GridDefines.h:157
MAX_NUMBER_OF_GRIDS
#define MAX_NUMBER_OF_GRIDS
Definition
GridDefines.h:24
InstanceSaveMgr.h
Map.h
UNORDERED_MAP
#define UNORDERED_MAP
Definition
UnorderedMap.h:58
Battleground
Definition
Battleground.h:275
BattlegroundMap
Definition
Map.h:666
InstanceMap
Definition
Map.h:637
InstanceSave
Definition
InstanceSaveMgr.h:32
Map
Definition
Map.h:238
Map::Map
Map(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode, Map *_parent=NULL)
Definition
Map.cpp:222
Map::SetUnloadReferenceLock
void SetUnloadReferenceLock(const GridCoord &p, bool on)
Definition
Map.h:536
MapInstanced::CreateInstance
InstanceMap * CreateInstance(uint32 InstanceId, InstanceSave *save, DifficultyID difficulty)
Definition
MapInstanced.cpp:179
MapInstanced::AddGridMapReference
void AddGridMapReference(const GridCoord &p)
Definition
MapInstanced.h:37
MapInstanced::~MapInstanced
~MapInstanced()
Definition
MapInstanced.h:20
MapInstanced::MapManager
friend class MapManager
Definition
MapInstanced.h:15
MapInstanced::m_InstancedMaps
InstancedMaps m_InstancedMaps
Definition
MapInstanced.h:57
MapInstanced::DelayedUpdate
void DelayedUpdate(const uint32 diff) OVERRIDE
Definition
MapInstanced.cpp:64
MapInstanced::Update
void Update(const uint32) OVERRIDE
Definition
MapInstanced.cpp:35
MapInstanced::FindInstanceMap
Map * FindInstanceMap(uint32 instanceId) const
Definition
MapInstanced.h:30
MapInstanced::GridMapReference
uint16 GridMapReference[MAX_NUMBER_OF_GRIDS][MAX_NUMBER_OF_GRIDS]
Definition
MapInstanced.h:59
MapInstanced::CanEnter
bool CanEnter(Player *player) OVERRIDE
Definition
MapInstanced.cpp:274
MapInstanced::MapInstanced
MapInstanced(uint32 id, time_t expiry)
Definition
MapInstanced.cpp:18
MapInstanced::CreateInstanceForPlayer
Map * CreateInstanceForPlayer(const uint32 mapId, Player *player)
Definition
MapInstanced.cpp:101
MapInstanced::RemoveGridMapReference
void RemoveGridMapReference(GridCoord const &p)
Definition
MapInstanced.h:43
MapInstanced::DestroyInstance
bool DestroyInstance(InstancedMaps::iterator &itr)
Definition
MapInstanced.cpp:243
MapInstanced::UnloadAll
void UnloadAll() OVERRIDE
Definition
MapInstanced.cpp:80
MapInstanced::CreateBattleground
BattlegroundMap * CreateBattleground(uint32 InstanceId, Battleground *bg)
Definition
MapInstanced.cpp:216
MapInstanced::InitVisibilityDistance
virtual void InitVisibilityDistance() OVERRIDE
Definition
MapInstanced.cpp:24
MapInstanced::InstancedMaps
UNORDERED_MAP< uint32, Map * > InstancedMaps
Definition
MapInstanced.h:17
MapInstanced::GetInstancedMaps
InstancedMaps & GetInstancedMaps()
Definition
MapInstanced.h:50
Player
Definition
Player.h:1289
CoordPair::x_coord
uint32 x_coord
Definition
GridDefines.h:141
CoordPair::y_coord
uint32 y_coord
Definition
GridDefines.h:142
src
server
game
Maps
MapInstanced.h
Generated on
for Project SkyFire Core by
1.17.0