TrinityCore
Loading...
Searching...
No Matches
ObjectGridLoader.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef TRINITY_OBJECT_GRID_LOADER_H
19
#define TRINITY_OBJECT_GRID_LOADER_H
20
21
#include "
Define.h
"
22
#include "
GridDefines.h
"
23
#include "
ObjectGuid.h
"
24
25
class
Map
;
26
class
ObjectGuid
;
27
28
class
TC_GAME_API
ObjectGridLoaderBase
29
{
30
public
:
31
ObjectGridLoaderBase
(
NGridType
& grid,
Map
* map)
32
: i_grid(grid), i_map(map), i_gameObjects(0), i_creatures(0), i_corpses(0), i_areaTriggers(0)
33
{ }
34
35
uint32
GetLoadedCreatures
()
const
{
return
i_creatures; }
36
uint32
GetLoadedGameObjects
()
const
{
return
i_gameObjects; }
37
uint32
GetLoadedCorpses
()
const
{
return
i_corpses; }
38
uint32
GetLoadedAreaTriggers
()
const
{
return
i_areaTriggers; }
39
40
template
<
typename
T>
41
static
void
AddToMap(T* obj,
Map
* map,
uint32
& objectCount);
42
43
protected
:
44
NGridType
&
i_grid
;
45
Map
*
i_map
;
46
uint32
i_gameObjects
;
47
uint32
i_creatures
;
48
uint32
i_corpses
;
49
uint32
i_areaTriggers
;
50
};
51
52
class
TC_GAME_API
ObjectGridLoader
:
public
ObjectGridLoaderBase
53
{
54
public
:
55
ObjectGridLoader
(
NGridType
& grid,
Map
* map)
56
:
ObjectGridLoaderBase
(grid, map)
57
{ }
58
59
void
LoadN();
60
};
61
62
class
TC_GAME_API
PersonalPhaseGridLoader
:
public
ObjectGridLoaderBase
63
{
64
public
:
65
PersonalPhaseGridLoader
(
NGridType
& grid,
Map
* map,
ObjectGuid
const
& phaseOwner)
66
:
ObjectGridLoaderBase
(grid, map), _phaseOwner(phaseOwner)
67
{ }
68
69
void
Load(
uint32
phaseId);
70
71
private
:
72
ObjectGuid
_phaseOwner
;
73
};
74
75
//Stop the creatures before unloading the NGrid
76
class
TC_GAME_API
ObjectGridStoper
77
{
78
public
:
79
void
Visit(
CreatureMapType
&m);
80
template
<
class
T>
void
Visit
(
GridRefManager<T>
&) { }
81
};
82
83
//Move the foreign creatures back to respawn positions before unloading the NGrid
84
class
TC_GAME_API
ObjectGridEvacuator
85
{
86
public
:
87
void
Visit(
CreatureMapType
&m);
88
void
Visit(
GameObjectMapType
&m);
89
template
<
class
T>
void
Visit
(
GridRefManager<T>
&) { }
90
};
91
92
//Clean up and remove from world
93
class
ObjectGridCleaner
94
{
95
public
:
96
template
<
class
T>
void
Visit
(
GridRefManager<T>
&);
97
};
98
99
//Delete objects before deleting NGrid
100
class
ObjectGridUnloader
101
{
102
public
:
103
void
Visit
(
CorpseMapType
&
/*m*/
) { }
// corpses are deleted with Map
104
template
<
class
T>
void
Visit
(
GridRefManager<T>
&m);
105
};
106
#endif
Define.h
TC_GAME_API
#define TC_GAME_API
Definition
Define.h:129
uint32
uint32_t uint32
Definition
Define.h:154
GridDefines.h
ObjectGuid.h
GridRefManager< Creature >
Map
Definition
Map.h:227
NGrid
Definition
NGrid.h:70
ObjectGridCleaner
Definition
ObjectGridLoader.h:94
ObjectGridCleaner::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.cpp:166
ObjectGridEvacuator
Definition
ObjectGridLoader.h:85
ObjectGridEvacuator::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.h:89
ObjectGridLoaderBase
Definition
ObjectGridLoader.h:29
ObjectGridLoaderBase::GetLoadedAreaTriggers
uint32 GetLoadedAreaTriggers() const
Definition
ObjectGridLoader.h:38
ObjectGridLoaderBase::GetLoadedCorpses
uint32 GetLoadedCorpses() const
Definition
ObjectGridLoader.h:37
ObjectGridLoaderBase::i_creatures
uint32 i_creatures
Definition
ObjectGridLoader.h:47
ObjectGridLoaderBase::i_grid
NGridType & i_grid
Definition
ObjectGridLoader.h:44
ObjectGridLoaderBase::i_areaTriggers
uint32 i_areaTriggers
Definition
ObjectGridLoader.h:49
ObjectGridLoaderBase::GetLoadedCreatures
uint32 GetLoadedCreatures() const
Definition
ObjectGridLoader.h:35
ObjectGridLoaderBase::i_corpses
uint32 i_corpses
Definition
ObjectGridLoader.h:48
ObjectGridLoaderBase::ObjectGridLoaderBase
ObjectGridLoaderBase(NGridType &grid, Map *map)
Definition
ObjectGridLoader.h:31
ObjectGridLoaderBase::i_gameObjects
uint32 i_gameObjects
Definition
ObjectGridLoader.h:46
ObjectGridLoaderBase::i_map
Map * i_map
Definition
ObjectGridLoader.h:45
ObjectGridLoaderBase::GetLoadedGameObjects
uint32 GetLoadedGameObjects() const
Definition
ObjectGridLoader.h:36
ObjectGridLoader
Definition
ObjectGridLoader.h:53
ObjectGridLoader::ObjectGridLoader
ObjectGridLoader(NGridType &grid, Map *map)
Definition
ObjectGridLoader.h:55
ObjectGridStoper
Definition
ObjectGridLoader.h:77
ObjectGridStoper::Visit
void Visit(GridRefManager< T > &)
Definition
ObjectGridLoader.h:80
ObjectGridUnloader
Definition
ObjectGridLoader.h:101
ObjectGridUnloader::Visit
void Visit(CorpseMapType &)
Definition
ObjectGridLoader.h:103
ObjectGuid
Definition
ObjectGuid.h:308
PersonalPhaseGridLoader
Definition
ObjectGridLoader.h:63
PersonalPhaseGridLoader::_phaseOwner
ObjectGuid _phaseOwner
Definition
ObjectGridLoader.h:72
PersonalPhaseGridLoader::PersonalPhaseGridLoader
PersonalPhaseGridLoader(NGridType &grid, Map *map, ObjectGuid const &phaseOwner)
Definition
ObjectGridLoader.h:65
server
game
Grids
ObjectGridLoader.h
Generated by
1.9.8