File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
GeneralsMD/Code/GameEngine/Source/GameClient/MessageStream
Generals/Code/GameEngine/Source/GameClient/MessageStream Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -3436,6 +3436,14 @@ GameMessageDisposition CommandTranslator::translateGameMessage(const GameMessage
3436
3436
Drawable *draw = TheTacticalView->pickDrawable (&msg->getArgument (0 )->pixelRegion .lo ,
3437
3437
TheInGameUI->isInForceAttackMode (),
3438
3438
(PickType) pickType);
3439
+
3440
+ // TheSuperHackers @bugfix Stubbjax 07/08/2025 Prevent dead units blocking positional context commands
3441
+ Object* obj = draw ? draw->getObject () : NULL ;
3442
+ if (!obj || (obj->isEffectivelyDead () && !obj->isKindOf (KINDOF_ALWAYS_SELECTABLE)))
3443
+ {
3444
+ draw = NULL ;
3445
+ }
3446
+
3439
3447
if (TheInGameUI->isInForceAttackMode ()) {
3440
3448
evaluateForceAttack ( draw, &pos, DO_COMMAND );
3441
3449
} else {
@@ -3489,6 +3497,13 @@ GameMessageDisposition CommandTranslator::translateGameMessage(const GameMessage
3489
3497
Drawable *draw = TheTacticalView->pickDrawable (&msg->getArgument (0 )->pixelRegion .lo ,
3490
3498
TheInGameUI->isInForceAttackMode (),
3491
3499
(PickType) pickType);
3500
+
3501
+ // TheSuperHackers @bugfix Stubbjax 07/08/2025 Prevent dead units blocking positional context commands
3502
+ Object* obj = draw ? draw->getObject () : NULL ;
3503
+ if (!obj || (obj->isEffectivelyDead () && !obj->isKindOf (KINDOF_ALWAYS_SELECTABLE)))
3504
+ {
3505
+ draw = NULL ;
3506
+ }
3492
3507
3493
3508
if (TheInGameUI->isInForceAttackMode ()) {
3494
3509
evaluateForceAttack ( draw, &pos, DO_COMMAND );
Original file line number Diff line number Diff line change @@ -3804,6 +3804,14 @@ GameMessageDisposition CommandTranslator::translateGameMessage(const GameMessage
3804
3804
Drawable *draw = TheTacticalView->pickDrawable (&msg->getArgument (0 )->pixelRegion .lo ,
3805
3805
TheInGameUI->isInForceAttackMode (),
3806
3806
(PickType) pickType);
3807
+
3808
+ // TheSuperHackers @bugfix Stubbjax 07/08/2025 Prevent dead units blocking positional context commands
3809
+ Object* obj = draw ? draw->getObject () : NULL ;
3810
+ if (!obj || (obj->isEffectivelyDead () && !obj->isKindOf (KINDOF_ALWAYS_SELECTABLE)))
3811
+ {
3812
+ draw = NULL ;
3813
+ }
3814
+
3807
3815
if (TheInGameUI->isInForceAttackMode ()) {
3808
3816
evaluateForceAttack ( draw, &pos, DO_COMMAND );
3809
3817
} else {
@@ -3875,6 +3883,13 @@ GameMessageDisposition CommandTranslator::translateGameMessage(const GameMessage
3875
3883
Drawable *draw = TheTacticalView->pickDrawable (&msg->getArgument (0 )->pixelRegion .lo ,
3876
3884
TheInGameUI->isInForceAttackMode (),
3877
3885
(PickType) pickType);
3886
+
3887
+ // TheSuperHackers @bugfix Stubbjax 07/08/2025 Prevent dead units blocking positional context commands
3888
+ Object* obj = draw ? draw->getObject () : NULL ;
3889
+ if (!obj || (obj->isEffectivelyDead () && !obj->isKindOf (KINDOF_ALWAYS_SELECTABLE)))
3890
+ {
3891
+ draw = NULL ;
3892
+ }
3878
3893
3879
3894
if (TheInGameUI->isInForceAttackMode ()) {
3880
3895
evaluateForceAttack ( draw, &pos, DO_COMMAND );
You can’t perform that action at this time.
0 commit comments