Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectGridLoader.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_OBJECTGRIDLOADER_H
7
#define SKYFIRE_OBJECTGRIDLOADER_H
8
9
#include "
Cell.h
"
10
#include "
Define.h
"
11
#include "
GridDefines.h
"
12
#include "
GridLoader.h
"
13
#include "
TypeList.h
"
14
15
class
ObjectWorldLoader
;
16
17
class
ObjectGridLoader
18
{
19
friend
class
ObjectWorldLoader
;
20
21
public
:
22
ObjectGridLoader
(
NGridType
& grid,
Map
* map,
const
Cell
& cell)
23
:
i_cell
(cell),
i_grid
(grid),
i_map
(map),
i_gameObjects
(0),
i_creatures
(0),
i_corpses
(0)
24
{ }
25
26
void
Visit
(
GameObjectMapType
& m);
27
void
Visit
(
CreatureMapType
& m);
28
void
Visit
(
CorpseMapType
&)
const
{ }
29
void
Visit
(
DynamicObjectMapType
&)
const
{ }
30
void
Visit
(
AreaTriggerMapType
&)
const
{ }
31
32
void
LoadN
(
void
);
33
34
template
<
class
T>
static
void
SetObjectCell
(T* obj,
CellCoord
const
& cellCoord);
35
36
private
:
37
Cell
i_cell
;
38
NGridType
&
i_grid
;
39
Map
*
i_map
;
40
uint32
i_gameObjects
;
41
uint32
i_creatures
;
42
uint32
i_corpses
;
43
};
44
45
//Stop the creatures before unloading the NGrid
46
class
ObjectGridStoper
47
{
48
public
:
49
void
Visit
(
CreatureMapType
& m);
50
template
<
class
T>
void
Visit
(
GridRefManager<T>
&) { }
51
};
52
53
//Move the foreign creatures back to respawn positions before unloading the NGrid
54
class
ObjectGridEvacuator
55
{
56
public
:
57
void
Visit
(
CreatureMapType
& m);
58
void
Visit
(
GameObjectMapType
& m);
59
template
<
class
T>
void
Visit
(
GridRefManager<T>
&) { }
60
};
61
62
//Clean up and remove from world
63
class
ObjectGridCleaner
64
{
65
public
:
66
template
<
class
T>
void
Visit
(
GridRefManager<T>
&);
67
};
68
69
//Delete objects before deleting NGrid
70
class
ObjectGridUnloader
71
{
72
public
:
73
template
<
class
T>
void
Visit
(
GridRefManager<T>
& m);
74
};
75
#endif
Cell.h
Define.h
uint32
std::uint32_t uint32
Definition
Define.h:77
GridDefines.h
CorpseMapType
GridRefManager< Corpse > CorpseMapType
Definition
GridDefines.h:50
DynamicObjectMapType
GridRefManager< DynamicObject > DynamicObjectMapType
Definition
GridDefines.h:52
CreatureMapType
GridRefManager< Creature > CreatureMapType
Definition
GridDefines.h:51
AreaTriggerMapType
GridRefManager< AreaTrigger > AreaTriggerMapType
Definition
GridDefines.h:55
CellCoord
CoordPair< TOTAL_NUMBER_OF_CELLS_PER_MAP > CellCoord
Definition
GridDefines.h:158
GameObjectMapType
GridRefManager< GameObject > GameObjectMapType
Definition
GridDefines.h:53
NGridType
NGrid< MAX_NUMBER_OF_CELLS, Player, AllWorldObjectTypes, AllGridObjectTypes > NGridType
Definition
GridDefines.h:69
GridLoader.h
TypeList.h
GridRefManager
Definition
GridRefManager.h:16
Map
Definition
Map.h:238
ObjectGridCleaner
Definition
ObjectGridLoader.h:64
ObjectGridCleaner::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.cpp:239
ObjectGridEvacuator
Definition
ObjectGridLoader.h:55
ObjectGridEvacuator::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.h:59
ObjectGridEvacuator::Visit
void Visit(CreatureMapType &m)
Definition
ObjectGridLoader.cpp:19
ObjectGridLoader::i_cell
Cell i_cell
Definition
ObjectGridLoader.h:37
ObjectGridLoader::i_creatures
uint32 i_creatures
Definition
ObjectGridLoader.h:41
ObjectGridLoader::i_map
Map * i_map
Definition
ObjectGridLoader.h:39
ObjectGridLoader::i_corpses
uint32 i_corpses
Definition
ObjectGridLoader.h:42
ObjectGridLoader::SetObjectCell
static void SetObjectCell(T *obj, CellCoord const &cellCoord)
Definition
ObjectGridLoader.cpp:68
ObjectGridLoader::i_gameObjects
uint32 i_gameObjects
Definition
ObjectGridLoader.h:40
ObjectGridLoader::Visit
void Visit(GameObjectMapType &m)
Definition
ObjectGridLoader.cpp:153
ObjectGridLoader::LoadN
void LoadN(void)
Definition
ObjectGridLoader.cpp:175
ObjectGridLoader::Visit
void Visit(CorpseMapType &) const
Definition
ObjectGridLoader.h:28
ObjectGridLoader::ObjectWorldLoader
friend class ObjectWorldLoader
Definition
ObjectGridLoader.h:19
ObjectGridLoader::ObjectGridLoader
ObjectGridLoader(NGridType &grid, Map *map, const Cell &cell)
Definition
ObjectGridLoader.h:22
ObjectGridLoader::Visit
void Visit(DynamicObjectMapType &) const
Definition
ObjectGridLoader.h:29
ObjectGridLoader::Visit
void Visit(AreaTriggerMapType &) const
Definition
ObjectGridLoader.h:30
ObjectGridLoader::i_grid
NGridType & i_grid
Definition
ObjectGridLoader.h:38
ObjectGridStoper
Definition
ObjectGridLoader.h:47
ObjectGridStoper::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.h:50
ObjectGridStoper::Visit
void Visit(CreatureMapType &m)
Definition
ObjectGridLoader.cpp:223
ObjectGridUnloader
Definition
ObjectGridLoader.h:71
ObjectGridUnloader::Visit
void Visit(GridRefManager< T > &m)
Definition
ObjectGridLoader.cpp:205
ObjectWorldLoader
Definition
ObjectGridLoader.cpp:51
Cell
Definition
Cell.h:37
src
server
game
Grids
ObjectGridLoader.h
Generated on
for Project SkyFire Core by
1.17.0