aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp12
-rw-r--r--src/server/game/Globals/ObjectMgr.h10
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;