From 24767c66139dcf7545bee28269bbd587090b0151 Mon Sep 17 00:00:00 2001 From: Bobby Battista Date: Wed, 22 Jul 2026 01:34:46 +0400 Subject: [PATCH 1/3] bugfix(savegame): Fix aircraft carrier losing its order when saving --- .../Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp index 9fb2ce9f23f..49fb2aed62b 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp @@ -1684,7 +1684,8 @@ void FlightDeckBehavior::xfer( Xfer *xfer ) xfer->xferUnsignedInt( &m_startedProductionFrame ); xfer->xferUnsignedInt( &m_nextAllowedProductionFrame ); xfer->xferObjectID( &m_designatedTarget ); - Int commandType; + // TheSuperHackers @bugfix bobtista 22/07/2026 Seed the temporary from the live command so saving writes the real order and does not overwrite m_designatedCommand with an uninitialized value. + Int commandType = (Int)m_designatedCommand; xfer->xferInt( &commandType ); m_designatedCommand = (AICommandType)commandType; xfer->xferCoord3D( &m_designatedPosition ); From af26005ab69c781a88ae63c6f4df2e29195b6892 Mon Sep 17 00:00:00 2001 From: Bobby Battista Date: Sat, 25 Jul 2026 12:38:08 +0100 Subject: [PATCH 2/3] docs(savegame): Clarify carrier command transfer comment --- .../Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp index 49fb2aed62b..1ceb55a8544 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp @@ -1684,7 +1684,8 @@ void FlightDeckBehavior::xfer( Xfer *xfer ) xfer->xferUnsignedInt( &m_startedProductionFrame ); xfer->xferUnsignedInt( &m_nextAllowedProductionFrame ); xfer->xferObjectID( &m_designatedTarget ); - // TheSuperHackers @bugfix bobtista 22/07/2026 Seed the temporary from the live command so saving writes the real order and does not overwrite m_designatedCommand with an uninitialized value. + // TheSuperHackers @bugfix bobtista 22/07/2026 Initialize the transfer value so saving does not + // overwrite m_designatedCommand with an uninitialized value. Int commandType = (Int)m_designatedCommand; xfer->xferInt( &commandType ); m_designatedCommand = (AICommandType)commandType; From 95ce83ece8c0a40de2bde6d187e7449926ad9792 Mon Sep 17 00:00:00 2001 From: Bobby Battista Date: Sat, 25 Jul 2026 13:12:02 +0100 Subject: [PATCH 3/3] docs(savegame): Remove carrier command transfer comment --- .../Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp index 1ceb55a8544..dfa85e6d907 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/FlightDeckBehavior.cpp @@ -1684,8 +1684,6 @@ void FlightDeckBehavior::xfer( Xfer *xfer ) xfer->xferUnsignedInt( &m_startedProductionFrame ); xfer->xferUnsignedInt( &m_nextAllowedProductionFrame ); xfer->xferObjectID( &m_designatedTarget ); - // TheSuperHackers @bugfix bobtista 22/07/2026 Initialize the transfer value so saving does not - // overwrite m_designatedCommand with an uninitialized value. Int commandType = (Int)m_designatedCommand; xfer->xferInt( &commandType ); m_designatedCommand = (AICommandType)commandType;