]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
also enter the event loop during Q3 map load... should prevent Vista's not responding...
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 4 Apr 2009 20:49:12 +0000 (20:49 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 4 Apr 2009 20:49:12 +0000 (20:49 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8865 d7cf8633-e32d-0410-b094-e92efae38249

cl_parse.c
cl_screen.c
screen.h

index c1e2f4ec6c7062946203a944d5d2cfc55708418e..26dba1d0efa45d435fe86b8c917835f7123e2cb0 100644 (file)
@@ -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;
index 0a9f4664babdcbc2b072bf90a054e092c66006ca..1c963db773337f3b2b155db31f6c2d54e3388928 100644 (file)
@@ -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)
index ab807cbd72a617a44acacdfc6f296271479abc3f..3efbd7a98029cbd707eecd7d741d83879c5434d2 100644 (file)
--- 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);