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;
extern cvar_t v_isometric;
extern cvar_t v_isometric_verticalfov;
+static void SCR_DrawLoadingScreen(qboolean clear);
static void SCR_DrawScreen (void)
{
Draw_Frame();
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;
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;
s->absolute_loading_amount_len = 1;
}
- if(redraw)
SCR_UpdateLoadingScreenIfShown();
}
SCR_DrawLoadingStack();
}
-static void SCR_DrawLoadingScreen_SharedFinish (qboolean clear)
-{
- R_Mesh_Finish();
- // refresh
- VID_Finish();
-}
-
static double loadingscreen_lastupdate;
static void SCR_UpdateVars(void);
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)
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;