HANDLE hinput, houtput;
+#ifdef QHOST
static HANDLE tevent;
static HANDLE hFile;
static HANDLE heventParent;
static HANDLE heventChild;
+#endif
/*
void Sys_Shutdown (void)
{
+#ifdef QHOST
if (tevent)
CloseHandle (tevent);
+#endif
if (cls.state == ca_dedicated)
FreeConsole ();
+#ifdef QHOST
// shut down QHOST hooks if necessary
DeinitConProc ();
+#endif
}
void Sys_PrintToTerminal(const char *text)
if (newtime - oldtime < -0.01)
Con_Printf("Sys_DoubleTime: time stepped backwards (went from %f to %f, difference %f)\n", oldtime, newtime, newtime - oldtime);
}
+ else if (newtime > oldtime + 1800)
+ {
+ Con_Printf("Sys_DoubleTime: time stepped forward (went from %f to %f, difference %f)\n", oldtime, newtime, newtime - oldtime);
+ }
else
curtime += newtime - oldtime;
oldtime = newtime;
if (cls.state != ca_dedicated)
return NULL;
-
for ( ;; )
{
if (!GetNumberOfConsoleInputEvents (hinput, &numevents))
- Sys_Error ("Error getting # of console events");
+ {
+ cls.state = ca_disconnected;
+ Sys_Error ("Error getting # of console events (error code %x)", (unsigned int)GetLastError());
+ }
if (numevents <= 0)
break;
if (!ReadConsoleInput(hinput, recs, 1, &numread))
- Sys_Error ("Error reading console input");
+ {
+ cls.state = ca_disconnected;
+ Sys_Error ("Error reading console input (error code %x)", (unsigned int)GetLastError());
+ }
if (numread != 1)
- Sys_Error ("Couldn't read console input");
+ {
+ cls.state = ca_disconnected;
+ Sys_Error ("Couldn't read console input (error code %x)", (unsigned int)GetLastError());
+ }
if (recs[0].EventType == KEY_EVENT)
{
void Sys_InitConsole (void)
{
+#ifdef QHOST
int t;
// initialize the windows dedicated server console if needed
if (!tevent)
Sys_Error ("Couldn't create event");
+#endif
houtput = GetStdHandle (STD_OUTPUT_HANDLE);
hinput = GetStdHandle (STD_INPUT_HANDLE);
// if (cls.state == ca_dedicated)
if (COM_CheckParm("-dedicated"))
{
- if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE))
+ //if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE)) // LordHavoc: on Windows XP this is never 0 or invalid, but hinput is invalid
{
- AllocConsole ();
- houtput = GetStdHandle (STD_OUTPUT_HANDLE);
- hinput = GetStdHandle (STD_INPUT_HANDLE);
+ if (!AllocConsole ())
+ Sys_Error ("Couldn't create dedicated server console (error code %x)", (unsigned int)GetLastError());
+ houtput = GetStdHandle (STD_OUTPUT_HANDLE);
+ hinput = GetStdHandle (STD_INPUT_HANDLE);
}
if ((houtput == 0) || (houtput == INVALID_HANDLE_VALUE))
Sys_Error ("Couldn't create dedicated server console");
+#ifdef QHOST
#ifdef _WIN64
#define atoi _atoi64
#endif
}
InitConProc (hFile, heventParent, heventChild);
+#endif
}
// because sound is off until we become active