Skip to content

Commit 24ae0b7

Browse files
committed
bugfix(savegame): Fix object list order without Xfer version bump
1 parent 761e1b9 commit 24ae0b7

1 file changed

Lines changed: 3 additions & 12 deletions

File tree

Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4244,14 +4244,13 @@ void GameLogic::prepareLogicForObjectLoad()
42444244
* this version breaks compatibility with previous versions. (CBD)
42454245
* 5: Added xfering the BuildAssistant's sell list.
42464246
* 9: Added m_rankPointsToAddAtGameStart, or else on a load game, your RestartGame button will forget your exp
4247-
* 10: TheSuperHackers @tweak Save objects in reverse order so they load in correct order. Reverse object list for old saves.
42484247
*/
42494248
// ------------------------------------------------------------------------------------------------
42504249
void GameLogic::xfer( Xfer *xfer )
42514250
{
42524251

42534252
// version
4254-
const XferVersion currentVersion = 10;
4253+
const XferVersion currentVersion = 9;
42554254
XferVersion version = currentVersion;
42564255
xfer->xferVersion( &version, currentVersion );
42574256

@@ -4285,13 +4284,7 @@ void GameLogic::xfer( Xfer *xfer )
42854284
if( xfer->getXferMode() == XFER_SAVE )
42864285
{
42874286

4288-
// TheSuperHackers @fix bobtista 27/01/2026 Save objects in reverse order (newest first)
4289-
// so they load in the correct order (oldest objects at head of list).
4290-
Object *lastObj = nullptr;
42914287
for( obj = getFirstObject(); obj; obj = obj->getNextObject() )
4292-
lastObj = obj;
4293-
4294-
for( obj = lastObj; obj; obj = obj->getPrevObject() )
42954288
{
42964289

42974290
// get the object TOC entry for this template
@@ -4374,10 +4367,8 @@ void GameLogic::xfer( Xfer *xfer )
43744367

43754368
}
43764369

4377-
// TheSuperHackers @fix bobtista 27/01/2026 Reverse object list for old saves.
4378-
// Old saves stored objects oldest-first, which results in reversed order when loaded
4379-
// since objects are prepended during creation. Version 10+ saves in reverse order.
4380-
if ( version <= 9 )
4370+
// TheSuperHackers @fix bobtista 06/03/2026 Reverse object list after load.
4371+
// Objects are prepended during creation, which reverses the saved order.
43814372
{
43824373
Object *prev = nullptr;
43834374
Object *current = m_objList;

0 commit comments

Comments
 (0)