diff options
author | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-08-28 00:44:59 +0000 |
---|---|---|
committer | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-08-28 00:44:59 +0000 |
commit | c200b936e78a1d7fa6326aff5fb15699f9b78f3d (patch) | |
tree | b8dd7ba4ffd13b325ff39080901cdc81faa80dde /code/client | |
parent | 0392e2ec916bdd801717e4c61a1e102294964c4d (diff) | |
download | ioquake3-aero-c200b936e78a1d7fa6326aff5fb15699f9b78f3d.tar.gz ioquake3-aero-c200b936e78a1d7fa6326aff5fb15699f9b78f3d.zip |
Fix crash when recording to files and the map changes. Was caused by new, correct, behaviour of
FS_Restart() which would close the files before they'd be closed by the client.
git-svn-id: svn://svn.icculus.org/quake3/trunk@878 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/client')
-rw-r--r-- | code/client/cl_main.c | 3 | ||||
-rw-r--r-- | code/client/cl_parse.c | 9 | ||||
-rw-r--r-- | code/client/client.h | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/code/client/cl_main.c b/code/client/cl_main.c index 2df8cb1..6fc4cab 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -1199,6 +1199,9 @@ void CL_Vid_Restart_f( void ) { CL_CloseAVI( ); } + if(clc.demorecording) + CL_StopRecord_f(); + // don't let them loop during the restart S_StopAllSounds(); // shutdown the UI diff --git a/code/client/cl_parse.c b/code/client/cl_parse.c index d8ad6d7..e6b655a 100644 --- a/code/client/cl_parse.c +++ b/code/client/cl_parse.c @@ -482,8 +482,15 @@ void CL_ParseGamestate( msg_t *msg ) { // parse serverId and other cvars CL_SystemInfoChanged(); + // stop recording before FS_Restart closes the demo file + if(clc.demorecording) + CL_StopRecord_f(); + // same fore AVI recording + if(CL_VideoRecording()) + CL_CloseAVI(); + // reinitialize the filesystem if the game directory has changed - FS_ConditionalRestart( clc.checksumFeed ); + FS_ConditionalRestart( clc.checksumFeed ); // This used to call CL_StartHunkUsers, but now we enter the download state before loading the // cgame diff --git a/code/client/client.h b/code/client/client.h index 9db786a..89ea4c6 100644 --- a/code/client/client.h +++ b/code/client/client.h @@ -376,6 +376,7 @@ void CL_Snd_Restart_f (void); void CL_StartDemoLoop( void ); void CL_NextDemo( void ); void CL_ReadDemoMessage( void ); +void CL_StopRecord_f(void); void CL_InitDownloads(void); void CL_NextDownload(void); |