diff options
-rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.h | 2 | ||||
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 2 |
6 files changed, 12 insertions, 10 deletions
diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h index b4b08d7ace2..72fda2feb5e 100644 --- a/src/server/game/Entities/Object/ObjectGuid.h +++ b/src/server/game/Entities/Object/ObjectGuid.h @@ -24,6 +24,7 @@ #include <boost/functional/hash.hpp> #include <functional> +#include <unordered_set> enum TypeID { @@ -266,6 +267,7 @@ typedef std::set<ObjectGuid> GuidSet; typedef std::list<ObjectGuid> GuidList; typedef std::deque<ObjectGuid> GuidDeque; typedef std::vector<ObjectGuid> GuidVector; +typedef std::unordered_set<ObjectGuid> GuidUnorderedSet; // maximum buffer size for packed guid is 18 bytes #define PACKED_GUID_MIN_BUFFER_SIZE 18 diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 47b46f05752..b1b441e678c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22042,13 +22042,13 @@ bool Player::IsVisibleGloballyFor(Player const* u) const } template<class T> -inline void UpdateVisibilityOf_helper(GuidSet& s64, T* target, std::set<Unit*>& /*v*/) +inline void UpdateVisibilityOf_helper(GuidUnorderedSet& s64, T* target, std::set<Unit*>& /*v*/) { s64.insert(target->GetGUID()); } template<> -inline void UpdateVisibilityOf_helper(GuidSet& s64, GameObject* target, std::set<Unit*>& /*v*/) +inline void UpdateVisibilityOf_helper(GuidUnorderedSet& s64, GameObject* target, std::set<Unit*>& /*v*/) { // @HACK: This is to prevent objects like deeprun tram from disappearing when player moves far from its spawn point while riding it // But exclude stoppable elevators from this hack - they would be teleporting from one end to another @@ -22059,14 +22059,14 @@ inline void UpdateVisibilityOf_helper(GuidSet& s64, GameObject* target, std::set } template<> -inline void UpdateVisibilityOf_helper(GuidSet& s64, Creature* target, std::set<Unit*>& v) +inline void UpdateVisibilityOf_helper(GuidUnorderedSet& s64, Creature* target, std::set<Unit*>& v) { s64.insert(target->GetGUID()); v.insert(target); } template<> -inline void UpdateVisibilityOf_helper(GuidSet& s64, Player* target, std::set<Unit*>& v) +inline void UpdateVisibilityOf_helper(GuidUnorderedSet& s64, Player* target, std::set<Unit*>& v) { s64.insert(target->GetGUID()); v.insert(target); @@ -22128,7 +22128,7 @@ void Player::UpdateTriggerVisibility() UpdateData udata(GetMapId()); WorldPacket packet; - for (GuidSet::iterator itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr) + for (auto itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr) { if (itr->IsCreature()) { @@ -23235,7 +23235,7 @@ void Player::UpdateForQuestWorldObjects() UpdateData udata(GetMapId()); WorldPacket packet; - for (GuidSet::iterator itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr) + for (auto itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr) { if (itr->IsGameObject()) { diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index d0cf22ca24b..596693e5da4 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2435,7 +2435,7 @@ class Player : public Unit, public GridObject<Player> WorldLocation GetStartPosition() const; // currently visible objects at player client - GuidSet m_clientGUIDs; + GuidUnorderedSet m_clientGUIDs; bool HaveAtClient(WorldObject const* u) const; diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index 533f2845b17..d5562a9a3c7 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -65,7 +65,7 @@ void VisibleNotifier::SendToSelf() } } - for (GuidSet::const_iterator it = vis_guids.begin(); it != vis_guids.end(); ++it) + for (auto it = vis_guids.begin(); it != vis_guids.end(); ++it) { i_player.m_clientGUIDs.erase(*it); i_data.AddOutOfRangeGUID(*it); diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index ae8c96aff94..0936f8ff753 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -45,7 +45,7 @@ namespace Trinity Player &i_player; UpdateData i_data; std::set<Unit*> i_visibleNow; - GuidSet vis_guids; + GuidUnorderedSet vis_guids; VisibleNotifier(Player &player) : i_player(player), i_data(player.GetMapId()), vis_guids(player.m_clientGUIDs) { } template<class T> void Visit(GridRefManager<T> &m); diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 56126fb9250..df5fae683fe 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -619,7 +619,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPackets::Quest::Ques WorldPackets::Quest::QuestGiverStatusMultiple response; - for (GuidSet::const_iterator itr = _player->m_clientGUIDs.begin(); itr != _player->m_clientGUIDs.end(); ++itr) + for (auto itr = _player->m_clientGUIDs.begin(); itr != _player->m_clientGUIDs.end(); ++itr) { if (itr->IsAnyTypeCreature()) { |