X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=cl_demo.c;h=40ada2d1068ae8f46b89226852a9330dd503441f;hb=929f9a6fe217e9c8ca40a68a5229b08400233946;hp=ee61e500b9e818090291908d7c31a2a84c78fec8;hpb=45982a9894c5bff60ff494a0f82865ec267d52f7;p=xonotic%2Fdarkplaces.git diff --git a/cl_demo.c b/cl_demo.c index ee61e500..40ada2d1 100644 --- a/cl_demo.c +++ b/cl_demo.c @@ -35,6 +35,36 @@ read from the demo file. ============================================================================== */ +/* +===================== +CL_NextDemo + +Called to play the next demo in the demo loop +===================== +*/ +void CL_NextDemo (void) +{ + char str[1024]; + + if (cls.demonum == -1) + return; // don't play demos + + if (!cls.demos[cls.demonum][0] || cls.demonum == MAX_DEMOS) + { + cls.demonum = 0; + if (!cls.demos[cls.demonum][0]) + { + Con_Printf ("No demos listed with startdemos\n"); + cls.demonum = -1; + return; + } + } + + sprintf (str,"playdemo %s\n", cls.demos[cls.demonum]); + Cbuf_InsertText (str); + cls.demonum++; +} + /* ============== CL_StopPlayback @@ -42,6 +72,7 @@ CL_StopPlayback Called when a demo file runs out, or the user starts a game ============== */ +// LordHavoc: now called only by CL_Disconnect void CL_StopPlayback (void) { if (!cls.demoplayback) @@ -50,7 +81,6 @@ void CL_StopPlayback (void) Qclose (cls.demofile); cls.demoplayback = false; cls.demofile = NULL; - cls.state = ca_disconnected; if (cls.timedemo) CL_FinishTimeDemo (); @@ -134,7 +164,7 @@ int CL_GetMessage (void) r = Qread (cls.demofile, net_message.data, net_message.cursize); if (r != net_message.cursize) { - CL_StopPlayback (); + CL_Disconnect (); return 0; } @@ -259,7 +289,7 @@ void CL_Record_f (void) cls.forcetrack = track; Qprintf (cls.demofile, "%i\n", cls.forcetrack); - + cls.demorecording = true; } @@ -286,13 +316,11 @@ void CL_PlayDemo_f (void) return; } -// SCR_BeginLoadingPlaque(); - // // disconnect from server // CL_Disconnect (); - + // // open the demo file // @@ -308,6 +336,8 @@ void CL_PlayDemo_f (void) return; } + SCR_BeginLoadingPlaque (); + cls.demoplayback = true; cls.state = ca_connected; cls.forcetrack = 0; @@ -322,6 +352,7 @@ void CL_PlayDemo_f (void) cls.forcetrack = -cls.forcetrack; // ZOID, fscanf is evil // fscanf (cls.demofile, "%i\n", &cls.forcetrack); + } /*