aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
authorclick <none@none>2010-12-13 22:37:56 +0100
committerclick <none@none>2010-12-13 22:37:56 +0100
commit26428943423d14e8672682ab1f19925b76c2aa35 (patch)
tree1c6d80c03cbf566879e5c899533a2dea5a73dd4c /src/server/game/Maps/Map.cpp
parent89a33bbf612fcd0d5cea8e1fc5deff87e53aa67e (diff)
Core: Add new system for parallelizing client packet processing. Handle WorldSession updates in Map::Update() where we are safe to proceed. Patch by Ambal.
(And clean up tabs and whitespace while rummaging around in there) Closes issue 5084. --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rwxr-xr-xsrc/server/game/Maps/Map.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 5e0ec7dd896..0ca4afd2277 100755
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -504,6 +504,18 @@ void Map::VisitNearbyCellsOf(WorldObject* obj, TypeContainerVisitor<Trinity::Obj
void Map::Update(const uint32 &t_diff)
{
+ /// update worldsessions for existing players
+ for(m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter)
+ {
+ Player* plr = m_mapRefIter->getSource();
+ if(plr && plr->IsInWorld())
+ {
+ //plr->Update(t_diff);
+ WorldSession * pSession = plr->GetSession();
+ MapSessionFilter updater(pSession);
+ pSession->Update(t_diff, updater);
+ }
+ }
/// update active cells around players and active objects
resetMarkedCells();