git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11483
d7cf8633-e32d-0410-b094-
e92efae38249
if (cls.timedemo)
CL_FinishTimeDemo ();
if (cls.timedemo)
CL_FinishTimeDemo ();
- if (COM_CheckParm("-demo") || COM_CheckParm("-capturedemo"))
- Host_Quit_f();
+ if (!cls.demostarting) // only quit if not starting another demo
+ if (COM_CheckParm("-demo") || COM_CheckParm("-capturedemo"))
+ Host_Quit_f();
CL_WriteDemoMessage
Dumps the current net message, prefixed by the length and view angles
CL_WriteDemoMessage
Dumps the current net message, prefixed by the length and view angles
*/
void CL_WriteDemoMessage (sizebuf_t *message)
{
*/
void CL_WriteDemoMessage (sizebuf_t *message)
{
char name[MAX_QPATH];
int c;
qboolean neg = false;
char name[MAX_QPATH];
int c;
qboolean neg = false;
+ // open the demo file
+ strlcpy (name, Cmd_Argv(1), sizeof (name));
+ FS_DefaultExtension (name, ".dem", sizeof (name));
+ f = FS_OpenVirtualFile(name, false);
+ if (!f)
+ {
+ Con_Printf("ERROR: couldn't open %s.\n", name);
+ cls.demonum = -1; // stop demo loop
+ return;
+ }
+
+ cls.demostarting = true;
+
// disconnect from server
CL_Disconnect ();
Host_ShutdownServer ();
// disconnect from server
CL_Disconnect ();
Host_ShutdownServer ();
// update networking ports (this is mainly just needed at startup)
NetConn_UpdateSockets();
// update networking ports (this is mainly just needed at startup)
NetConn_UpdateSockets();
- // open the demo file
- strlcpy (name, Cmd_Argv(1), sizeof (name));
- FS_DefaultExtension (name, ".dem", sizeof (name));
cls.protocol = PROTOCOL_QUAKE;
Con_Printf("Playing demo %s.\n", name);
cls.protocol = PROTOCOL_QUAKE;
Con_Printf("Playing demo %s.\n", name);
- cls.demofile = FS_OpenVirtualFile(name, false);
- if (!cls.demofile)
- {
- Con_Print("ERROR: couldn't open.\n");
- cls.demonum = -1; // stop demo loop
- return;
- }
strlcpy(cls.demoname, name, sizeof(cls.demoname));
cls.demoplayback = true;
strlcpy(cls.demoname, name, sizeof(cls.demoname));
cls.demoplayback = true;
if (neg)
cls.forcetrack = -cls.forcetrack;
if (neg)
cls.forcetrack = -cls.forcetrack;
+
+ cls.demostarting = false;
fs_offset_t demo_lastcsprogssize;
int demo_lastcsprogscrc;
qboolean demoplayback;
fs_offset_t demo_lastcsprogssize;
int demo_lastcsprogscrc;
qboolean demoplayback;
+ qboolean demostarting; // set if currently starting a demo, to stop -demo from quitting when switching to another demo
qboolean timedemo;
// -1 = use normal cd track
int forcetrack;
qboolean timedemo;
// -1 = use normal cd track
int forcetrack;