diff --git a/Generals/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h b/Generals/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h index e1f88ea6907..f965f7d00a6 100644 --- a/Generals/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h +++ b/Generals/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h @@ -135,7 +135,7 @@ class DockUpdate : public UpdateModule , public DockUpdateInterface Coord3D m_dockPosition; Coord3D m_exitPosition; Int m_numberApproachPositions; - Int m_numberApproachPositionBones; + Int m_numberApproachPositionBones; ///< Recomputed after loading; does not need serialization. // These are real variables local to my specific needs here in DockUpdate Bool m_positionsLoaded; ///< FALSE until we have loaded all the docking positions diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp index 7ca5deccccb..ccf2f2dc5c8 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp @@ -543,7 +543,10 @@ void DockUpdate::crc( Xfer *xfer ) } // ------------------------------------------------------------------------------------------------ -/** Xfer Method */ +/** Xfer Method + * Version Info: + * 1: Initial version + */ // ------------------------------------------------------------------------------------------------ void DockUpdate::xfer( Xfer *xfer ) { @@ -627,5 +630,11 @@ void DockUpdate::loadPostProcess() // call base class UpdateModule::loadPostProcess(); + // TheSuperHackers @bugfix bobtista 30/09/2026 Restore the unsaved approach bone count. + if( m_positionsLoaded ) + { + loadDockPositions(); + } + } diff --git a/GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h b/GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h index a3b69520f64..fd43af70545 100644 --- a/GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h +++ b/GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DockUpdate.h @@ -135,7 +135,7 @@ class DockUpdate : public UpdateModule , public DockUpdateInterface Coord3D m_dockPosition; Coord3D m_exitPosition; Int m_numberApproachPositions; - Int m_numberApproachPositionBones; + Int m_numberApproachPositionBones; ///< Recomputed after loading; does not need serialization. // These are real variables local to my specific needs here in DockUpdate Bool m_positionsLoaded; ///< FALSE until we have loaded all the docking positions diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp index ec4c2dbd8bb..d0180b12705 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/DockUpdate/DockUpdate.cpp @@ -558,7 +558,10 @@ void DockUpdate::crc( Xfer *xfer ) } // ------------------------------------------------------------------------------------------------ -/** Xfer Method */ +/** Xfer Method + * Version Info: + * 1: Initial version + */ // ------------------------------------------------------------------------------------------------ void DockUpdate::xfer( Xfer *xfer ) { @@ -642,5 +645,11 @@ void DockUpdate::loadPostProcess() // call base class UpdateModule::loadPostProcess(); + // TheSuperHackers @bugfix bobtista 30/09/2026 Restore the unsaved approach bone count. + if( m_positionsLoaded ) + { + loadDockPositions(); + } + }