fixed that player options just show players as friends not clans

This commit is contained in:
oy 2011-04-02 19:51:05 +02:00
parent 401543c7a9
commit ab810cab25
5 changed files with 7 additions and 6 deletions

View file

@ -44,11 +44,12 @@ const CFriendInfo *CFriends::GetFriend(int Index) const
return &m_aFriends[max(0, Index%m_NumFriends)]; return &m_aFriends[max(0, Index%m_NumFriends)];
} }
bool CFriends::IsFriend(const char *pName, const char *pClan) const bool CFriends::IsFriend(const char *pName, const char *pClan, bool PlayersOnly) const
{ {
for(int i = 0; i < m_NumFriends; ++i) for(int i = 0; i < m_NumFriends; ++i)
{ {
if((m_aFriends[i].m_aName[0] == 0 || !str_comp(m_aFriends[i].m_aName, pName)) && !str_comp(m_aFriends[i].m_aClan, pClan)) if(!str_comp(m_aFriends[i].m_aClan, pClan) &&
((!PlayersOnly && m_aFriends[i].m_aName[0] == 0) || !str_comp(m_aFriends[i].m_aName, pName)))
return true; return true;
} }
return false; return false;

View file

@ -22,7 +22,7 @@ public:
int NumFriends() const { return m_NumFriends; } int NumFriends() const { return m_NumFriends; }
const CFriendInfo *GetFriend(int Index) const; const CFriendInfo *GetFriend(int Index) const;
bool IsFriend(const char *pName, const char *pClan) const; bool IsFriend(const char *pName, const char *pClan, bool PlayersOnly) const;
void AddFriend(const char *pName, const char *pClan); void AddFriend(const char *pName, const char *pClan);
void RemoveFriend(const char *pName, const char *pClan); void RemoveFriend(const char *pName, const char *pClan);

View file

@ -149,7 +149,7 @@ void CServerBrowser::Filter()
Filtered = 1; Filtered = 1;
for(p = 0; p < m_ppServerlist[i]->m_Info.m_NumClients; p++) for(p = 0; p < m_ppServerlist[i]->m_Info.m_NumClients; p++)
{ {
if(m_pFriends->IsFriend(m_ppServerlist[i]->m_Info.m_aClients[p].m_aName, m_ppServerlist[i]->m_Info.m_aClients[p].m_aClan)) if(m_pFriends->IsFriend(m_ppServerlist[i]->m_Info.m_aClients[p].m_aName, m_ppServerlist[i]->m_Info.m_aClients[p].m_aClan, false))
{ {
Filtered = 0; Filtered = 0;
break; break;

View file

@ -26,7 +26,7 @@ public:
virtual int NumFriends() const = 0; virtual int NumFriends() const = 0;
virtual const CFriendInfo *GetFriend(int Index) const = 0; virtual const CFriendInfo *GetFriend(int Index) const = 0;
virtual bool IsFriend(const char *pName, const char *pClan) const = 0; virtual bool IsFriend(const char *pName, const char *pClan, bool PlayersOnly) const = 0;
virtual void AddFriend(const char *pName, const char *pClan) = 0; virtual void AddFriend(const char *pName, const char *pClan) = 0;
virtual void RemoveFriend(const char *pName, const char *pClan) = 0; virtual void RemoveFriend(const char *pName, const char *pClan) = 0;

View file

@ -841,7 +841,7 @@ void CGameClient::OnNewSnapshot()
// update friend state // update friend state
for(int i = 0; i < MAX_CLIENTS; ++i) for(int i = 0; i < MAX_CLIENTS; ++i)
{ {
if(i == m_Snap.m_LocalClientID || !m_Snap.m_paPlayerInfos[i] || !Friends()->IsFriend(m_aClients[i].m_aName, m_aClients[i].m_aClan)) if(i == m_Snap.m_LocalClientID || !m_Snap.m_paPlayerInfos[i] || !Friends()->IsFriend(m_aClients[i].m_aName, m_aClients[i].m_aClan, true))
m_aClients[i].m_Friend = false; m_aClients[i].m_Friend = false;
else else
m_aClients[i].m_Friend = true; m_aClients[i].m_Friend = true;