diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp index 6d9aef10c6..3f014ddc1c 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp @@ -82,6 +82,17 @@ OCLUpdate::~OCLUpdate( void ) //------------------------------------------------------------------------------------------------- UpdateSleepTime OCLUpdate::update( void ) { +#if !RETAIL_COMPATIBLE_CRC + // TheSuperHackers @bugfix dizzyj/Caball009/Mauller 14/07/2025 prevent triggering supply drop when subdued while under construction + // When the construction is finished, we allow the timer to be initialized and then start shifting the timer while subdued + if ( m_timerStartedFrame > 0 && getObject()->isDisabled() ) + { + m_nextCreationFrame++; + m_timerStartedFrame++; + return UPDATE_SLEEP_NONE; + } +#endif + /// @todo srj use SLEEPY_UPDATE here if( shouldCreate() ) { diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp index 73b5fab525..dc9d6ef701 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp @@ -123,11 +123,22 @@ OCLUpdate::~OCLUpdate( void ) //------------------------------------------------------------------------------------------------- UpdateSleepTime OCLUpdate::update( void ) { +#if RETAIL_COMPATIBLE_CRC if( getObject()->isDisabled() ) { m_nextCreationFrame++; return UPDATE_SLEEP_NONE; } +#else + // TheSuperHackers @bugfix dizzyj/Caball009/Mauller 14/07/2025 prevent triggering supply drop when subdued while under construction + // When the construction is finished, we allow the timer to be initialized and then start shifting the timer while subdued + if ( m_timerStartedFrame > 0 && getObject()->isDisabled() ) + { + m_nextCreationFrame++; + m_timerStartedFrame++; + return UPDATE_SLEEP_NONE; + } +#endif const OCLUpdateModuleData *data = getOCLUpdateModuleData();