diff options
| author | oy <Tom_Adams@web.de> | 2010-12-16 01:52:29 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-12-16 01:52:29 +0100 |
| commit | 1d7df01e9a8e4e2bf77caf6e23f0d1eb24529073 (patch) | |
| tree | 8f4227ce52fc8947094cc99ac8a664fdb5d9a863 | |
| parent | c0530b0d0910e85941b6b4158f2e4b1c9e406ff1 (diff) | |
| download | zcatch-1d7df01e9a8e4e2bf77caf6e23f0d1eb24529073.tar.gz zcatch-1d7df01e9a8e4e2bf77caf6e23f0d1eb24529073.zip | |
added map download progress by kaddyd
| -rw-r--r-- | data/languages/bosnian.txt | 15 | ||||
| -rw-r--r-- | data/languages/czech.txt | 15 | ||||
| -rw-r--r-- | data/languages/dutch.txt | 15 | ||||
| -rw-r--r-- | data/languages/finnish.txt | 15 | ||||
| -rw-r--r-- | data/languages/french.txt | 15 | ||||
| -rw-r--r-- | data/languages/german.txt | 15 | ||||
| -rw-r--r-- | data/languages/italian.txt | 15 | ||||
| -rw-r--r-- | data/languages/polish.txt | 15 | ||||
| -rw-r--r-- | data/languages/portuguese.txt | 15 | ||||
| -rw-r--r-- | data/languages/russian.txt | 15 | ||||
| -rw-r--r-- | data/languages/serbian.txt | 15 | ||||
| -rw-r--r-- | data/languages/swedish.txt | 15 | ||||
| -rw-r--r-- | data/languages/ukrainian.txt | 15 | ||||
| -rw-r--r-- | src/game/client/components/menus.cpp | 73 | ||||
| -rw-r--r-- | src/game/client/components/menus.h | 5 |
15 files changed, 267 insertions, 6 deletions
diff --git a/data/languages/bosnian.txt b/data/languages/bosnian.txt index 10fd1a82..6d6dd333 100644 --- a/data/languages/bosnian.txt +++ b/data/languages/bosnian.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/czech.txt b/data/languages/czech.txt index 4df483a4..e04a359c 100644 --- a/data/languages/czech.txt +++ b/data/languages/czech.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/dutch.txt b/data/languages/dutch.txt index e57db832..c0910e77 100644 --- a/data/languages/dutch.txt +++ b/data/languages/dutch.txt @@ -945,8 +945,23 @@ Max Screenshots Max demos == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/finnish.txt b/data/languages/finnish.txt index 044deaf3..9e133c60 100644 --- a/data/languages/finnish.txt +++ b/data/languages/finnish.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/french.txt b/data/languages/french.txt index 24364c12..93602699 100644 --- a/data/languages/french.txt +++ b/data/languages/french.txt @@ -945,8 +945,23 @@ Y-axis of the envelope [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/german.txt b/data/languages/german.txt index f06d798f..4471ce8b 100644 --- a/data/languages/german.txt +++ b/data/languages/german.txt @@ -945,8 +945,23 @@ Max Screenshots Max demos == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/italian.txt b/data/languages/italian.txt index 6ff7e07c..2a964567 100644 --- a/data/languages/italian.txt +++ b/data/languages/italian.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/polish.txt b/data/languages/polish.txt index 85871f9a..91ef474b 100644 --- a/data/languages/polish.txt +++ b/data/languages/polish.txt @@ -945,8 +945,23 @@ Y-axis of the envelope [HOME] Restore map focus == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/portuguese.txt b/data/languages/portuguese.txt index c1f33229..fd801303 100644 --- a/data/languages/portuguese.txt +++ b/data/languages/portuguese.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/russian.txt b/data/languages/russian.txt index 47bb9ac3..bbb377e3 100644 --- a/data/languages/russian.txt +++ b/data/languages/russian.txt @@ -945,8 +945,23 @@ Y-axis of the envelope [HOME] Restore map focus == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/serbian.txt b/data/languages/serbian.txt index 0071e687..dd1cf879 100644 --- a/data/languages/serbian.txt +++ b/data/languages/serbian.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/swedish.txt b/data/languages/swedish.txt index 71dcd9ea..f2e77878 100644 --- a/data/languages/swedish.txt +++ b/data/languages/swedish.txt @@ -945,8 +945,23 @@ ZO [ctrl+p] Toggles proof borders. These borders represent what a player maximum can see. == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/data/languages/ukrainian.txt b/data/languages/ukrainian.txt index be8bea89..0a5266da 100644 --- a/data/languages/ukrainian.txt +++ b/data/languages/ukrainian.txt @@ -945,8 +945,23 @@ Y-axis of the envelope [HOME] Restore map focus == +left +== + +minute +== + +minutes +== + no limit == +second +== + +seconds +== + ##### old translations ##### diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp index 5d9c1bde..6d3c494e 100644 --- a/src/game/client/components/menus.cpp +++ b/src/game/client/components/menus.cpp @@ -854,8 +854,7 @@ int CMenus::Render() if(Client()->MapDownloadTotalsize() > 0) { pTitle = Localize("Downloading map"); - str_format(aBuf, sizeof(aBuf), "%d/%d KiB", Client()->MapDownloadAmount()/1024, Client()->MapDownloadTotalsize()/1024); - pExtraText = aBuf; + pExtraText = ""; } } else if(m_Popup == POPUP_DISCONNECTED) @@ -971,6 +970,69 @@ int CMenus::Render() static float Offset = 0.0f; DoEditBox(&g_Config.m_Password, &TextBox, g_Config.m_Password, sizeof(g_Config.m_Password), 12.0f, &Offset, true); } + else if(m_Popup == POPUP_CONNECTING) + { + Box = Screen; + Box.VMargin(150.0f, &Box); + Box.HMargin(150.0f, &Box); + Box.HSplitBottom(20.f, &Box, &Part); + Box.HSplitBottom(24.f, &Box, &Part); + Part.VMargin(120.0f, &Part); + + static int s_Button = 0; + if(DoButton_Menu(&s_Button, pButtonText, 0, &Part) || m_EscapePressed || m_EnterPressed) + { + Client()->Disconnect(); + m_Popup = POPUP_NONE; + } + + if(Client()->MapDownloadTotalsize() > 0) + { + int64 Now = time_get(); + if(Now-m_DownloadLastCheckTime >= time_freq()) + { + if(m_DownloadLastCheckSize > Client()->MapDownloadAmount()) + { + // map downloaded restarted + m_DownloadLastCheckSize = 0; + } + + // update download speed + float Diff = (Client()->MapDownloadAmount()-m_DownloadLastCheckSize)/1024.0f; + m_DownloadSpeed = (m_DownloadSpeed*(1.0f-(1.0f/m_DownloadSpeed))) + (Diff*(1.0f/m_DownloadSpeed)); + m_DownloadLastCheckTime = Now; + m_DownloadLastCheckSize = Client()->MapDownloadAmount(); + } + + Box.HSplitTop(64.f, 0, &Box); + Box.HSplitTop(24.f, &Part, &Box); + str_format(aBuf, sizeof(aBuf), "%d/%d KiB (%.1f KiB/s)", Client()->MapDownloadAmount()/1024, Client()->MapDownloadTotalsize()/1024, m_DownloadSpeed); + UI()->DoLabel(&Part, aBuf, 20.f, 0, -1); + + // time left + const char *pTimeLeftString; + int TimeLeft = (Client()->MapDownloadTotalsize()-Client()->MapDownloadAmount())/(m_DownloadSpeed*1024)+1; + if(TimeLeft >= 60) + { + TimeLeft /= 60; + pTimeLeftString = TimeLeft == 1 ? Localize("minute") : Localize("minutes"); + } + else + pTimeLeftString = TimeLeft == 1 ? Localize("second") : Localize("seconds"); + Box.HSplitTop(20.f, 0, &Box); + Box.HSplitTop(24.f, &Part, &Box); + str_format(aBuf, sizeof(aBuf), "%i %s %s", TimeLeft, pTimeLeftString, Localize("left")); + UI()->DoLabel(&Part, aBuf, 20.f, 0, -1); + + // progress bar + Box.HSplitTop(20.f, 0, &Box); + Box.HSplitTop(24.f, &Part, &Box); + Part.VMargin(40.0f, &Part); + RenderTools()->DrawUIRect(&Part, vec4(1.0f, 1.0f, 1.0f, 0.25f), CUI::CORNER_ALL, 5.0f); + Part.w = max(10.0f, (Part.w*Client()->MapDownloadAmount())/Client()->MapDownloadTotalsize()); + RenderTools()->DrawUIRect(&Part, vec4(1.0f, 1.0f, 1.0f, 0.5f), CUI::CORNER_ALL, 5.0f); + } + } else if(m_Popup == POPUP_LANGUAGE) { Box = Screen; @@ -1042,11 +1104,7 @@ int CMenus::Render() static int s_Button = 0; if(DoButton_Menu(&s_Button, pButtonText, 0, &Part) || m_EscapePressed || m_EnterPressed) - { - if(m_Popup == POPUP_CONNECTING) - Client()->Disconnect(); m_Popup = POPUP_NONE; - } } } @@ -1149,6 +1207,9 @@ void CMenus::OnStateChange(int NewState, int OldState) else if(NewState == IClient::STATE_LOADING) { m_Popup = POPUP_CONNECTING; + m_DownloadLastCheckTime = time_get(); + m_DownloadLastCheckSize = 0; + m_DownloadSpeed = 1.0f; //client_serverinfo_request(); } else if(NewState == IClient::STATE_CONNECTING) diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h index 9ca21dae..37d34224 100644 --- a/src/game/client/components/menus.h +++ b/src/game/client/components/menus.h @@ -150,6 +150,11 @@ class CMenus : public CComponent bool m_EscapePressed; bool m_EnterPressed; bool m_DeletePressed; + + // for map download popup + int64 m_DownloadLastCheckTime; + int m_DownloadLastCheckSize; + float m_DownloadSpeed; // for call vote int m_CallvoteSelectedOption; |