From 2b69a914cf65caaf16122336c3a7a4f67be5ff20 Mon Sep 17 00:00:00 2001 From: Ambal Date: Wed, 17 Jun 2009 01:55:44 +0400 Subject: [PATCH] [8031] Move player update code to Map::Update. Signed-off-by: VladimirMangos --- src/game/Map.cpp | 9 +++++++++ src/game/MapManager.cpp | 2 -- src/game/ObjectAccessor.cpp | 9 --------- src/game/ObjectAccessor.h | 1 - src/shared/revision_nr.h | 2 +- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/game/Map.cpp b/src/game/Map.cpp index d315f1cc9..f8c02b975 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -550,6 +550,15 @@ bool Map::loaded(const GridPair &p) const 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(); MaNGOS::ObjectUpdater updater(t_diff); diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 276e6f4da..81b3786a5 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -250,8 +250,6 @@ MapManager::Update(uint32 diff) if( !i_timer.Passed() ) return; - ObjectAccessor::Instance().UpdatePlayers(i_timer.GetCurrent()); - 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 a03b6473f..1689a6947 100644 --- a/src/game/ObjectAccessor.cpp +++ b/src/game/ObjectAccessor.cpp @@ -405,15 +405,6 @@ ObjectAccessor::Update(uint32 diff) } } -void -ObjectAccessor::UpdatePlayers(uint32 diff) -{ - HashMapHolder::MapType& playerMap = HashMapHolder::GetContainer(); - for(HashMapHolder::MapType::iterator iter = playerMap.begin(); iter != playerMap.end(); ++iter) - if(iter->second->IsInWorld()) - iter->second->Update(diff); -} - void ObjectAccessor::WorldObjectChangeAccumulator::Visit(PlayerMapType &m) { diff --git a/src/game/ObjectAccessor.h b/src/game/ObjectAccessor.h index 60a49cd7c..c2a37be05 100644 --- a/src/game/ObjectAccessor.h +++ b/src/game/ObjectAccessor.h @@ -186,7 +186,6 @@ class MANGOS_DLL_DECL ObjectAccessor : public MaNGOS::Singleton