diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp index 3bb906b49cf..0f50a4a2f5a 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp @@ -490,12 +490,18 @@ void AssaultTransportAIUpdate::crc( Xfer *xfer ) //------------------------------------------------------------------------------------------------- /** Xfer method * Version Info: - * 1: Initial version */ + * 1: Initial version + * 2: TheSuperHackers @bugfix bobtista 14/08/2026 Serialize the new member flags, so members + * that boarded after the attack order are not ordered out of the transport on load */ //------------------------------------------------------------------------------------------------- void AssaultTransportAIUpdate::xfer( Xfer *xfer ) { // version +#if RETAIL_COMPATIBLE_XFER_SAVE XferVersion currentVersion = 1; +#else + XferVersion currentVersion = 2; +#endif XferVersion version = currentVersion; xfer->xferVersion( &version, currentVersion ); @@ -508,6 +514,10 @@ void AssaultTransportAIUpdate::xfer( Xfer *xfer ) { xfer->xferObjectID( &(m_memberIDs[ i ]) ); xfer->xferBool( &(m_memberHealing[ i ]) ); + if( version >= 2 ) + { + xfer->xferBool( &(m_newMember[ i ]) ); + } } xfer->xferCoord3D( &m_attackMoveGoalPos ); @@ -521,6 +531,11 @@ void AssaultTransportAIUpdate::xfer( Xfer *xfer ) xfer->xferBool( &m_isAttackMove ); xfer->xferBool( &m_isAttackObject ); + if( version >= 2 ) + { + xfer->xferBool( &m_newOccupantsAreNewMembers ); + } + } //------------------------------------------------------------------------------------------------- diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp index 3fac311f88b..a0b15a74721 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/AssaultTransportAIUpdate.cpp @@ -492,12 +492,18 @@ void AssaultTransportAIUpdate::crc( Xfer *xfer ) //------------------------------------------------------------------------------------------------- /** Xfer method * Version Info: - * 1: Initial version */ + * 1: Initial version + * 2: TheSuperHackers @bugfix bobtista 14/08/2026 Serialize the new member flags, so members + * that boarded after the attack order are not ordered out of the transport on load */ //------------------------------------------------------------------------------------------------- void AssaultTransportAIUpdate::xfer( Xfer *xfer ) { // version +#if RETAIL_COMPATIBLE_XFER_SAVE XferVersion currentVersion = 1; +#else + XferVersion currentVersion = 2; +#endif XferVersion version = currentVersion; xfer->xferVersion( &version, currentVersion ); @@ -510,6 +516,10 @@ void AssaultTransportAIUpdate::xfer( Xfer *xfer ) { xfer->xferObjectID( &(m_memberIDs[ i ]) ); xfer->xferBool( &(m_memberHealing[ i ]) ); + if( version >= 2 ) + { + xfer->xferBool( &(m_newMember[ i ]) ); + } } xfer->xferCoord3D( &m_attackMoveGoalPos ); @@ -523,6 +533,11 @@ void AssaultTransportAIUpdate::xfer( Xfer *xfer ) xfer->xferBool( &m_isAttackMove ); xfer->xferBool( &m_isAttackObject ); + if( version >= 2 ) + { + xfer->xferBool( &m_newOccupantsAreNewMembers ); + } + } //-------------------------------------------------------------------------------------------------