# HG changeset patch # User rubidium # Date 2010-12-05 14:32:13 # Node ID 132186a763f6b1f7980d4d52206832e55d80c403 # Parent 3ac9ad08434a7d61ca223c72bdfafeab63daf41b (svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client diff --git a/src/lang/english.txt b/src/lang/english.txt --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1694,7 +1694,8 @@ STR_NETWORK_CONNECTING_SPECIAL_1 STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}Fetching company info.. ############ End of leave-in-this-order STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} client{P "" s} in front of you -STR_NETWORK_CONNECTING_DOWNLOADING :{BLACK}{BYTES} / {BYTES} downloaded so far +STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} downloaded so far +STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} downloaded so far STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Disconnect diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -2177,7 +2177,11 @@ struct NetworkJoinStatusWindow : Window case NETWORK_JOIN_STATUS_DOWNLOADING: SetDParam(0, _network_join_bytes); SetDParam(1, _network_join_bytes_total); - DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, STR_NETWORK_CONNECTING_DOWNLOADING, TC_FROMSTRING, SA_HOR_CENTER); + DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, _network_join_bytes_total == 0 ? STR_NETWORK_CONNECTING_DOWNLOADING_1 : STR_NETWORK_CONNECTING_DOWNLOADING_2, TC_FROMSTRING, SA_HOR_CENTER); + if (_network_join_bytes_total == 0) { + progress = 15; // We don't have the final size yet; the server is still compressing! + break; + } /* FALL THROUGH */ default: // Waiting is 15%, so the resting receivement of map is maximum 70% progress = 15 + _network_join_bytes * (100 - 15) / _network_join_bytes_total; @@ -2206,7 +2210,8 @@ struct NetworkJoinStatusWindow : Window /* Account for downloading ~ 10 MiB */ SetDParam(0, 10000000); SetDParam(1, 10000000); - width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING).width); + width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1).width); + width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_2).width); /* Give a bit more clearing for the widest strings than strictly needed */ size->width = width + WD_FRAMERECT_LEFT + WD_FRAMERECT_BOTTOM + 10;