aboutsummaryrefslogtreecommitdiff
path: root/src/game/ObjectGridLoader.h
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-17 15:51:44 -0700
committermaximius <none@none>2009-10-17 15:51:44 -0700
commite585187b248f48b3c6e9247b49fa07c6565d65e5 (patch)
tree637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /src/game/ObjectGridLoader.h
parent26b5e033ffde3d161382fc9addbfa99738379641 (diff)
*Backed out changeset 3be01fb200a5
--HG-- branch : trunk
Diffstat (limited to 'src/game/ObjectGridLoader.h')
-rw-r--r--src/game/ObjectGridLoader.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/game/ObjectGridLoader.h b/src/game/ObjectGridLoader.h
index f4d6eea1967..768f1f994db 100644
--- a/src/game/ObjectGridLoader.h
+++ b/src/game/ObjectGridLoader.h
@@ -17,27 +17,36 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
#ifndef TRINITY_OBJECTGRIDLOADER_H
#define TRINITY_OBJECTGRIDLOADER_H
+
#include "Utilities/TypeList.h"
#include "Platform/Define.h"
#include "GameSystem/GridLoader.h"
#include "GridDefines.h"
#include "Cell.h"
+
class ObjectWorldLoader;
+
class TRINITY_DLL_DECL ObjectGridLoader
{
friend class ObjectWorldLoader;
+
public:
ObjectGridLoader(NGridType &grid, Map* map, const Cell &cell)
: i_cell(cell), i_grid(grid), i_map(map), i_gameObjects(0), i_creatures(0), i_corpses (0)
{}
+
void Load(GridType &grid);
void Visit(GameObjectMapType &m);
void Visit(CreatureMapType &m);
void Visit(CorpseMapType &) {}
+
void Visit(DynamicObjectMapType&) { }
+
void LoadN(void);
+
private:
Cell i_cell;
NGridType &i_grid;
@@ -46,10 +55,12 @@ class TRINITY_DLL_DECL ObjectGridLoader
uint32 i_creatures;
uint32 i_corpses;
};
+
class TRINITY_DLL_DECL ObjectGridUnloader
{
public:
ObjectGridUnloader(NGridType &grid) : i_grid(grid) {}
+
void MoveToRespawnN();
void UnloadN()
{
@@ -62,15 +73,18 @@ class TRINITY_DLL_DECL ObjectGridUnloader
}
}
}
+
void Unload(GridType &grid);
template<class T> void Visit(GridRefManager<T> &m);
private:
NGridType &i_grid;
};
+
class TRINITY_DLL_DECL ObjectGridStoper
{
public:
ObjectGridStoper(NGridType &grid) : i_grid(grid) {}
+
void StopN()
{
for(unsigned int x=0; x < MAX_NUMBER_OF_CELLS; ++x)
@@ -82,16 +96,20 @@ class TRINITY_DLL_DECL ObjectGridStoper
}
}
}
+
void Stop(GridType &grid);
void Visit(CreatureMapType &m);
+
template<class NONACTIVE> void Visit(GridRefManager<NONACTIVE> &) {}
private:
NGridType &i_grid;
};
+
class TRINITY_DLL_DECL ObjectGridCleaner
{
public:
ObjectGridCleaner(NGridType &grid) : i_grid(grid) {}
+
void CleanN()
{
for(unsigned int x=0; x < MAX_NUMBER_OF_CELLS; ++x)
@@ -103,12 +121,14 @@ class TRINITY_DLL_DECL ObjectGridCleaner
}
}
}
+
void Stop(GridType &grid);
void Visit(CreatureMapType &m);
template<class T> void Visit(GridRefManager<T> &);
private:
NGridType &i_grid;
};
+
typedef GridLoader<Player, AllWorldObjectTypes, AllGridObjectTypes> GridLoaderType;
#endif