[iortcw] 116/497: All: Fix download loop when loading 'media-only' mods from pure servers
Simon McVittie
smcv at debian.org
Fri Sep 8 10:36:35 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to annotated tag 1.42d
in repository iortcw.
commit 6a72eeab191138954ca7409df654fcb1ef6f13c7
Author: M4N4T4RMS at gmail.com <M4N4T4RMS at gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date: Sun May 18 14:17:35 2014 +0000
All: Fix download loop when loading 'media-only' mods from pure servers
---
MP/code/server/sv_init.c | 37 ++++++++++++++++++++-----------------
SP/code/server/sv_init.c | 20 ++++++++++----------
2 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/MP/code/server/sv_init.c b/MP/code/server/sv_init.c
index bd9f0c2..b224151 100644
--- a/MP/code/server/sv_init.c
+++ b/MP/code/server/sv_init.c
@@ -512,7 +512,7 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
int i;
int checksum;
qboolean isBot;
- char systemInfo[MAX_INFO_STRING];
+ char systemInfo[16384];
const char *p;
// shut down the existing game if it is running
@@ -534,18 +534,6 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
// clear collision map data // (SA) NOTE: TODO: used in missionpack
CM_ClearMap();
- // wipe the entire per-level structure
- SV_ClearServer();
-
- // MrE: main zone should be pretty much emtpy at this point
- // except for file system data and cached renderer data
- Z_LogHeap();
-
- // allocate empty config strings
- for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) {
- sv.configstrings[i] = CopyString( "" );
- }
-
// init client structures and svs.numSnapshotEntities
if ( !Cvar_VariableValue( "sv_running" ) ) {
SV_Startup();
@@ -579,6 +567,18 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
}
}
+ // wipe the entire per-level structure
+ SV_ClearServer();
+
+ // MrE: main zone should be pretty much emtpy at this point
+ // except for file system data and cached renderer data
+ Z_LogHeap();
+
+ // allocate empty config strings
+ for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) {
+ sv.configstrings[i] = CopyString( "" );
+ }
+
// Ridah
// DHM - Nerve :: We want to use the completion bar in multiplayer as well
if ( sv_gametype->integer == GT_SINGLE_PLAYER || sv_gametype->integer >= GT_WOLF ) {
@@ -712,6 +712,13 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
}
p = FS_LoadedPakNames();
Cvar_Set( "sv_pakNames", p );
+
+ // we want the server to reference the mp_bin pk3 that the client is expected to load from
+ // if a dedicated pure server we need to touch the cgame because it could be in a
+ // seperate pk3 file and the client will need to load the latest cgame
+ if ( com_dedicated->integer ) {
+ SV_TouchCGameDLL();
+ }
} else {
Cvar_Set( "sv_paks", "" );
Cvar_Set( "sv_pakNames", "" );
@@ -719,10 +726,6 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
// the server sends these to the clients so they can figure
// out which pk3s should be auto-downloaded
// NOTE: we consider the referencedPaks as 'required for operation'
-
- // we want the server to reference the mp_bin pk3 that the client is expected to load from
- SV_TouchCGameDLL();
-
p = FS_ReferencedPakChecksums();
Cvar_Set( "sv_referencedPaks", p );
p = FS_ReferencedPakNames();
diff --git a/SP/code/server/sv_init.c b/SP/code/server/sv_init.c
index 59ecfd3..4d7ddf9 100644
--- a/SP/code/server/sv_init.c
+++ b/SP/code/server/sv_init.c
@@ -691,7 +691,7 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
int i;
int checksum;
qboolean isBot;
- char systemInfo[MAX_INFO_STRING];
+ char systemInfo[16384];
const char *p;
// Ridah, enforce maxclients in single player, so there is enough room for AI characters
@@ -746,14 +746,6 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
// // clear collision map data // (SA) NOTE: TODO: used in missionpack
// CM_ClearMap();
- // wipe the entire per-level structure
- SV_ClearServer();
-
- // allocate empty config strings
- for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) {
- sv.configstrings[i] = CopyString( "" );
- }
-
// init client structures and svs.numSnapshotEntities
if ( !Cvar_VariableValue( "sv_running" ) ) {
SV_Startup();
@@ -787,6 +779,14 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
}
}
+ // wipe the entire per-level structure
+ SV_ClearServer();
+
+ // allocate empty config strings
+ for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) {
+ sv.configstrings[i] = CopyString( "" );
+ }
+
// Ridah
if ( sv_gametype->integer == GT_SINGLE_PLAYER ) {
SV_SetExpectedHunkUsage( va( "maps/%s.bsp", server ) );
@@ -799,7 +799,7 @@ void SV_SpawnServer( char *server, qboolean killBots ) {
Cvar_Set( "cl_paused", "0" );
// get a new checksum feed and restart the file system
- sv.checksumFeed = ( ( (int) rand() << 16 ) ^ rand() ) ^ Sys_Milliseconds();
+ sv.checksumFeed = ( ( (int) rand() << 16 ) ^ rand() ) ^ Com_Milliseconds();
FS_Restart( sv.checksumFeed );
CM_LoadMap( va( "maps/%s.bsp", server ), qfalse, &checksum );
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git
More information about the Pkg-games-commits
mailing list