cvar_t sys_usetimegettime = {CVAR_SAVE, "sys_usetimegettime", "1"};
-// # of seconds to wait on Sys_Error running dedicated before exiting
-#define CONSOLE_ERROR_TIMEOUT 60.0
-// sleep time on pause or minimization
-#define PAUSE_SLEEP 50
-// sleep time when not focus
-#define NOT_FOCUS_SLEEP 20
-
-static qboolean sc_return_on_enter = false;
HANDLE hinput, houtput;
static HANDLE tevent;
===============================================================================
*/
-void SleepUntilInput (int time);
-
void Sys_Error (const char *error, ...)
{
va_list argptr;
static int in_sys_error0 = 0;
static int in_sys_error1 = 0;
static int in_sys_error2 = 0;
+ static int in_sys_error3 = 0;
va_start (argptr, error);
- vsnprintf (text, sizeof (text), error, argptr);
+ dpvsnprintf (text, sizeof (text), error, argptr);
va_end (argptr);
+ Con_Printf ("Quake Error: %s\n", text);
+
// close video so the message box is visible, unless we already tried that
if (!in_sys_error0 && cls.state != ca_dedicated)
{
in_sys_error0 = 1;
VID_Shutdown();
}
- MessageBox(NULL, text, "Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP);
+
+ if (!in_sys_error3 && cls.state != ca_dedicated)
+ {
+ in_sys_error3 = true;
+ MessageBox(NULL, text, "Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP);
+ }
if (!in_sys_error1)
{
if (!in_sys_error2)
{
in_sys_error2 = 1;
- DeinitConProc ();
+ Sys_Shutdown ();
}
exit (1);
len = 0;
return text;
}
- else if (sc_return_on_enter)
- {
- // special case to allow exiting from the error handler on Enter
- text[0] = '\r';
- len = 0;
- return text;
- }
break;
*/
-void SleepUntilInput (int time)
-{
- MsgWaitForMultipleObjects(1, &tevent, false, time, QS_ALLINPUT);
-}
-
-
/*
==================
WinMain
lpBuffer.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus (&lpBuffer);
- com_argc = 1;
program_name[sizeof(program_name)-1] = 0;
GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1);
+
+ com_argc = 1;
+ com_argv = argv;
argv[0] = program_name;
// FIXME: this tokenizer is rather redundent, call a more general one
while (*lpCmdLine && (com_argc < MAX_NUM_ARGVS))
{
- while (*lpCmdLine && *lpCmdLine <= 32)
+ while (*lpCmdLine && *lpCmdLine <= ' ')
lpCmdLine++;
- if (*lpCmdLine)
- {
- if (*lpCmdLine == '\"')
- {
- // quoted string
- argv[com_argc] = lpCmdLine;
- com_argc++;
-
- while (*lpCmdLine && (*lpCmdLine != '\"'))
- lpCmdLine++;
-
- if (*lpCmdLine)
- {
- *lpCmdLine = 0;
- lpCmdLine++;
- }
-
- if (*lpCmdLine == '\"')
- lpCmdLine++;
- }
- else
- {
- // unquoted word
- argv[com_argc] = lpCmdLine;
- com_argc++;
+ if (!*lpCmdLine)
+ break;
- while (*lpCmdLine && *lpCmdLine > 32)
- lpCmdLine++;
+ if (*lpCmdLine == '\"')
+ {
+ // quoted string
+ lpCmdLine++;
+ argv[com_argc] = lpCmdLine;
+ com_argc++;
+ while (*lpCmdLine && (*lpCmdLine != '\"'))
+ lpCmdLine++;
+ }
+ else
+ {
+ // unquoted word
+ argv[com_argc] = lpCmdLine;
+ com_argc++;
+ while (*lpCmdLine && *lpCmdLine > ' ')
+ lpCmdLine++;
+ }
- if (*lpCmdLine)
- {
- *lpCmdLine = 0;
- lpCmdLine++;
- }
- }
+ if (*lpCmdLine)
+ {
+ *lpCmdLine = 0;
+ lpCmdLine++;
}
}
- com_argv = argv;
Sys_Shared_EarlyInit();
/* main window message loop */
while (1)
{
- if (cls.state != ca_dedicated)
- {
- // yield the CPU for a little while when paused, minimized, or not the focus
- if ((cl.paused && !vid_activewindow) || vid_hidden)
- {
- SleepUntilInput (PAUSE_SLEEP);
- scr_skipupdate = 1; // no point in bothering to draw
- }
- else if (!vid_activewindow)
- SleepUntilInput (NOT_FOCUS_SLEEP);
- }
-
framenewtime = Sys_DoubleTime ();
Host_Frame (framenewtime - frameoldtime);
frameoldtime = framenewtime;