@@ -4244,14 +4244,18 @@ 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.
4247+ * 10: TheSuperHackers @fix Save objects in reverse order so they load in correct order
42484248 */
42494249// ------------------------------------------------------------------------------------------------
42504250void GameLogic::xfer ( Xfer *xfer )
42514251{
42524252
42534253 // version
4254+ #if RETAIL_COMPATIBLE_XFER_SAVE
4255+ const XferVersion currentVersion = 9 ;
4256+ #else
42544257 const XferVersion currentVersion = 10 ;
4258+ #endif
42554259 XferVersion version = currentVersion;
42564260 xfer->xferVersion ( &version, currentVersion );
42574261
@@ -4284,14 +4288,17 @@ void GameLogic::xfer( Xfer *xfer )
42844288 ObjectTOCEntry *tocEntry;
42854289 if ( xfer->getXferMode () == XFER_SAVE )
42864290 {
4287-
4288- // TheSuperHackers @fix bobtista 27/01 /2026 Save objects in reverse order (newest first)
4291+ # if !RETAIL_COMPATIBLE_XFER_SAVE
4292+ // TheSuperHackers @fix bobtista 07/03 /2026 Save objects in reverse order (newest first)
42894293 // so they load in the correct order (oldest objects at head of list).
42904294 Object *lastObj = nullptr ;
42914295 for ( obj = getFirstObject (); obj; obj = obj->getNextObject () )
42924296 lastObj = obj;
42934297
42944298 for ( obj = lastObj; obj; obj = obj->getPrevObject () )
4299+ #else
4300+ for ( obj = getFirstObject (); obj; obj = obj->getNextObject () )
4301+ #endif
42954302 {
42964303
42974304 // get the object TOC entry for this template
@@ -4374,9 +4381,9 @@ void GameLogic::xfer( Xfer *xfer )
43744381
43754382 }
43764383
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.
4384+ // TheSuperHackers @fix bobtista 07/03 /2026 Reverse object list after load .
4385+ // Objects are prepended during creation , which reverses the saved order.
4386+ // Version 10+ saves in reverse order so they load in the correct order.
43804387 if ( version <= 9 )
43814388 {
43824389 Object *prev = nullptr ;
0 commit comments