From b4e6b0a43c24f5d502ac0d5f22f9f8c8579cdd74 Mon Sep 17 00:00:00 2001 From: Stubbjax Date: Tue, 25 Nov 2025 12:37:20 +1100 Subject: [PATCH 1/2] bugfix: A projectile can no longer be jammed multiple times --- .../GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp index 8800ed713c..b55c23ac9a 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp @@ -1323,6 +1323,9 @@ Bool ActiveBody::isSubdued() const #if RETAIL_COMPATIBLE_CRC return m_maxHealth <= m_currentSubdualDamage; #else + if (getObject()->isKindOf(KINDOF_PROJECTILE)) + return m_maxHealth <= m_currentSubdualDamage; + return getObject()->isDisabledByType(DISABLED_SUBDUED); #endif } From fc10fcc16892532d4de3a937e63c090641e8604f Mon Sep 17 00:00:00 2001 From: Stubbjax Date: Tue, 25 Nov 2025 19:04:57 +1100 Subject: [PATCH 2/2] docs: Add info comment --- .../Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp index b55c23ac9a..6ea3f866f7 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp @@ -1323,6 +1323,8 @@ Bool ActiveBody::isSubdued() const #if RETAIL_COMPATIBLE_CRC return m_maxHealth <= m_currentSubdualDamage; #else + // TheSuperHackers @info Projectiles don't receive the DISABLED_SUBDUED flag (or any flag for + // that matter) when jammed, so we have to check their subdual damage directly. if (getObject()->isKindOf(KINDOF_PROJECTILE)) return m_maxHealth <= m_currentSubdualDamage;