From 5227d3f8c4c47dcb88d53ffdf29b66f3ab6cd0f1 Mon Sep 17 00:00:00 2001 From: Ashnal Date: Thu, 19 Aug 2021 21:49:40 -0400 Subject: [PATCH] Switched checking files mode to use a progress bar Changed the confirmation prompt use MB if >=10MB Changed the ovearall progress bar to use MB if >=10MB --- src/d_clisrv.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index e26debd91..6c6e9fd3c 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -568,7 +568,7 @@ static inline void CL_DrawConnectionStatus(void) if (!menuactive) // menu already draws its own fade V_DrawFadeScreen(0xFF00, 16); // force default - if (cl_mode != CL_DOWNLOADFILES && cl_mode != CL_LOADFILES + if (cl_mode != CL_DOWNLOADFILES && cl_mode != CL_LOADFILES && cl_mode != CL_CHECKFILES #ifdef HAVE_CURL && cl_mode != CL_DOWNLOADHTTPFILES #endif @@ -614,15 +614,9 @@ static inline void CL_DrawConnectionStatus(void) cltext = M_GetText("Waiting to download game state..."); break; case CL_ASKFULLFILELIST: - case CL_CHECKFILES: - cltext = M_GetText("Checking server addon list ..."); - break; case CL_CONFIRMCONNECT: cltext = ""; break; - case CL_LOADFILES: - cltext = M_GetText("Loading server addons..."); - break; case CL_ASKJOIN: case CL_WAITJOINRESPONSE: if (serverisfull) @@ -644,7 +638,29 @@ static inline void CL_DrawConnectionStatus(void) } else { - if (cl_mode == CL_LOADFILES) + if (cl_mode == CL_CHECKFILES) + { + INT32 totalfileslength; + INT32 checkednum = 0; + INT32 i; + + V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24-24, V_YELLOWMAP, "Press ESC to abort"); + + //ima just count files here + for (i = 0; i < fileneedednum; i++) + if (fileneeded[i].status != FS_NOTCHECKED) + checkednum++; + + // Loading progress + V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24-32, V_YELLOWMAP, "Checking server addons..."); + totalfileslength = (INT32)((checkednum/(double)(fileneedednum)) * 256); + M_DrawTextBox(BASEVIDWIDTH/2-128-8, BASEVIDHEIGHT-24-8, 32, 1); + V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 175); + V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, totalfileslength, 8, 160); + V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE, + va(" %2u/%2u Files",checkednum,fileneedednum)); + } + else if (cl_mode == CL_LOADFILES) { INT32 totalfileslength; INT32 loadcompletednum = 0; @@ -723,7 +739,7 @@ static inline void CL_DrawConnectionStatus(void) V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 175); V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, totalfileslength, 8, 160); - if (totalfilesrequestedsize>>20 >= 100) //display in MB if over 100MB + if (totalfilesrequestedsize>>20 >= 10) //display in MB if over 10MB V_DrawString(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE, va(" %4uM/%4uM",totaldldsize>>20,totalfilesrequestedsize>>20)); else @@ -1599,7 +1615,7 @@ static boolean CL_FinishedFileList(void) } #ifndef NONET - if (totalfilesrequestedsize>>20 >= 100) + if (totalfilesrequestedsize>>20 >= 10) downloadsize = Z_StrDup(va("%uM",totalfilesrequestedsize>>20)); else downloadsize = Z_StrDup(va("%uK",totalfilesrequestedsize>>10));