diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DeployStyleAIUpdate.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DeployStyleAIUpdate.cpp index ebc018ce8d5..e591f49105b 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DeployStyleAIUpdate.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DeployStyleAIUpdate.cpp @@ -143,7 +143,14 @@ UpdateSleepTime DeployStyleAIUpdate::update() } } - if( isInRange || isInGuardIdleState ) + // TheSuperHackers @bugfix Caball009 27/07/2026 The pathfinding code may use a stricter attack range check than used + // in this function, so the range check is insufficient. Objects are not allowed to deploy and attack if they're moving. +#if RETAIL_COMPATIBLE_CRC + if (isInRange || isInGuardIdleState) +#else + // @todo Simplify the code by moving the second branch up so 'isTryingToMove' is checked first. + if (!isTryingToMove && (isInRange || isInGuardIdleState)) +#endif { switch( m_state ) {