diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp index 2916b521585..3bb7185f97d 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp @@ -503,7 +503,13 @@ void TransportContain::onCapture( Player *oldOwner, Player *newOwner ) else { //Use standard +#if RETAIL_COMPATIBLE_CRC orderAllPassengersToExit( CMD_FROM_AI ); +#else + // TheSuperHackers @bugfix Stubbjax 20/11/2025 Only eject passengers if the new owner is not allied with the old owner. + if (oldOwner->getRelationship(newOwner->getDefaultTeam()) != ALLIES) + orderAllPassengersToExit(CMD_FROM_AI); +#endif } } } diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp index e024d449da9..ab36cc97709 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp @@ -644,7 +644,13 @@ void TransportContain::onCapture( Player *oldOwner, Player *newOwner ) else { //Use standard +#if RETAIL_COMPATIBLE_CRC orderAllPassengersToExit( CMD_FROM_AI, FALSE ); +#else + // TheSuperHackers @bugfix Stubbjax 20/11/2025 Only eject passengers if the new owner is not allied with the old owner. + if (oldOwner->getRelationship(newOwner->getDefaultTeam()) != ALLIES) + orderAllPassengersToExit(CMD_FROM_AI, FALSE); +#endif } } }