From 72c20b724f2a4ab0f0a7320074ad745e3311a423 Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Sun, 25 Apr 2021 13:43:08 +0000 Subject: [PATCH] Exploit fix: don't allow "handcuff" cursor to reveal position of invisible enemy. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8977 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Handle Items.cpp | 2 +- Tactical/UI Cursors.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index d6209dd9f..ac7231209 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -1363,7 +1363,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa } // Flugente: handcuffing people - if (gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag(usHandItem, HANDCUFFS) && pTargetSoldier) + if (gGameExternalOptions.fAllowPrisonerSystem && HasItemFlag(usHandItem, HANDCUFFS) && pTargetSoldier && pTargetSoldier->bVisible >= 0) { if (!pTargetSoldier->CanBeCaptured()) return ITEM_HANDLE_REFUSAL; diff --git a/Tactical/UI Cursors.cpp b/Tactical/UI Cursors.cpp index 2c327fd26..93d8d36be 100644 --- a/Tactical/UI Cursors.cpp +++ b/Tactical/UI Cursors.cpp @@ -2308,7 +2308,7 @@ UINT8 HandleHandcuffCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso { // is there a person here? UINT8 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); - if ( usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex]->CanBeCaptured( ) ) + if (usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex] && MercPtrs[usSoldierIndex]->bVisible >= 0 && MercPtrs[usSoldierIndex]->CanBeCaptured()) { return( HANDCUFF_GREY_UICURSOR ); }