diff --git a/Generals/Code/GameEngine/Source/GameClient/Drawable.cpp b/Generals/Code/GameEngine/Source/GameClient/Drawable.cpp index 04dfd91e83..9891fb0f89 100644 --- a/Generals/Code/GameEngine/Source/GameClient/Drawable.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/Drawable.cpp @@ -3387,7 +3387,10 @@ void Drawable::drawHealthBar(const IRegion2D* healthBarRegion) // Color color, outlineColor; - if( obj->getStatusBits().test( OBJECT_STATUS_UNDER_CONSTRUCTION ) || (obj->isDisabled() && !obj->isDisabledByType(DISABLED_HELD)) ) + DisabledMaskType mask = obj->getDisabledFlags(); + mask.clear(MAKE_DISABLED_MASK(DISABLED_HELD)); + + if (obj->getStatusBits().test(OBJECT_STATUS_UNDER_CONSTRUCTION) || DISABLEDMASK_ANY_SET(mask)) { color = GameMakeColor( 0, healthRatio * 255.0f, 255, 255 );//blue to cyan outlineColor = GameMakeColor( 0, healthRatio * 128.0f, 128, 255 );//dark blue to dark cyan diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp index 795f98762b..328440a0ea 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp @@ -3885,7 +3885,10 @@ void Drawable::drawHealthBar(const IRegion2D* healthBarRegion) // Color color, outlineColor; - if( obj->getStatusBits().test( OBJECT_STATUS_UNDER_CONSTRUCTION ) || (obj->isDisabled() && !obj->isDisabledByType(DISABLED_HELD)) ) + DisabledMaskType mask = obj->getDisabledFlags(); + mask.clear(MAKE_DISABLED_MASK(DISABLED_HELD)); + + if (obj->getStatusBits().test(OBJECT_STATUS_UNDER_CONSTRUCTION) || DISABLEDMASK_ANY_SET(mask)) { color = GameMakeColor( 0, healthRatio * 255.0f, 255, 255 );//blue to cyan outlineColor = GameMakeColor( 0, healthRatio * 128.0f, 128, 255 );//dark blue to dark cyan