|
35 | 35 | #include "Common/RandomValue.h" |
36 | 36 | #include "Common/ThingTemplate.h" |
37 | 37 | #include "Common/Xfer.h" |
38 | | - |
| 38 | +#include "Common/PlayerList.h" |
39 | 39 | #include "GameLogic/AIPathfind.h" |
40 | 40 | #include "GameLogic/Locomotor.h" |
41 | 41 | #include "GameLogic/Module/AIUpdate.h" |
|
44 | 44 | #include "GameLogic/Module/PhysicsUpdate.h" |
45 | 45 | #include "GameLogic/Object.h" |
46 | 46 | #include "GameLogic/PartitionManager.h" |
47 | | - |
| 47 | +#include "GameClient/InGameUI.h" |
48 | 48 | #include "GameClient/Drawable.h" |
49 | 49 |
|
50 | 50 |
|
@@ -293,27 +293,20 @@ void JumpjetContain::onRemoving(Object* rider) |
293 | 293 | } |
294 | 294 | else |
295 | 295 | { |
296 | | - bool hasRallyPoint = false; |
297 | | - // Get the transport of the rider |
298 | | - Object* transport = TheGameLogic->findObjectByID(rider->getProducerID()); |
299 | | - if (transport) |
300 | | - { |
301 | | - // Get the building that produced the transport |
302 | | - Object* transportProducer = TheGameLogic->findObjectByID(transport->getProducerID()); |
303 | | - if (transportProducer) |
304 | | - { |
305 | | - // See if we need to set a rally point for the object being parachuted |
306 | | - ExitInterface* exitInterface = transportProducer->getObjectExitInterface(); |
307 | | - if (exitInterface && exitInterface->useSpawnRallyPoint()) |
308 | | - { |
309 | | - exitInterface->exitObjectViaDoor(rider, DOOR_1); |
310 | | - hasRallyPoint = true; |
311 | | - } |
312 | | - } |
313 | | - } |
| 296 | + riderAI->aiIdle(CMD_FROM_AI); // become idle. |
| 297 | + } |
| 298 | + } |
314 | 299 |
|
315 | | - if (!hasRallyPoint) |
316 | | - riderAI->aiIdle(CMD_FROM_AI); // become idle. |
| 300 | + // Reselect to avoid bug where it stays unresponsive |
| 301 | + if (rider->getControllingPlayer() == ThePlayerList->getLocalPlayer()) |
| 302 | + { |
| 303 | + Drawable* riderDraw = rider->getDrawable(); |
| 304 | + if (riderDraw && riderDraw->isSelected()) |
| 305 | + { |
| 306 | + // add to the current selection |
| 307 | + GameMessage* teamMsg = TheMessageStream->appendMessage(GameMessage::MSG_CREATE_SELECTED_GROUP_NO_SOUND); |
| 308 | + teamMsg->appendBooleanArgument(FALSE); |
| 309 | + teamMsg->appendObjectIDArgument(rider->getID()); |
317 | 310 | } |
318 | 311 | } |
319 | 312 |
|
|
0 commit comments