aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
authormegamage <none@none.none>2011-10-18 14:31:34 -0400
committermegamage <none@none.none>2011-10-18 14:31:34 -0400
commit7231ab959fcd42b653e46eb7306688af550a240d (patch)
tree82befe9bf51e4ddda95ed38e4c5cdabc1ec4e793 /src/server/game/Maps/Map.cpp
parentbb64e64463a8f8899cd375bca4d03cc48f490b01 (diff)
Clean up grid system. Get rid of GridLoader. This patch should not change any logic, except the incorrect calculation of the number of loaded corpse (which only affects log).
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rwxr-xr-xsrc/server/game/Maps/Map.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 66038d51655..5fdd56dd97f 100755
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -962,8 +962,6 @@ bool Map::UnloadGrid(const uint32 x, const uint32 y, bool unloadAll)
sLog->outDebug(LOG_FILTER_MAPS, "Unloading grid[%u, %u] for map %u", x, y, GetId());
- ObjectGridUnloader unloader(*grid);
-
if (!unloadAll)
{
// Finish creature moves, remove and delete all creatures with delayed remove before moving to respawn grids
@@ -971,18 +969,27 @@ bool Map::UnloadGrid(const uint32 x, const uint32 y, bool unloadAll)
MoveAllCreaturesInMoveList();
// move creatures to respawn grids if this is diff.grid or to remove list
- unloader.MoveToRespawnN();
+ ObjectGridEvacuator worker;
+ TypeContainerVisitor<ObjectGridEvacuator, GridTypeMapContainer> visitor(worker);
+ grid->VisitAllGrids(visitor);
// Finish creature moves, remove and delete all creatures with delayed remove before unload
MoveAllCreaturesInMoveList();
}
- ObjectGridCleaner cleaner(*grid);
- cleaner.CleanN();
+ {
+ ObjectGridCleaner worker;
+ TypeContainerVisitor<ObjectGridCleaner, GridTypeMapContainer> visitor(worker);
+ grid->VisitAllGrids(visitor);
+ }
RemoveAllObjectsInRemoveList();
- unloader.UnloadN();
+ {
+ ObjectGridUnloader worker;
+ TypeContainerVisitor<ObjectGridUnloader, GridTypeMapContainer> visitor(worker);
+ grid->VisitAllGrids(visitor);
+ }
ASSERT(i_objectsToRemove.empty());