aboutsummaryrefslogtreecommitdiffstats
path: root/code/client
diff options
context:
space:
mode:
authorthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-08-28 00:44:59 +0000
committerthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-08-28 00:44:59 +0000
commitc200b936e78a1d7fa6326aff5fb15699f9b78f3d (patch)
treeb8dd7ba4ffd13b325ff39080901cdc81faa80dde /code/client
parent0392e2ec916bdd801717e4c61a1e102294964c4d (diff)
downloadioquake3-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.c3
-rw-r--r--code/client/cl_parse.c9
-rw-r--r--code/client/client.h1
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);