aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-06-17 18:37:53 -0500
committermegamage <none@none>2009-06-17 18:37:53 -0500
commitfe7c616b2d079f9b1edb15f9795eaf3b5c55b9a8 (patch)
tree347ca16142a779026c77e14bebdc22bebc53b630
parenta2f10c496fcacbfd3dcb976807c8c23012aba03d (diff)
[8031] Move player update code to Map::Update. Author: Ambal
--HG-- branch : trunk
-rw-r--r--src/game/Map.cpp9
-rw-r--r--src/game/MapManager.cpp5
-rw-r--r--src/game/ObjectAccessor.cpp9
-rw-r--r--src/game/ObjectAccessor.h1
4 files changed, 9 insertions, 15 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index 344fcbc74a2..6dbb0e37c86 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -649,6 +649,15 @@ void Map::RemoveUnitFromNotify(int32 slot)
void Map::Update(const uint32 &t_diff)
{
+ /// update players at tick
+ 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);
+ }
+
+ /// update active cells around players and active objects
resetMarkedCells();
Trinity::ObjectUpdater updater(t_diff);
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp
index 6c74237406f..ece2876cab4 100644
--- a/src/game/MapManager.cpp
+++ b/src/game/MapManager.cpp
@@ -251,11 +251,6 @@ MapManager::Update(uint32 diff)
if( !i_timer.Passed() )
return;
- sWorld.RecordTimeDiff(NULL);
- ObjectAccessor::Instance().UpdatePlayers(i_timer.GetCurrent());
- sWorld.RecordTimeDiff("UpdatePlayers");
-
-
for(MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter)
{
checkAndCorrectGridStatesArray(); // debugging code, should be deleted some day
diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp
index 55e7d9179b8..70a1bada3f9 100644
--- a/src/game/ObjectAccessor.cpp
+++ b/src/game/ObjectAccessor.cpp
@@ -392,15 +392,6 @@ ObjectAccessor::Update(uint32 diff)
}
void
-ObjectAccessor::UpdatePlayers(uint32 diff)
-{
- HashMapHolder<Player>::MapType& playerMap = HashMapHolder<Player>::GetContainer();
- for(HashMapHolder<Player>::MapType::iterator iter = playerMap.begin(); iter != playerMap.end(); ++iter)
- if(iter->second->IsInWorld())
- iter->second->Update(diff);
-}
-
-void
ObjectAccessor::WorldObjectChangeAccumulator::Visit(PlayerMapType &m)
{
for(PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
diff --git a/src/game/ObjectAccessor.h b/src/game/ObjectAccessor.h
index 9736f9751eb..80aac0bcf92 100644
--- a/src/game/ObjectAccessor.h
+++ b/src/game/ObjectAccessor.h
@@ -201,7 +201,6 @@ class MANGOS_DLL_DECL ObjectAccessor : public MaNGOS::Singleton<ObjectAccessor,
}
void Update(uint32 diff);
- void UpdatePlayers(uint32 diff);
Corpse* GetCorpseForPlayerGUID(uint64 guid);
void RemoveCorpse(Corpse *corpse);