@@ -4248,14 +4248,18 @@ void GameLogic::prepareLogicForObjectLoad()
42484248 * this version breaks compatibility with previous versions. (CBD)
42494249 * 5: Added xfering the BuildAssistant's sell list.
42504250 * 9: Added m_rankPointsToAddAtGameStart, or else on a load game, your RestartGame button will forget your exp
4251- * 10: TheSuperHackers @tweak Save objects in reverse order so they load in correct order. Reverse object list for old saves.
4251+ * 10: TheSuperHackers @fix Save objects in reverse order so they load in correct order
42524252 */
42534253// ------------------------------------------------------------------------------------------------
42544254void GameLogic::xfer ( Xfer *xfer )
42554255{
42564256
42574257 // version
4258+ #if RETAIL_COMPATIBLE_XFER_SAVE
4259+ const XferVersion currentVersion = 9 ;
4260+ #else
42584261 const XferVersion currentVersion = 10 ;
4262+ #endif
42594263 XferVersion version = currentVersion;
42604264 xfer->xferVersion ( &version, currentVersion );
42614265
@@ -4288,14 +4292,17 @@ void GameLogic::xfer( Xfer *xfer )
42884292 ObjectTOCEntry *tocEntry;
42894293 if ( xfer->getXferMode () == XFER_SAVE )
42904294 {
4291-
4292- // TheSuperHackers @fix bobtista 27/01 /2026 Save objects in reverse order (newest first)
4295+ # if !RETAIL_COMPATIBLE_XFER_SAVE
4296+ // TheSuperHackers @fix bobtista 07/03 /2026 Save objects in reverse order (newest first)
42934297 // so they load in the correct order (oldest objects at head of list).
42944298 Object *lastObj = nullptr ;
42954299 for ( obj = getFirstObject (); obj; obj = obj->getNextObject () )
42964300 lastObj = obj;
42974301
42984302 for ( obj = lastObj; obj; obj = obj->getPrevObject () )
4303+ #else
4304+ for ( obj = getFirstObject (); obj; obj = obj->getNextObject () )
4305+ #endif
42994306 {
43004307
43014308 // get the object TOC entry for this template
@@ -4378,9 +4385,9 @@ void GameLogic::xfer( Xfer *xfer )
43784385
43794386 }
43804387
4381- // TheSuperHackers @fix bobtista 27/01 /2026 Reverse object list for old saves .
4382- // Old saves stored objects oldest-first , which results in reversed order when loaded
4383- // since objects are prepended during creation. Version 10+ saves in reverse order.
4388+ // TheSuperHackers @fix bobtista 07/03 /2026 Reverse object list after load .
4389+ // Objects are prepended during creation , which reverses the saved order.
4390+ // Version 10+ saves in reverse order so they load in the correct order.
43844391 if ( version <= 9 )
43854392 {
43864393 Object *prev = nullptr ;
0 commit comments