]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
experimental new persistent console history (uses same buffer as console output)...
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index c8521f2753dd8300bb9e44c05d0aca2f44612d95..afce873dd0cc686f63adf1487527198ad9179662 100644 (file)
--- a/host.c
+++ b/host.c
@@ -60,7 +60,7 @@ double host_starttime = 0;
 cvar_t host_framerate = {0, "host_framerate","0", "locks frame timing to this value in seconds, 0.05 is 20fps for example, note that this can easily run too fast, use cl_maxfps if you want to limit your framerate instead, or sys_ticrate to limit server speed"};
 // shows time used by certain subsystems
 cvar_t host_speeds = {0, "host_speeds","0", "reports how much time is used in server/graphics/sound"};
-cvar_t host_sleep = {0, "host_sleep","1", "gives up some processing time to other applications each frame, value in milliseconds"};
+cvar_t host_sleep = {0, "host_sleep","0", "gives up some processing time to other applications each frame, value in milliseconds"};
 cvar_t cl_minfps = {CVAR_SAVE, "cl_minfps", "40", "minimum fps target - while the rendering performance is below this, it will drift toward lower quality"};
 cvar_t cl_minfps_fade = {CVAR_SAVE, "cl_minfps_fade", "0.2", "how fast the quality adapts to varying framerate"};
 cvar_t cl_minfps_qualitymax = {CVAR_SAVE, "cl_minfps_qualitymax", "1", "highest allowed drawdistance multiplier"};
@@ -619,7 +619,10 @@ void Host_Main(void)
        for (;;)
        {
                if (setjmp(host_abortframe))
+               {
+                       SCR_ClearLoadingScreen(false);
                        continue;                       // something bad happened, or the server disconnected
+               }
 
                oldrealtime = realtime;
                realtime = Sys_DoubleTime();
@@ -667,9 +670,6 @@ void Host_Main(void)
 
                cl.islocalgame = NetConn_IsLocalGame();
 
-               // begin gathering mouse input
-               in_mouse_x = in_mouse_y = 0;
-
                // get new key events
                Sys_SendKeyEvents();
 
@@ -858,6 +858,9 @@ void Host_Main(void)
                        if (host_framerate.value)
                                clframetime = host_framerate.value;
 
+                       if (cl.paused || (cl.islocalgame && (key_dest != key_game || key_consoleactive)))
+                               clframetime = 0;
+
                        if (cls.timedemo)
                                clframetime = cl.realframetime = cl_timer;
 
@@ -905,6 +908,9 @@ void Host_Main(void)
 
                        CDAudio_Update();
 
+                       // reset gathering of mouse input
+                       in_mouse_x = in_mouse_y = 0;
+
                        if (host_speeds.integer)
                        {
                                pass1 = (int)((time1 - time3)*1000000);
@@ -1209,6 +1215,7 @@ void Host_Shutdown(void)
        }
 
        Cmd_Shutdown();
+       Key_Shutdown();
        CL_Shutdown();
        Sys_Shutdown();
        Log_Close();