diff options
| author | oy <Tom_Adams@web.de> | 2011-06-26 17:10:13 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-06-26 17:10:13 +0200 |
| commit | fb309436b4794743c86886fddf39bfae315fdc1a (patch) | |
| tree | f3b98af0c833884a0b5644ffbf25fdfa65dc0852 /src/game/client/components/menus.h | |
| parent | c10c7d9ac3410e103b2d2e5b69fb6d7833f6a2e3 (diff) | |
| download | zcatch-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.h | 29 |
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 |