+#include "quakedef.h"
#ifdef WIN32
#include <io.h>
#include <signal.h>
-#include "quakedef.h"
-
#include <SDL.h>
// =======================================================================
// BUG: for some reason, NDELAY also affects stdout (1) when used on stdin (0).
int origflags = fcntl (1, F_GETFL, 0);
fcntl (1, F_SETFL, origflags & ~FNDELAY);
+#else
+#define write _write
#endif
while(*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;
while (_kbhit ())
{
c = _getch ();
- putch (c);
+ _putch (c);
if (c == '\r')
{
text[len] = 0;
- putch ('\n');
+ _putch ('\n');
len = 0;
return text;
}
{
if (len)
{
- putch (' ');
- putch (c);
+ _putch (' ');
+ _putch (c);
len--;
text[len] = 0;
}
return NULL;
}
-void Sys_Sleep(int milliseconds)
+void Sys_Sleep(int microseconds)
{
- if (milliseconds < 1)
- milliseconds = 1;
- SDL_Delay(milliseconds);
+ SDL_Delay(microseconds / 1000);
}
char *Sys_GetClipboardData (void)
{
if ((cliptext = GlobalLock (hClipboardData)) != 0)
{
- data = malloc (GlobalSize(hClipboardData)+1);
- strcpy (data, cliptext);
+ size_t allocsize;
+ allocsize = GlobalSize (hClipboardData) + 1;
+ data = Z_Malloc (allocsize);
+ strlcpy (data, cliptext, allocsize);
GlobalUnlock (hClipboardData);
}
}
int main (int argc, char *argv[])
{
- double frameoldtime, framenewtime;
-
signal(SIGFPE, SIG_IGN);
com_argc = argc;
fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY);
#endif
- Host_Init();
+ // we don't know which systems we'll want to init, yet...
+ SDL_Init(0);
- frameoldtime = Sys_DoubleTime () - 0.1;
- while (1)
- {
- // find time spent rendering last frame
- framenewtime = Sys_DoubleTime ();
+ Host_Main();
- Host_Frame (framenewtime - frameoldtime);
-
- frameoldtime = framenewtime;
- }
return 0;
}