diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 606d53df6..924901864 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -573,12 +573,21 @@ void Map::Update(const uint32 &t_diff) // for pets TypeContainerVisitor world_object_update(updater); - for(MapRefManager::iterator iter = m_mapRefManager.begin(); iter != m_mapRefManager.end(); ++iter) + //TODO: Player guard + HashMapHolder::MapType& playerMap = HashMapHolder::GetContainer(); + for(HashMapHolder::MapType::iterator iter = playerMap.begin(); iter != playerMap.end(); ++iter) { - Player* plr = iter->getSource(); + Player* plr = iter->second; + if(!plr->IsInWorld()) continue; + if(plr->GetMapId() != GetId()) + continue; + + if(plr->GetInstanceId() != GetInstanceId()) + continue; + CellPair standing_cell(MaNGOS::ComputeCellPair(plr->GetPositionX(), plr->GetPositionY())); // Check for correctness of standing_cell, it also avoids problems with update_cell diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4cca1495f..fe6de2022 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "6849" + #define REVISION_NR "6850" #endif // __REVISION_NR_H__