diff --git a/Generals/Code/GameEngine/Source/Common/RTS/ActionManager.cpp b/Generals/Code/GameEngine/Source/Common/RTS/ActionManager.cpp index 71465d73471..90c3d126a77 100644 --- a/Generals/Code/GameEngine/Source/Common/RTS/ActionManager.cpp +++ b/Generals/Code/GameEngine/Source/Common/RTS/ActionManager.cpp @@ -455,8 +455,16 @@ Bool ActionManager::canResumeConstructionOf( const Object *obj, return FALSE; // TheSuperHackers @bugfix Stubbjax 06/01/2025 Ensure only the owner of the construction can resume it. +#if RETAIL_COMPATIBLE_CRC + Relationship r = obj->getRelationship(objectBeingConstructed); + + // only available to our allies + if( r != ALLIES ) + return FALSE; +#else if (obj->getControllingPlayer() != objectBeingConstructed->getControllingPlayer()) return FALSE; +#endif // if the objectBeingConstructed is not actually under construction we can't resume that! if( !objectBeingConstructed->getStatusBits().test( OBJECT_STATUS_UNDER_CONSTRUCTION ) ) diff --git a/GeneralsMD/Code/GameEngine/Source/Common/RTS/ActionManager.cpp b/GeneralsMD/Code/GameEngine/Source/Common/RTS/ActionManager.cpp index 600ee5ca255..83d2109f29f 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/RTS/ActionManager.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/RTS/ActionManager.cpp @@ -459,8 +459,16 @@ Bool ActionManager::canResumeConstructionOf( const Object *obj, return FALSE; // TheSuperHackers @bugfix Stubbjax 06/01/2025 Ensure only the owner of the construction can resume it. +#if RETAIL_COMPATIBLE_CRC + Relationship r = obj->getRelationship(objectBeingConstructed); + + // only available to our allies + if( r != ALLIES ) + return FALSE; +#else if (obj->getControllingPlayer() != objectBeingConstructed->getControllingPlayer()) return FALSE; +#endif // if the objectBeingConstructed is not actually under construction we can't resume that! if( !objectBeingConstructed->getStatusBits().test( OBJECT_STATUS_UNDER_CONSTRUCTION ) )