From ab810cab2575ffebe5e08ed6dfce55453e17f19a Mon Sep 17 00:00:00 2001 From: oy Date: Sat, 2 Apr 2011 19:51:05 +0200 Subject: [PATCH] fixed that player options just show players as friends not clans --- src/engine/client/friends.cpp | 5 +++-- src/engine/client/friends.h | 2 +- src/engine/client/serverbrowser.cpp | 2 +- src/engine/friends.h | 2 +- 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 c75db54e6..9ef00ed1e 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 e046fc209..e3258ec2e 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 13c4b32da..962dca615 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 d0b9e97b1..50e5ef1fa 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 fab347e94..e5b5e2982 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;