diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine/client/friends.cpp | 5 | ||||
| -rw-r--r-- | src/engine/client/friends.h | 2 | ||||
| -rw-r--r-- | src/engine/client/serverbrowser.cpp | 2 | ||||
| -rw-r--r-- | src/engine/friends.h | 2 | ||||
| -rw-r--r-- | src/game/client/gameclient.cpp | 2 |
5 files changed, 7 insertions, 6 deletions
diff --git a/src/engine/client/friends.cpp b/src/engine/client/friends.cpp index c75db54e..9ef00ed1 100644 --- a/src/engine/client/friends.cpp +++ b/src/engine/client/friends.cpp @@ -44,11 +44,12 @@ const CFriendInfo *CFriends::GetFriend(int Index) const 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) { - 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 false; diff --git a/src/engine/client/friends.h b/src/engine/client/friends.h index e046fc20..e3258ec2 100644 --- a/src/engine/client/friends.h +++ b/src/engine/client/friends.h @@ -22,7 +22,7 @@ public: int NumFriends() const { return m_NumFriends; } 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 RemoveFriend(const char *pName, const char *pClan); diff --git a/src/engine/client/serverbrowser.cpp b/src/engine/client/serverbrowser.cpp index 13c4b32d..962dca61 100644 --- a/src/engine/client/serverbrowser.cpp +++ b/src/engine/client/serverbrowser.cpp @@ -149,7 +149,7 @@ void CServerBrowser::Filter() Filtered = 1; 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; break; diff --git a/src/engine/friends.h b/src/engine/friends.h index d0b9e97b..50e5ef1f 100644 --- a/src/engine/friends.h +++ b/src/engine/friends.h @@ -26,7 +26,7 @@ public: virtual int NumFriends() 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 RemoveFriend(const char *pName, const char *pClan) = 0; diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index fab347e9..e5b5e298 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -841,7 +841,7 @@ void CGameClient::OnNewSnapshot() // update friend state 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; else m_aClients[i].m_Friend = true; |