From 0080a033bf9c99afa6b0234c64703b6d9345b83f Mon Sep 17 00:00:00 2001 From: Bobby Battista Date: Sat, 1 Aug 2026 16:55:17 +0100 Subject: [PATCH] bugfix(contain): Allow passengers to exit a container that is held in place --- .../GameLogic/Object/Contain/TransportContain.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp index cdadb37d560..a7893ba005c 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TransportContain.cpp @@ -579,11 +579,13 @@ Bool TransportContain::isSpecificRiderFreeToExit(Object* specificObject) return FALSE; #if !RETAIL_COMPATIBLE_CRC - // TheSuperHackers @bugfix Stubbjax 02/03/2026 If our parent container is held, then we - // are not free to exit. - DEBUG_ASSERTCRASH(specificObject->getContainedBy(), ("rider must be contained")); - if (specificObject->getContainedBy()->isDisabledByType(DISABLED_HELD)) + // TheSuperHackers @bugfix Stubbjax/bobtista 01/08/2026 We are not free to exit when our container + // is held inside another container. A container merely held in place on the terrain, + // eg the battle bus, can still unload passengers. + if (me->getContainedBy() != nullptr && me->isDisabledByType(DISABLED_HELD)) + { return FALSE; + } #endif // I can always kick people out if I am in the air, I know what I'm doing