about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-04-02 19:51:05 +0200
committeroy <Tom_Adams@web.de>2011-04-02 19:51:05 +0200
commitab810cab2575ffebe5e08ed6dfce55453e17f19a (patch)
tree58aa606b38b533f4c4138568de2dcd1d0f8db248 /src
parent401543c7a9171fd637807886eaad6bfd9efd56a5 (diff)
downloadzcatch-ab810cab2575ffebe5e08ed6dfce55453e17f19a.tar.gz
zcatch-ab810cab2575ffebe5e08ed6dfce55453e17f19a.zip
fixed that player options just show players as friends not clans
Diffstat (limited to 'src')
-rw-r--r--src/engine/client/friends.cpp5
-rw-r--r--src/engine/client/friends.h2
-rw-r--r--src/engine/client/serverbrowser.cpp2
-rw-r--r--src/engine/friends.h2
-rw-r--r--src/game/client/gameclient.cpp2
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;