]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_demo.c
cl_demo: Move demo playback functionality to a separate function
[xonotic/darkplaces.git] / cl_demo.c
index f8fbe5b5b3ff65862093762106da16ddda50763f..a962785fbf79e8f8fe178b562fce1b70c0c143b5 100644 (file)
--- a/cl_demo.c
+++ b/cl_demo.c
@@ -401,29 +401,15 @@ void CL_Record_f(cmd_state_t *cmd)
        cls.demo_lastcsprogscrc = -1;
 }
 
-
-/*
-====================
-CL_PlayDemo_f
-
-playdemo [demoname]
-====================
-*/
-void CL_PlayDemo_f(cmd_state_t *cmd)
+void CL_PlayDemo(const char *demo)
 {
-       char    name[MAX_QPATH];
+       char name[MAX_QPATH];
        int c;
        qbool neg = false;
        qfile_t *f;
 
-       if (Cmd_Argc(cmd) != 2)
-       {
-               Con_Print("playdemo <demoname> : plays a demo\n");
-               return;
-       }
-
        // open the demo file
-       strlcpy (name, Cmd_Argv(cmd, 1), sizeof (name));
+       strlcpy (name, demo, sizeof (name));
        FS_DefaultExtension (name, ".dem", sizeof (name));
        f = FS_OpenVirtualFile(name, false);
        if (!f)
@@ -466,6 +452,24 @@ void CL_PlayDemo_f(cmd_state_t *cmd)
        cls.demostarting = false;
 }
 
+/*
+====================
+CL_PlayDemo_f
+
+playdemo [demoname]
+====================
+*/
+void CL_PlayDemo_f(cmd_state_t *cmd)
+{
+       if (Cmd_Argc(cmd) != 2)
+       {
+               Con_Print("playdemo <demoname> : plays a demo\n");
+               return;
+       }
+
+       CL_PlayDemo(Cmd_Argv(cmd, 1));
+}
+
 typedef struct
 {
        int frames;
@@ -605,7 +609,7 @@ void CL_TimeDemo_f(cmd_state_t *cmd)
 
        srand(0); // predictable random sequence for benchmarking
 
-       CL_PlayDemo_f (cmd);
+       CL_PlayDemo(Cmd_Argv(cmd, 1));
 
 // cls.td_starttime will be grabbed at the second frame of the demo, so
 // all the loading time doesn't get counted