[iortcw] 483/497: SP: Fix loading cutscene autosaves
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 2e3c5fd2da204ea0f8cc2e51dd95ff09a1d5ccb9 Author: MAN-AT-ARMSDate: Sat Dec 19 07:37:31 2015 -0500 SP: Fix loading cutscene autosaves --- SP/code/game/g_save.c | 158 -- 1 file changed, 76 insertions(+), 82 deletions(-) diff --git a/SP/code/game/g_save.c b/SP/code/game/g_save.c index 45b150b..f7fa94c 100644 --- a/SP/code/game/g_save.c +++ b/SP/code/game/g_save.c @@ -1267,8 +1267,6 @@ qboolean G_SaveGame( char *username ) { G_SaveWriteError(); } - - // write out the entity structures i = sizeof( gentity_t ); if ( !G_SaveWrite( , sizeof( i ), f ) ) { @@ -1333,7 +1331,6 @@ qboolean G_SaveGame( char *username ) { G_SaveWriteError(); } - trap_FS_FCloseFile( f ); // check the byte count @@ -1374,6 +1371,7 @@ G_LoadGame */ void G_LoadGame( char *filename ) { char mapname[MAX_QPATH]; + char mapstr[MAX_QPATH]; fileHandle_t f; int i, leveltime, size, last; gentity_t *ent; @@ -1420,6 +1418,7 @@ void G_LoadGame( char *filename ) { // read the mapname (this is only used in the sever exe, so just discard it) trap_FS_Read( mapname, MAX_QPATH, f ); + Com_sprintf( mapstr, MAX_QPATH, "%s", mapname ); // read the level time trap_FS_Read( , sizeof( i ), f ); @@ -1498,7 +1497,6 @@ void G_LoadGame( char *filename ) { } trap_Cvar_Set( "r_savegameFogColor", infoString ); } - trap_SetConfigstring( CS_FOGVARS, infoString ); } //(SA) end @@ -1513,96 +1511,96 @@ void G_LoadGame( char *filename ) { } } - - - // reset all AAS blocking entities trap_AAS_SetAASBlockingEntity( vec3_origin, vec3_origin, -1 ); - // read the entity structures - trap_FS_Read( , sizeof( i ), f ); - size = i; - last = 0; - while ( 1 ) - { + if ( Q_stricmpn( mapstr, "cutscene", 8 ) ) { // Don't read in this stuff for cutscenes + // read the entity structures trap_FS_Read( , sizeof( i ), f ); - if ( i < 0 ) { - break; - } - if ( i >= MAX_GENTITIES ) { - trap_FS_FCloseFile( f ); - G_Error( "G_LoadGame: entitynum out of range (%i, MAX = %i)\n", i, MAX_GENTITIES ); - } - if ( i >= level.num_entities ) { // notify server - level.num_entities = i; - serverEntityUpdate = qtrue; - } - ent = _entities[i]; - ReadEntity( f, ent, size ); - // free all entities that we skipped - for ( ; last < i; last++ ) { - if ( g_entities[last].inuse && i != ENTITYNUM_WORLD ) { - if ( last < MAX_CLIENTS ) { - trap_DropClient( last, "" ); - } else { - G_FreeEntity( _entities[last] ); + size = i; + last = 0; + while ( 1 ) + { + trap_FS_Read( , sizeof( i ), f ); + if ( i < 0 ) { + break; + } + if ( i >= MAX_GENTITIES ) { + trap_FS_FCloseFile( f ); + G_Error( "G_LoadGame: entitynum out of range (%i, MAX = %i)\n", i, MAX_GENTITIES ); + } + if ( i >= level.num_entities ) { // notify server + level.num_entities = i; + serverEntityUpdate = qtrue; + } + ent = _entities[i]; + ReadEntity( f, ent, size ); + // free all entities that we skipped + for ( ; last < i; last++ ) { + if ( g_entities[last].inuse && i != ENTITYNUM_WORLD ) { + if ( last < MAX_CLIENTS ) { + trap_DropClient( last, "" ); + } else { + G_FreeEntity( _entities[last] ); + } } } + last = i + 1; } - last = i + 1; - } - // clear all remaining entities - for ( ent = _entities[last] ; last <
[iortcw] 483/497: SP: Fix loading cutscene autosaves
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 2e3c5fd2da204ea0f8cc2e51dd95ff09a1d5ccb9 Author: MAN-AT-ARMSDate: Sat Dec 19 07:37:31 2015 -0500 SP: Fix loading cutscene autosaves --- SP/code/game/g_save.c | 158 -- 1 file changed, 76 insertions(+), 82 deletions(-) diff --git a/SP/code/game/g_save.c b/SP/code/game/g_save.c index 45b150b..f7fa94c 100644 --- a/SP/code/game/g_save.c +++ b/SP/code/game/g_save.c @@ -1267,8 +1267,6 @@ qboolean G_SaveGame( char *username ) { G_SaveWriteError(); } - - // write out the entity structures i = sizeof( gentity_t ); if ( !G_SaveWrite( , sizeof( i ), f ) ) { @@ -1333,7 +1331,6 @@ qboolean G_SaveGame( char *username ) { G_SaveWriteError(); } - trap_FS_FCloseFile( f ); // check the byte count @@ -1374,6 +1371,7 @@ G_LoadGame */ void G_LoadGame( char *filename ) { char mapname[MAX_QPATH]; + char mapstr[MAX_QPATH]; fileHandle_t f; int i, leveltime, size, last; gentity_t *ent; @@ -1420,6 +1418,7 @@ void G_LoadGame( char *filename ) { // read the mapname (this is only used in the sever exe, so just discard it) trap_FS_Read( mapname, MAX_QPATH, f ); + Com_sprintf( mapstr, MAX_QPATH, "%s", mapname ); // read the level time trap_FS_Read( , sizeof( i ), f ); @@ -1498,7 +1497,6 @@ void G_LoadGame( char *filename ) { } trap_Cvar_Set( "r_savegameFogColor", infoString ); } - trap_SetConfigstring( CS_FOGVARS, infoString ); } //(SA) end @@ -1513,96 +1511,96 @@ void G_LoadGame( char *filename ) { } } - - - // reset all AAS blocking entities trap_AAS_SetAASBlockingEntity( vec3_origin, vec3_origin, -1 ); - // read the entity structures - trap_FS_Read( , sizeof( i ), f ); - size = i; - last = 0; - while ( 1 ) - { + if ( Q_stricmpn( mapstr, "cutscene", 8 ) ) { // Don't read in this stuff for cutscenes + // read the entity structures trap_FS_Read( , sizeof( i ), f ); - if ( i < 0 ) { - break; - } - if ( i >= MAX_GENTITIES ) { - trap_FS_FCloseFile( f ); - G_Error( "G_LoadGame: entitynum out of range (%i, MAX = %i)\n", i, MAX_GENTITIES ); - } - if ( i >= level.num_entities ) { // notify server - level.num_entities = i; - serverEntityUpdate = qtrue; - } - ent = _entities[i]; - ReadEntity( f, ent, size ); - // free all entities that we skipped - for ( ; last < i; last++ ) { - if ( g_entities[last].inuse && i != ENTITYNUM_WORLD ) { - if ( last < MAX_CLIENTS ) { - trap_DropClient( last, "" ); - } else { - G_FreeEntity( _entities[last] ); + size = i; + last = 0; + while ( 1 ) + { + trap_FS_Read( , sizeof( i ), f ); + if ( i < 0 ) { + break; + } + if ( i >= MAX_GENTITIES ) { + trap_FS_FCloseFile( f ); + G_Error( "G_LoadGame: entitynum out of range (%i, MAX = %i)\n", i, MAX_GENTITIES ); + } + if ( i >= level.num_entities ) { // notify server + level.num_entities = i; + serverEntityUpdate = qtrue; + } + ent = _entities[i]; + ReadEntity( f, ent, size ); + // free all entities that we skipped + for ( ; last < i; last++ ) { + if ( g_entities[last].inuse && i != ENTITYNUM_WORLD ) { + if ( last < MAX_CLIENTS ) { + trap_DropClient( last, "" ); + } else { + G_FreeEntity( _entities[last] ); + } } } + last = i + 1; } - last = i + 1; - } - // clear all remaining entities - for ( ent = _entities[last] ; last <