]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_screen.c
Print when disconnected
[xonotic/darkplaces.git] / cl_screen.c
index 4cdbcf238ae37e9083ef2a759746511441224f1f..5a518f0fcd8c0d565d49b4b4e36f07276e830ef9 100644 (file)
@@ -690,7 +690,9 @@ static void SCR_SetUpToDrawConsole (void)
                framecounter = 0;
 #endif
 
-       if (scr_conforcewhiledisconnected.integer && key_dest == key_game && cls.signon != SIGNONS)
+       if (scr_conforcewhiledisconnected.integer >= 2 && key_dest == key_game && cls.signon != SIGNONS)
+               key_consoleactive |= KEY_CONSOLEACTIVE_FORCED;
+       else if (scr_conforcewhiledisconnected.integer >= 1 && key_dest == key_game && cls.signon != SIGNONS && !sv.active)
                key_consoleactive |= KEY_CONSOLEACTIVE_FORCED;
        else
                key_consoleactive &= ~KEY_CONSOLEACTIVE_FORCED;
@@ -2061,6 +2063,7 @@ int r_stereo_side;
 extern cvar_t v_isometric;
 extern cvar_t v_isometric_verticalfov;
 
+static void SCR_DrawLoadingScreen(qboolean clear);
 static void SCR_DrawScreen (void)
 {
        Draw_Frame();
@@ -2154,6 +2157,19 @@ static void SCR_DrawScreen (void)
                        R_RenderView(0, NULL, NULL, r_refdef.view.x, r_refdef.view.y, r_refdef.view.width, r_refdef.view.height);
                }
        }
+       else if (key_dest == key_game && key_consoleactive == 0 && (cls.state == ca_connected || cls.connect_trying))
+       {
+               // draw the loading screen for a while if we're still connecting and not forcing the console or menu to show up
+               char temp[64];
+               if (cls.signon > 0)
+                       SCR_PushLoadingScreen(va(temp, sizeof(temp), "Connect: Signon stage %i of %i", cls.signon, SIGNONS), 1.0);
+               else if (cls.connect_remainingtries > 0)
+                       SCR_PushLoadingScreen(va(temp, sizeof(temp), "Connect: Trying...  %i", cls.connect_remainingtries), 1.0);
+               else
+                       SCR_PushLoadingScreen(va(temp, sizeof(temp), "Connect: Waiting %i seconds for reply", 10 + cls.connect_remainingtries), 1.0);
+               SCR_DrawLoadingScreen(true);
+               SCR_PopLoadingScreen(false);
+       }
 
        // Don't apply debugging stuff like r_showsurfaces to the UI
        r_refdef.view.showdebug = false;
@@ -2301,7 +2317,7 @@ void SCR_UpdateLoadingScreenIfShown(void)
                SCR_UpdateLoadingScreen(loadingscreencleared, false);
 }
 
-void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_parent)
+void SCR_PushLoadingScreen (const char *msg, float len_in_parent)
 {
        loadingscreenstack_t *s = (loadingscreenstack_t *) Z_Malloc(sizeof(loadingscreenstack_t));
        s->prev = loadingscreenstack;
@@ -2323,7 +2339,6 @@ void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_paren
                s->absolute_loading_amount_len = 1;
        }
 
-       if(redraw)
                SCR_UpdateLoadingScreenIfShown();
 }
 
@@ -2529,13 +2544,6 @@ static void SCR_DrawLoadingScreen (qboolean clear)
        SCR_DrawLoadingStack();
 }
 
-static void SCR_DrawLoadingScreen_SharedFinish (qboolean clear)
-{
-       R_Mesh_Finish();
-       // refresh
-       VID_Finish();
-}
-
 static double loadingscreen_lastupdate;
 
 static void SCR_UpdateVars(void);
@@ -2558,10 +2566,7 @@ void SCR_UpdateLoadingScreen (qboolean clear, qboolean startup)
                loadingscreen_lastupdate = t;
        }
 
-       SCR_UpdateVars();
-
        // set up the r_texture_gammaramps texture which we need for rendering the loadingscreenpic
-       VID_UpdateGamma();
        R_UpdateVariables();
 
        if(!scr_loadingscreen_background.integer)
@@ -2614,7 +2619,11 @@ void SCR_UpdateLoadingScreen (qboolean clear, qboolean startup)
                SCR_DrawLoadingScreen(clear);
        }
 #endif
-       SCR_DrawLoadingScreen_SharedFinish(clear);
+
+       R_Mesh_Finish();
+       DrawQ_Finish();
+       // refresh
+       VID_Finish();
 
        // this goes into the event loop, and should prevent unresponsive cursor on vista
        old_key_dest = key_dest;