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-ARMS <m4n4t4...@gmail.com>
Date:   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( &i, 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( &i, 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( &i, 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( &i, 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 = &g_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( &g_entities[last] );
+               size = i;
+               last = 0;
+               while ( 1 )
+               {
+                       trap_FS_Read( &i, 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 = &g_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( &g_entities[last] 
);
+                                       }
                                }
                        }
+                       last = i + 1;
                }
-               last = i + 1;
-       }
 
-       // clear all remaining entities
-       for ( ent = &g_entities[last] ; last < MAX_GENTITIES ; last++, ent++ ) {
-               memset( ent, 0, sizeof( *ent ) );
-               ent->classname = "freed";
-               ent->freetime = level.time;
-               ent->inuse = qfalse;
-       }
+               // clear all remaining entities
+               for ( ent = &g_entities[last] ; last < MAX_GENTITIES ; last++, 
ent++ ) {
+                       memset( ent, 0, sizeof( *ent ) );
+                       ent->classname = "freed";
+                       ent->freetime = level.time;
+                       ent->inuse = qfalse;
+               }
 
-       // read the client structures
-       trap_FS_Read( &i, sizeof( i ), f );
-       size = i;
-       while ( 1 )
-       {
+               // read the client structures
                trap_FS_Read( &i, sizeof( i ), f );
-               if ( i < 0 ) {
-                       break;
-               }
-               if ( i > MAX_CLIENTS ) {
-                       trap_FS_FCloseFile( f );
-                       G_Error( "G_LoadGame: clientnum out of range\n" );
-               }
-               cl = &level.clients[i];
-               if ( cl->pers.connected == CON_DISCONNECTED ) {
-                       trap_FS_FCloseFile( f );
-                       G_Error( "G_LoadGame: client mis-match in savegame" );
+               size = i;
+               while ( 1 )
+               {
+                       trap_FS_Read( &i, sizeof( i ), f );
+                       if ( i < 0 ) {
+                               break;
+                       }
+                       if ( i > MAX_CLIENTS ) {
+                               trap_FS_FCloseFile( f );
+                               G_Error( "G_LoadGame: clientnum out of range\n" 
);
+                       }
+                       cl = &level.clients[i];
+                       if ( cl->pers.connected == CON_DISCONNECTED ) {
+                               trap_FS_FCloseFile( f );
+                               G_Error( "G_LoadGame: client mis-match in 
savegame" );
+                       }
+                       ReadClient( f, cl, size );
                }
-               ReadClient( f, cl, size );
-       }
 
-       // read the cast_state structures
-       trap_FS_Read( &i, sizeof( i ), f );
-       size = i;
-       while ( 1 )
-       {
+               // read the cast_state structures
                trap_FS_Read( &i, sizeof( i ), f );
-               if ( i < 0 ) {
-                       break;
+               size = i;
+               while ( 1 )
+               {
+                       trap_FS_Read( &i, sizeof( i ), f );
+                       if ( i < 0 ) {
+                               break;
+                       }
+                       if ( i > MAX_CLIENTS ) {
+                               trap_FS_FCloseFile( f );
+                               G_Error( "G_LoadGame: clientnum out of range\n" 
);
+                       }
+                       cs = &caststates[i];
+                       ReadCastState( f, cs, size );
                }
-               if ( i > MAX_CLIENTS ) {
-                       trap_FS_FCloseFile( f );
-                       G_Error( "G_LoadGame: clientnum out of range\n" );
+
+               // inform server of entity count if it has increased
+               if ( serverEntityUpdate ) {
+                       // let the server system know that there are more 
entities
+                       trap_LocateGameData( level.gentities, 
level.num_entities, sizeof( gentity_t ),
+                                                                
&level.clients[0].ps, sizeof( level.clients[0] ) );
                }
-               cs = &caststates[i];
-               ReadCastState( f, cs, size );
-       }
 
-       // inform server of entity count if it has increased
-       if ( serverEntityUpdate ) {
-               // let the server system know that there are more entities
-               trap_LocateGameData( level.gentities, level.num_entities, 
sizeof( gentity_t ),
-                                                        &level.clients[0].ps, 
sizeof( level.clients[0] ) );
        }
 
 //----(SA)     moved these up in ver 15
@@ -1621,7 +1619,6 @@ void G_LoadGame( char *filename ) {
                                        trap_SetConfigstring( CS_MUSIC_QUEUE, 
musicString );
                                }
                        }
-
                }
 
                if ( ver > 13 ) {
@@ -1633,11 +1630,8 @@ void G_LoadGame( char *filename ) {
                        aicast_skillscale = (float)i / (float)GSKILL_MAX;
                }
        }
-
 //----(SA)     end moved
 
-
-
        trap_FS_FCloseFile( f );
 
        // now increment the attempts field and update totalplaytime according 
to cvar

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/iortcw.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to