]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_demo.c
reuse screenspace depth texture unit for orthographic shadowmaps so they can coexist...
[xonotic/darkplaces.git] / cl_demo.c
index bffb265676e8535b83e0c93ee2cb7dfdc5f8b2ea..08f84745425d26fcecda08795abe157d892298bf 100644 (file)
--- a/cl_demo.c
+++ b/cl_demo.c
@@ -127,7 +127,7 @@ Dumps the current demo to a buffer, and resets the demo to its starting point.
 Used to insert csprogs.dat files as a download to the beginning of a demo file.
 ====================
 */
-void CL_CutDemo (void **buf, fs_offset_t *filesize)
+void CL_CutDemo (unsigned char **buf, fs_offset_t *filesize)
 {
        *buf = NULL;
        *filesize = 0;
@@ -136,7 +136,7 @@ void CL_CutDemo (void **buf, fs_offset_t *filesize)
        *buf = FS_LoadFile(cls.demoname, tempmempool, false, filesize);
 
        // restart the demo recording
-       cls.demofile = FS_Open(cls.demoname, "wb", false, false);
+       cls.demofile = FS_OpenRealFile(cls.demoname, "wb", false);
        if(!cls.demofile)
                Host_Error("failed to reopen the demo file");
        FS_Printf(cls.demofile, "%i\n", cls.forcetrack);
@@ -150,7 +150,7 @@ Adds the cut stuff back to the demo. Also frees the buffer.
 Used to insert csprogs.dat files as a download to the beginning of a demo file.
 ====================
 */
-void CL_PasteDemo (void **buf, fs_offset_t *filesize)
+void CL_PasteDemo (unsigned char **buf, fs_offset_t *filesize)
 {
        fs_offset_t startoffset = 0;
 
@@ -163,7 +163,7 @@ void CL_PasteDemo (void **buf, fs_offset_t *filesize)
        if(startoffset < *filesize)
                ++startoffset;
 
-       FS_Write(cls.demofile, (char*)*buf + startoffset, *filesize - startoffset);
+       FS_Write(cls.demofile, *buf + startoffset, *filesize - startoffset);
 
        Mem_Free(*buf);
        *buf = NULL;
@@ -179,7 +179,7 @@ Handles playback of demos
 */
 void CL_ReadDemoMessage(void)
 {
-       int r, i;
+       int i;
        float f;
 
        if (!cls.demoplayback)
@@ -251,7 +251,7 @@ void CL_ReadDemoMessage(void)
                VectorCopy(cl.mviewangles[0], cl.mviewangles[1]);
                for (i = 0;i < 3;i++)
                {
-                       r = (int)FS_Read(cls.demofile, &f, 4);
+                       FS_Read(cls.demofile, &f, 4);
                        cl.mviewangles[0][i] = LittleFloat(f);
                }
 
@@ -365,7 +365,7 @@ void CL_Record_f (void)
 
        // open the demo file
        Con_Printf("recording to %s.\n", name);
-       cls.demofile = FS_Open (name, "wb", false, false);
+       cls.demofile = FS_OpenRealFile(name, "wb", false);
        if (!cls.demofile)
        {
                Con_Print("ERROR: couldn't open.\n");
@@ -377,6 +377,8 @@ void CL_Record_f (void)
        FS_Printf(cls.demofile, "%i\n", cls.forcetrack);
 
        cls.demorecording = true;
+       cls.demo_lastcsprogssize = -1;
+       cls.demo_lastcsprogscrc = -1;
 }
 
 
@@ -412,7 +414,7 @@ void CL_PlayDemo_f (void)
        cls.protocol = PROTOCOL_QUAKE;
 
        Con_Printf("Playing demo %s.\n", name);
-       cls.demofile = FS_Open (name, "rb", false, false);
+       cls.demofile = FS_OpenVirtualFile(name, false);
        if (!cls.demofile)
        {
                Con_Print("ERROR: couldn't open.\n");