Core/Groups: Use full guid for guild member storage

This commit is contained in:
Shauren
2014-10-22 00:47:29 +02:00
parent e7d9830a06
commit f13d0da626
2 changed files with 11 additions and 10 deletions

View File

@@ -2431,7 +2431,8 @@ bool Guild::LoadMemberFromDB(Field* fields)
delete member;
return false;
}
m_members[lowguid] = member;
m_members[member->GetGUID()] = member;
return true;
}
@@ -2721,7 +2722,7 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
std::string name;
if (player)
{
m_members[lowguid] = member;
m_members[guid] = member;
player->SetInGuild(m_id);
player->SetGuildIdInvited(0);
player->SetRank(rankId);
@@ -2757,7 +2758,7 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
delete member;
return false;
}
m_members[lowguid] = member;
m_members[guid] = member;
}
SQLTransaction trans(NULL);
@@ -2787,7 +2788,7 @@ void Guild::DeleteMember(ObjectGuid guid, bool isDisbanding, bool isKicked, bool
Member* newLeader = NULL;
for (Guild::Members::iterator i = m_members.begin(); i != m_members.end(); ++i)
{
if (i->first == lowguid)
if (i->first == guid)
oldLeader = i->second;
else if (!newLeader || newLeader->GetRankId() > i->second->GetRankId())
newLeader = i->second;
@@ -2819,7 +2820,7 @@ void Guild::DeleteMember(ObjectGuid guid, bool isDisbanding, bool isKicked, bool
if (Member* member = GetMember(guid))
delete member;
m_members.erase(lowguid);
m_members.erase(guid);
// If player not online data in data field will be loaded from guild tabs no need to update it !!
if (player)
@@ -2852,7 +2853,7 @@ bool Guild::ChangeMemberRank(ObjectGuid guid, uint8 newRank)
bool Guild::IsMember(ObjectGuid guid) const
{
Members::const_iterator itr = m_members.find(guid.GetCounter());
Members::const_iterator itr = m_members.find(guid);
return itr != m_members.end();
}

View File

@@ -378,7 +378,7 @@ private:
bool LoadFromDB(Field* fields);
void SaveToDB(SQLTransaction& trans) const;
ObjectGuid GetGUID() const { return m_guid; }
ObjectGuid const& GetGUID() const { return m_guid; }
std::string const& GetName() const { return m_name; }
uint32 GetAccountId() const { return m_accountId; }
uint8 GetRankId() const { return m_rankId; }
@@ -759,7 +759,7 @@ private:
void CanStoreItemInTab(Item* pItem, uint8 skipSlotId, bool merge, uint32& count);
};
typedef std::unordered_map<uint32, Member*> Members;
typedef std::unordered_map<ObjectGuid, Member*> Members;
typedef std::vector<RankInfo> Ranks;
typedef std::vector<BankTab*> BankTabs;
@@ -939,13 +939,13 @@ private:
inline const Member* GetMember(ObjectGuid guid) const
{
Members::const_iterator itr = m_members.find(guid.GetCounter());
Members::const_iterator itr = m_members.find(guid);
return itr != m_members.end() ? itr->second : NULL;
}
inline Member* GetMember(ObjectGuid guid)
{
Members::iterator itr = m_members.find(guid.GetCounter());
Members::iterator itr = m_members.find(guid);
return itr != m_members.end() ? itr->second : NULL;
}