diff options
| author | Choupom <andycootlapin@hotmail.fr> | 2010-10-30 18:56:57 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-11-17 12:31:44 +0100 |
| commit | a7f37446b62630d751ea7edd5b4a396385887869 (patch) | |
| tree | 16d2412704248915d99fe76f7c3d7c4158698630 | |
| parent | 57a92359972b789c8de5794619e62f339fa10707 (diff) | |
| download | zcatch-a7f37446b62630d751ea7edd5b4a396385887869.tar.gz zcatch-a7f37446b62630d751ea7edd5b4a396385887869.zip | |
added loading progression in server browser
| -rw-r--r-- | src/engine/client/srvbrowse.cpp | 12 | ||||
| -rw-r--r-- | src/engine/client/srvbrowse.h | 1 | ||||
| -rw-r--r-- | src/engine/serverbrowser.h | 1 | ||||
| -rw-r--r-- | src/game/client/components/menus_browser.cpp | 4 |
4 files changed, 15 insertions, 3 deletions
diff --git a/src/engine/client/srvbrowse.cpp b/src/engine/client/srvbrowse.cpp index aed0d514..5835bb3b 100644 --- a/src/engine/client/srvbrowse.cpp +++ b/src/engine/client/srvbrowse.cpp @@ -615,7 +615,6 @@ void CServerBrowser::Update() { // timeout RemoveRequest(pEntry); - m_NumRequests--; } pEntry = pNext; @@ -715,6 +714,17 @@ bool CServerBrowser::IsRefreshingMasters() const } +int CServerBrowser::LoadingProgression() const +{ + if(m_NumServers == 0) + return 0; + + int Servers = m_NumServers; + int Loaded = m_NumServers-m_NumRequests; + return 100.0f * Loaded/Servers; +} + + void CServerBrowser::ConfigSaveCallback(IConfig *pConfig, void *pUserData) { CServerBrowser *pSelf = (CServerBrowser *)pUserData; diff --git a/src/engine/client/srvbrowse.h b/src/engine/client/srvbrowse.h index ecaed7ef..ebcdbb30 100644 --- a/src/engine/client/srvbrowse.h +++ b/src/engine/client/srvbrowse.h @@ -30,6 +30,7 @@ public: // interface functions void Refresh(int Type); bool IsRefreshingMasters() const; + int LoadingProgression() const; int NumServers() const { return m_NumServers; } diff --git a/src/engine/serverbrowser.h b/src/engine/serverbrowser.h index 43732f13..4409e9bc 100644 --- a/src/engine/serverbrowser.h +++ b/src/engine/serverbrowser.h @@ -79,6 +79,7 @@ public: virtual void Refresh(int Type) = 0; virtual bool IsRefreshingMasters() const = 0; + virtual int LoadingProgression() const = 0; virtual int NumServers() const = 0; diff --git a/src/game/client/components/menus_browser.cpp b/src/game/client/components/menus_browser.cpp index 409c81f6..ff3d7b3a 100644 --- a/src/game/client/components/menus_browser.cpp +++ b/src/game/client/components/menus_browser.cpp @@ -392,10 +392,10 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) UI()->SetActiveItem(&g_Config.m_BrFilterString); } } - + // render status char aBuf[128]; - str_format(aBuf, sizeof(aBuf), Localize("%d of %d servers, %d players"), ServerBrowser()->NumSortedServers(), ServerBrowser()->NumServers(), NumPlayers); + str_format(aBuf, sizeof(aBuf), Localize("%d of %d servers, %d players (%d%% loaded)"), ServerBrowser()->NumSortedServers(), ServerBrowser()->NumServers(), NumPlayers, ServerBrowser()->LoadingProgression()); Status.VSplitRight(TextRender()->TextWidth(0, 14.0f, aBuf, -1), 0, &Status); UI()->DoLabel(&Status, aBuf, 14.0f, -1); } |