]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sys_linux.c
reworked transparency in palettes, made palette_complete be strictly opaque, added...
[xonotic/darkplaces.git] / sys_linux.c
index 2cda90728f61eadae4da357b02def3587523f343..9b6aa09e0c5b58fe594992581dda07ff944a0032 100644 (file)
@@ -21,21 +21,18 @@ cvar_t sys_usetimegettime = {CVAR_SAVE, "sys_usetimegettime", "1"};
 // =======================================================================
 // General routines
 // =======================================================================
-
-void Sys_Quit (void)
+void Sys_Shutdown (void)
 {
-       Host_Shutdown();
 #ifndef WIN32
        fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) & ~FNDELAY);
 #endif
        fflush(stdout);
-       exit(0);
 }
 
 void Sys_Error (const char *error, ...)
 {
        va_list argptr;
-       char string[1024];
+       char string[MAX_INPUTLINE];
 
 // change stdin to non blocking
 #ifndef WIN32
@@ -43,17 +40,18 @@ void Sys_Error (const char *error, ...)
 #endif
 
        va_start (argptr,error);
-       vsprintf (string,error,argptr);
+       dpvsnprintf (string, sizeof (string), error, argptr);
        va_end (argptr);
-       fprintf(stderr, "Error: %s\n", string);
+
+       Con_Printf ("Quake Error: %s\n", string);
 
        Host_Shutdown ();
        exit (1);
 }
 
-void Sys_Print(const char *text)
+void Sys_PrintToTerminal(const char *text)
 {
-       printf("%s", text);
+       fprintf(stdout, "%s", text);
 }
 
 double Sys_DoubleTime (void)
@@ -98,7 +96,12 @@ double Sys_DoubleTime (void)
                LARGE_INTEGER PerformanceCount;
 
                if (!QueryPerformanceFrequency (&PerformanceFreq))
-                       Sys_Error ("No hardware timer available");
+               {
+                       Con_Printf ("No hardware timer available\n");
+                       // fall back to timeGetTime
+                       Cvar_SetValueQuick(&sys_usetimegettime, true);
+                       return Sys_DoubleTime();
+               }
                QueryPerformanceCounter (&PerformanceCount);
 
                #ifdef __BORLANDC__
@@ -138,8 +141,8 @@ char *Sys_ConsoleInput(void)
 {
        if (cls.state == ca_dedicated)
        {
-               static char text[256];
-               int len;
+               static char text[MAX_INPUTLINE];
+               static unsigned int len = 0;
 #ifdef WIN32
                int c;
 
@@ -147,30 +150,30 @@ char *Sys_ConsoleInput(void)
                while (_kbhit ())
                {
                        c = _getch ();
-                       putch (c);
                        if (c == '\r')
                        {
-                               text[len] = 0;
+                               text[len] = '\0';
                                putch ('\n');
                                len = 0;
                                return text;
                        }
-                       if (c == 8)
+                       if (c == '\b')
                        {
                                if (len)
                                {
+                                       putch (c);
                                        putch (' ');
                                        putch (c);
                                        len--;
-                                       text[len] = 0;
                                }
                                continue;
                        }
-                       text[len] = c;
-                       len++;
-                       text[len] = 0;
-                       if (len == sizeof (text))
-                               len = 0;
+                       if (len < sizeof (text) - 1)
+                       {
+                               putch (c);
+                               text[len] = c;
+                               len++;
+                       }
                }
 #else
                fd_set fdset;
@@ -194,34 +197,45 @@ char *Sys_ConsoleInput(void)
        return NULL;
 }
 
-void Sys_Sleep(void)
+void Sys_Sleep(int milliseconds)
 {
+       if (milliseconds < 1)
+               milliseconds = 1;
 #ifdef WIN32
-       Sleep (1);
+       Sleep(milliseconds);
 #else
-       usleep(1);
+       usleep(milliseconds * 1000);
 #endif
 }
 
-int main (int argc, const char **argv)
+char *Sys_GetClipboardData (void)
+{
+       return NULL;
+}
+
+void Sys_InitConsole (void)
+{
+}
+
+void Sys_Init_Commands (void)
+{
+}
+
+int main (int argc, char **argv)
 {
        double frameoldtime, framenewtime;
 
        signal(SIGFPE, SIG_IGN);
 
        com_argc = argc;
-       com_argv = argv;
+       com_argv = (const char **)argv;
 
 #ifndef WIN32
        fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY);
 #endif
 
-       Sys_Shared_EarlyInit();
-
        Host_Init();
 
-       Sys_Shared_LateInit();
-
        frameoldtime = Sys_DoubleTime () - 0.1;
        while (1)
        {