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