]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_demo.c
334
[xonotic/darkplaces.git] / cl_demo.c
index c6402413e5239946dc832227a7cfc798694d4c8e..cdbc2101efcf4e90369662e5cc66b6cd2b988246 100644 (file)
--- a/cl_demo.c
+++ b/cl_demo.c
@@ -20,6 +20,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 
+int old_vsync = 0;
+
 void CL_FinishTimeDemo (void);
 
 /*
@@ -188,6 +190,10 @@ void CL_ReadDemoMessage(void)
                {
                        MSG_BeginReading();
                        CL_ParseServerMessage();
+
+                       // In case the demo contains a "svc_disconnect" message
+                       if (!cls.demoplayback)
+                               return;
                }
                else
                {
@@ -319,6 +325,7 @@ void CL_PlayDemo_f (void)
 
        // disconnect from server
        CL_Disconnect ();
+       Host_ShutdownServer (false);
 
        // update networking ports (this is mainly just needed at startup)
        NetConn_ClientFrame();
@@ -338,6 +345,7 @@ void CL_PlayDemo_f (void)
 
        SCR_BeginLoadingPlaque ();
 
+       strlcpy(cls.demoname, name, sizeof(cls.demoname));
        cls.demoplayback = true;
        cls.state = ca_connected;
        cls.forcetrack = 0;
@@ -374,6 +382,9 @@ void CL_FinishTimeDemo (void)
        fpsmax = cls.td_minframetime > 0 ? 1.0 / cls.td_minframetime : 0;
        // LordHavoc: timedemo now prints out 7 digits of fraction, and min/avg/max
        Con_Printf("%i frames %5.7f seconds %5.7f fps\nmin/avg/max: %5.7f/%5.7f/%5.7f\n", frames, time, fpsavg, fpsmin, fpsavg, fpsmax);
+       Log_Printf("benchmark.log", "date %s | enginedate %s | demo %s | commandline %s | result %i frames %5.7f seconds %5.7f fps min/avg/max: %5.7f/%5.7f/%5.7f\n", Sys_TimeString("%Y-%m-%d %H:%M:%S"), buildstring, cls.demoname, cmdline.string, frames, time, fpsavg, fpsmin, fpsavg, fpsmax);
+       if (COM_CheckParm("-benchmark"))
+               Host_Quit_f();
 }
 
 /*
@@ -407,6 +418,6 @@ void CL_TimeDemo_f (void)
 
        cls.timedemo = true;
        // get first message this frame
-       cls.td_lastframe = -1;
+       cls.td_lastframe = -1;  
 }