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)];
}
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;

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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;