X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=cl_demo.c;h=5f7ad08024e5ecdb189bf3930380475738fcbf65;hb=0698015dd21c456797d9fc81b86eee62824487fc;hp=c0af97923772c2480c59533da6867907b65911b6;hpb=7bbc05e4b0d3041dfdac6fc6c5506710594fe2c9;p=xonotic%2Fdarkplaces.git diff --git a/cl_demo.c b/cl_demo.c index c0af9792..5f7ad080 100644 --- a/cl_demo.c +++ b/cl_demo.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -78,7 +78,7 @@ void CL_StopPlayback (void) if (!cls.demoplayback) return; - Qclose (cls.demofile); + FS_Close (cls.demofile); cls.demoplayback = false; cls.demofile = NULL; @@ -103,14 +103,14 @@ void CL_WriteDemoMessage (void) return; len = LittleLong (net_message.cursize); - Qwrite (cls.demofile, &len, 4); + FS_Write (cls.demofile, &len, 4); for (i=0 ; i<3 ; i++) { f = LittleFloat (cl.viewangles[i]); - Qwrite (cls.demofile, &f, 4); + FS_Write (cls.demofile, &f, 4); } - Qwrite (cls.demofile, net_message.data, net_message.cursize); - Qflush (cls.demofile); + FS_Write (cls.demofile, net_message.data, net_message.cursize); + FS_Flush (cls.demofile); } /* @@ -124,13 +124,13 @@ int CL_GetMessage (void) { int r, i; float f; - + if (cls.demoplayback) { if (cls.demopaused) // LordHavoc: pausedemo return 0; - // decide if it is time to grab the next message + // decide if it is time to grab the next message if (cls.signon == SIGNONS) // always grab until fully connected { if (cls.timedemo) @@ -148,36 +148,36 @@ int CL_GetMessage (void) return 0; // don't need another message yet } } - + // get the next message - Qread (cls.demofile, &net_message.cursize, 4); + FS_Read (cls.demofile, &net_message.cursize, 4); VectorCopy (cl.mviewangles[0], cl.mviewangles[1]); for (i=0 ; i<3 ; i++) { - r = Qread (cls.demofile, &f, 4); + r = FS_Read (cls.demofile, &f, 4); cl.mviewangles[0][i] = LittleFloat (f); } - + net_message.cursize = LittleLong (net_message.cursize); - if (net_message.cursize > MAX_MSGLEN) - Host_Error ("Demo message > MAX_MSGLEN"); - r = Qread (cls.demofile, net_message.data, net_message.cursize); + if (net_message.cursize > MAX_DATAGRAM) + Host_Error ("Demo message > MAX_DATAGRAM"); + r = FS_Read (cls.demofile, net_message.data, net_message.cursize); if (r != net_message.cursize) { CL_Disconnect (); return 0; } - + return 1; } while (1) { r = NET_GetMessage (cls.netcon); - + if (r != 1 && r != 2) return r; - + // discard nop keepalive message if (net_message.cursize == 1 && net_message.data[0] == svc_nop) Con_Printf ("<-- server to client keepalive\n"); @@ -187,7 +187,7 @@ int CL_GetMessage (void) if (cls.demorecording) CL_WriteDemoMessage (); - + return r; } @@ -216,7 +216,7 @@ void CL_Stop_f (void) CL_WriteDemoMessage (); // finish up - Qclose (cls.demofile); + FS_Close (cls.demofile); cls.demofile = NULL; cls.demorecording = false; Con_Printf ("Completed demo\n"); @@ -231,9 +231,8 @@ record [cd track] */ void CL_Record_f (void) { - int c; - char name[MAX_OSPATH]; - int track; + int c, track; + char name[MAX_OSPATH]; if (cmd_source != src_command) return; @@ -257,30 +256,27 @@ void CL_Record_f (void) return; } -// write the forced cd track number, or -1 + // write the forced cd track number, or -1 if (c == 4) { track = atoi(Cmd_Argv(3)); Con_Printf ("Forcing CD track to %i\n", cls.forcetrack); } else - track = -1; + track = -1; + + // get the demo name + strncpy (name, Cmd_Argv(1), sizeof (name) - 1); + name[sizeof (name) - 1] = '\0'; + FS_DefaultExtension (name, ".dem"); - sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1)); - -// -// start the map up -// + // start the map up if (c > 2) Cmd_ExecuteString ( va("map %s", Cmd_Argv(2)), src_command); - -// -// open the demo file -// - COM_DefaultExtension (name, ".dem"); + // open the demo file Con_Printf ("recording to %s.\n", name); - cls.demofile = Qopen (name, "wb"); + cls.demofile = FS_Open (name, "wb", false); if (!cls.demofile) { Con_Printf ("ERROR: couldn't open.\n"); @@ -288,7 +284,7 @@ void CL_Record_f (void) } cls.forcetrack = track; - Qprintf (cls.demofile, "%i\n", cls.forcetrack); + FS_Printf (cls.demofile, "%i\n", cls.forcetrack); cls.demorecording = true; } @@ -316,19 +312,15 @@ void CL_PlayDemo_f (void) return; } -// -// disconnect from server -// + // disconnect from server CL_Disconnect (); -// -// open the demo file -// + // open the demo file strcpy (name, Cmd_Argv(1)); - COM_DefaultExtension (name, ".dem"); + FS_DefaultExtension (name, ".dem"); Con_Printf ("Playing demo from %s.\n", name); - COM_FOpenFile (name, &cls.demofile, false, true); + cls.demofile = FS_Open (name, "rb", false); if (!cls.demofile) { Con_Printf ("ERROR: couldn't open.\n"); @@ -342,7 +334,7 @@ void CL_PlayDemo_f (void) cls.state = ca_connected; cls.forcetrack = 0; - while ((c = Qgetc(cls.demofile)) != '\n') + while ((c = FS_Getc (cls.demofile)) != '\n') if (c == '-') neg = true; else @@ -362,9 +354,9 @@ void CL_FinishTimeDemo (void) { int frames; double time; // LordHavoc: changed timedemo accuracy to double - + cls.timedemo = false; - + // the first frame didn't count frames = (host_framecount - cls.td_startframe) - 1; time = realtime - cls.td_starttime; @@ -399,7 +391,7 @@ void CL_TimeDemo_f (void) // instantly hide console and deactivate it key_dest = key_game; - key_consoleactive = false; + key_consoleactive = 0; scr_conlines = 0; scr_con_current = 0;