From 4c7b42b047585a7e609ec241b0e9c7e14ee11103 Mon Sep 17 00:00:00 2001 From: divverent Date: Sat, 4 Apr 2009 20:49:12 +0000 Subject: [PATCH] also enter the event loop during Q3 map load... should prevent Vista's not responding thing even on mikeeusa maps git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8865 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_parse.c | 2 ++ cl_screen.c | 14 ++++++++++---- screen.h | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cl_parse.c b/cl_parse.c index c1e2f4ec..26dba1d0 100644 --- a/cl_parse.c +++ b/cl_parse.c @@ -297,6 +297,8 @@ void CL_KeepaliveMessage (qboolean readmessages) qboolean oldbadread; sizebuf_t old; + SCR_UpdateLoadingScreenIfShown(); + // no need if server is local and definitely not if this is a demo if (!cls.netcon || cls.protocol == PROTOCOL_QUAKEWORLD || cls.signon >= SIGNONS) return; diff --git a/cl_screen.c b/cl_screen.c index 0a9f4664..1c963db7 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -1623,6 +1623,12 @@ static double loadingscreentime = -1; static qboolean loadingscreencleared = false; static float loadingscreenheight = 0; +void SCR_UpdateLoadingScreenIfShown() +{ + if(realtime == loadingscreentime) + SCR_UpdateLoadingScreen(loadingscreencleared); +} + void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_parent) { loadingscreenstack_t *s = (loadingscreenstack_t *) Z_Malloc(sizeof(loadingscreenstack_t)); @@ -1645,8 +1651,8 @@ void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_paren s->absolute_loading_amount_len = 1; } - if(redraw && realtime == loadingscreentime) - SCR_UpdateLoadingScreen(loadingscreencleared); + if(redraw) + SCR_UpdateLoadingScreenIfShown(); } void SCR_PopLoadingScreen (qboolean redraw) @@ -1657,8 +1663,8 @@ void SCR_PopLoadingScreen (qboolean redraw) s->prev->relative_completion = (s->absolute_loading_amount_min + s->absolute_loading_amount_len - s->prev->absolute_loading_amount_min) / s->prev->absolute_loading_amount_len; Z_Free(s); - if(redraw && realtime == loadingscreentime) - SCR_UpdateLoadingScreen(loadingscreencleared); + if(redraw) + SCR_UpdateLoadingScreenIfShown(); } static float SCR_DrawLoadingStack_r(loadingscreenstack_t *s, float y) diff --git a/screen.h b/screen.h index ab807cbd..3efbd7a9 100644 --- a/screen.h +++ b/screen.h @@ -30,6 +30,7 @@ void SCR_BeginLoadingPlaque (void); // invoke refresh of loading plaque (nothing else seen) void SCR_UpdateLoadingScreen(qboolean clear); +void SCR_UpdateLoadingScreenIfShown(); // pushes an item on the loading screen void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_parent); -- 2.39.2