diff options
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 10 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 18c1a8b1f3e..469f9f5c021 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -199,8 +199,8 @@ ObjectMgr::~ObjectMgr() delete[] playerInfo[race][class_].levelInfo; // free group and guild objects - for (GroupMap::iterator itr = mGroupMap.begin(); itr != mGroupMap.end(); ++itr) - delete itr->second; + for (GroupSet::iterator itr = mGroupSet.begin(); itr != mGroupSet.end(); ++itr) + delete *itr; for (GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr) delete itr->second; @@ -215,11 +215,11 @@ ObjectMgr::~ObjectMgr() itr->second.Clear(); } -Group * ObjectMgr::GetGroupByGUID(const uint32 &guid) const +Group * ObjectMgr::GetGroupByGUID(uint32 guid) const { - GroupMap::const_iterator itr = mGroupMap.find(guid); - if (itr != mGroupMap.end()) - return itr->second; + for (GroupSet::const_iterator itr = mGroupSet.begin(); itr != mGroupSet.end(); ++itr) + if ((*itr)->GetLowGUID() == guid) + return *itr; return NULL; } diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index d1573b79ab3..114dc483cb4 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -377,7 +377,7 @@ class ObjectMgr public: typedef UNORDERED_MAP<uint32, Item*> ItemMap; - typedef UNORDERED_MAP<uint32, Group *> GroupMap; + typedef std::set<Group *> GroupSet; typedef UNORDERED_MAP<uint32, Guild *> GuildMap; @@ -410,9 +410,9 @@ class ObjectMgr void LoadGameobjectInfo(); void AddGameobjectInfo(GameObjectInfo *goinfo); - Group * GetGroupByGUID(const uint32 &guid) const; - void AddGroup(Group* group) { mGroupMap[group->GetLowGUID()] = group; } - void RemoveGroup(Group* group) { mGroupMap.erase(group->GetLowGUID()); } + Group * GetGroupByGUID(uint32 guid) const; + void AddGroup(Group* group) { mGroupSet.insert(group); } + void RemoveGroup(Group* group) { mGroupSet.erase(group); } Guild* GetGuildByLeader(uint64 const&guid) const; Guild* GetGuildById(uint32 GuildId) const; @@ -1012,7 +1012,7 @@ class ObjectMgr typedef std::set<uint32> TavernAreaTriggerSet; typedef std::set<uint32> GameObjectForQuestSet; - GroupMap mGroupMap; + GroupSet mGroupSet; GuildMap mGuildMap; ArenaTeamMap mArenaTeamMap; |