From 32b6ffe70f70429d1c876c54d6c69a902b1f4b8d Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Mon, 20 Apr 2020 22:14:45 +0000 Subject: [PATCH] Improved watched location AI code: - check that we can see enemy if we raise weapon when considering using noise spot as watched location - prefer hiding first when in dangerous place if hiding is possible git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8790 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/opplist.cpp | 9 ++++++--- TacticalAI/DecideAction.cpp | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index e47e8a23c..ce761bca8 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -6549,10 +6549,13 @@ void HearNoise(SOLDIERTYPE *pSoldier, UINT8 ubNoiseMaker, INT32 sGridNo, INT8 bL !pSoldier->aiData.bNeutral && MercPtrs[ubNoiseMaker] && !MercPtrs[ubNoiseMaker]->aiData.bNeutral && - !pSoldier->IsFlanking() && - SoldierToVirtualSoldierLineOfSightTest(pSoldier, sGridNo, bLevel, ANIM_STAND, TRUE, CALC_FROM_ALL_DIRS)) + !pSoldier->IsFlanking()) { - IncrementWatchedLoc(pSoldier->ubID, sGridNo, bLevel); + // check that we can see enemy if we raise weapon + gbForceWeaponReady = TRUE; + if (SoldierToVirtualSoldierLineOfSightTest(pSoldier, sGridNo, bLevel, ANIM_STAND, TRUE, CALC_FROM_ALL_DIRS)) + IncrementWatchedLoc(pSoldier->ubID, sGridNo, bLevel); + gbForceWeaponReady = FALSE; } // Public info is not set unless EVERYONE on the team fails to see the diff --git a/TacticalAI/DecideAction.cpp b/TacticalAI/DecideAction.cpp index dfb7b0010..d3fa766e4 100644 --- a/TacticalAI/DecideAction.cpp +++ b/TacticalAI/DecideAction.cpp @@ -3604,7 +3604,10 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier) CountFriendsBlack(pSoldier) > 0 ) { // prefer hiding when in dangerous place - bWatchPts -= 10; + if (bHidePts > -90) + bWatchPts = min(bWatchPts, bHidePts - 1); + else + bWatchPts--; } // sevenfm: don't watch when overcrowded and not in a building