r956 - in trunk/code: client qcommon

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Oct 27 08:49:55 EDT 2006


Author: thilo
Date: 2006-10-27 08:49:55 -0400 (Fri, 27 Oct 2006)
New Revision: 956

Modified:
   trunk/code/client/cl_main.c
   trunk/code/client/cl_parse.c
   trunk/code/client/client.h
   trunk/code/qcommon/common.c
Log:
- Remove "server crashed" message on server shutdown caused by local client disconnect.
- Stop demo recording on a new gamestate packet so the demo won't end with a new level load.


Modified: trunk/code/client/cl_main.c
===================================================================
--- trunk/code/client/cl_main.c	2006-10-26 15:13:52 UTC (rev 955)
+++ trunk/code/client/cl_main.c	2006-10-27 12:49:55 UTC (rev 956)
@@ -1202,6 +1202,9 @@
 		CL_CloseAVI( );
 	}
 
+	if(clc.demorecording)
+		CL_StopRecord_f();
+
 	// don't let them loop during the restart
 	S_StopAllSounds();
 	// shutdown the UI

Modified: trunk/code/client/cl_parse.c
===================================================================
--- trunk/code/client/cl_parse.c	2006-10-26 15:13:52 UTC (rev 955)
+++ trunk/code/client/cl_parse.c	2006-10-27 12:49:55 UTC (rev 956)
@@ -504,8 +504,15 @@
 	// parse serverId and other cvars
 	CL_SystemInfoChanged();
 
+	// stop recording now so the demo won't have an unnecessary level load at the end.
+	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

Modified: trunk/code/client/client.h
===================================================================
--- trunk/code/client/client.h	2006-10-26 15:13:52 UTC (rev 955)
+++ trunk/code/client/client.h	2006-10-27 12:49:55 UTC (rev 956)
@@ -391,6 +391,7 @@
 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);

Modified: trunk/code/qcommon/common.c
===================================================================
--- trunk/code/qcommon/common.c	2006-10-26 15:13:52 UTC (rev 955)
+++ trunk/code/qcommon/common.c	2006-10-27 12:49:55 UTC (rev 956)
@@ -262,9 +262,6 @@
 		code = ERR_FATAL;
 	}
 
-	// make sure we can get at our local stuff
-	FS_PureServerSetLoadedPaks( "", "" );
-
 	// if we are getting a solid stream of ERR_DROP, do an ERR_FATAL
 	currentTime = Sys_Milliseconds();
 	if ( currentTime - lastErrorTime < 100 ) {
@@ -285,20 +282,22 @@
 	vsprintf (com_errorMessage,fmt,argptr);
 	va_end (argptr);
 
-	if ( code != ERR_DISCONNECT && code != ERR_NEED_CD ) {
+	if (code != ERR_DISCONNECT && code != ERR_NEED_CD)
 		Cvar_Set("com_errorMessage", com_errorMessage);
-	}
 
-	if ( code == ERR_SERVERDISCONNECT ) {
+	if (code == ERR_DISCONNECT || code == ERR_SERVERDISCONNECT) {
 		CL_Disconnect( qtrue );
 		CL_FlushMemory( );
+		// make sure we can get at our local stuff
+		FS_PureServerSetLoadedPaks("", "");
 		com_errorEntered = qfalse;
 		longjmp (abortframe, -1);
-	} else if ( code == ERR_DROP || code == ERR_DISCONNECT ) {
+	} else if (code == ERR_DROP) {
 		Com_Printf ("********************\nERROR: %s\n********************\n", com_errorMessage);
 		SV_Shutdown (va("Server crashed: %s",  com_errorMessage));
 		CL_Disconnect( qtrue );
 		CL_FlushMemory( );
+		FS_PureServerSetLoadedPaks("", "");
 		com_errorEntered = qfalse;
 		longjmp (abortframe, -1);
 	} else if ( code == ERR_NEED_CD ) {
@@ -311,6 +310,7 @@
 		} else {
 			Com_Printf("Server didn't have CD\n" );
 		}
+		FS_PureServerSetLoadedPaks("", "");
 		longjmp (abortframe, -1);
 	} else {
 		CL_Shutdown ();




More information about the quake3-commits mailing list