about summary refs log tree commit diff
path: root/src/game/client/components/menus.h
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-06-26 17:10:13 +0200
committeroy <Tom_Adams@web.de>2011-06-26 17:10:13 +0200
commitfb309436b4794743c86886fddf39bfae315fdc1a (patch)
treef3b98af0c833884a0b5644ffbf25fdfa65dc0852 /src/game/client/components/menus.h
parentc10c7d9ac3410e103b2d2e5b69fb6d7833f6a2e3 (diff)
downloadzcatch-fb309436b4794743c86886fddf39bfae315fdc1a.tar.gz
zcatch-fb309436b4794743c86886fddf39bfae315fdc1a.zip
improved friends feature
Diffstat (limited to 'src/game/client/components/menus.h')
-rw-r--r--src/game/client/components/menus.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h
index 51b8a1f8..959c366e 100644
--- a/src/game/client/components/menus.h
+++ b/src/game/client/components/menus.h
@@ -7,6 +7,7 @@
 #include <base/tl/sorted_array.h>
 
 #include <engine/demo.h>
+#include <engine/friends.h>
 
 #include <game/voting.h>
 #include <game/client/component.h>
@@ -202,8 +203,34 @@ class CMenus : public CComponent
 	void DemolistPopulate();
 	static int DemolistFetchCallback(const char *pName, int IsDir, int StorageType, void *pUser);
 
+	// friends
+	struct CFriendItem
+	{
+		const CFriendInfo *m_pFriendInfo;
+		int m_NumFound;
+
+		bool operator<(const CFriendItem &Other)
+		{
+			if(m_NumFound && !Other.m_NumFound)
+				return true;
+			else if(!m_NumFound && Other.m_NumFound)
+				return false;
+			else
+			{
+				int Result = str_comp(m_pFriendInfo->m_aName, Other.m_pFriendInfo->m_aName);
+				if(Result)
+					return Result < 0;
+				else
+					return str_comp(m_pFriendInfo->m_aClan, Other.m_pFriendInfo->m_aClan) < 0;
+			}
+		}
+	};
+
+	sorted_array<CFriendItem> m_lFriends;
 	int m_FriendlistSelectedIndex;
 
+	void FriendlistOnUpdate();
+
 	// found in menus.cpp
 	int Render();
 	//void render_background();
@@ -225,11 +252,13 @@ class CMenus : public CComponent
 
 	// found in menus_browser.cpp
 	int m_SelectedIndex;
+	int m_ScrollOffset;
 	void RenderServerbrowserServerList(CUIRect View);
 	void RenderServerbrowserServerDetail(CUIRect View);
 	void RenderServerbrowserFilters(CUIRect View);
 	void RenderServerbrowserFriends(CUIRect View);
 	void RenderServerbrowser(CUIRect MainView);
+	static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
 	static void ConchainServerbrowserUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
 
 	// found in menus_settings.cpp