From f8d9a538cdda8995bdde4dc6426cb95bdd5a4c18 Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Sat, 25 Jun 2016 10:41:13 +0000 Subject: [PATCH] Taunts update: - TAUNT_INFORM_ABOUT (check that this opponent is really new) - TAUNT_ALERT (say taunt only when red alert raised, if it's no initial alert, use TAUNT_INFORM_ABOUT instead) - TAUNT_SUSPICIOUS (only when yellow alert is raised) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8262 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/opplist.cpp | 6 +++--- TacticalAI/AIMain.cpp | 16 +++++++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index 2d7a042f..de7a1a84 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -2624,12 +2624,12 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo, // if the looker hasn't seen this opponent at all earlier this turn, OR // if the opponent is not where the looker last thought him to be - if ((pSoldier->aiData.bOppList[pOpponent->ubID] != SEEN_THIS_TURN) || - (gsLastKnownOppLoc[pSoldier->ubID][pOpponent->ubID] != sOppGridNo)) + if ((pSoldier->aiData.bOppList[pOpponent->ubID] != SEEN_THIS_TURN) || (gsLastKnownOppLoc[pSoldier->ubID][pOpponent->ubID] != sOppGridNo)) { SetNewSituation( pSoldier ); // force the looker to re-evaluate // anv: simulate informing buddies about detected enemy's position - if(gbPublicOpplist[pSoldier->bTeam][pOpponent->ubID] != SEEN_CURRENTLY) + // sevenfm: check that he is really new + if( gbPublicOpplist[pSoldier->bTeam][pOpponent->ubID] != SEEN_CURRENTLY && gbPublicOpplist[pSoldier->bTeam][pOpponent->ubID] != SEEN_THIS_TURN ) PossiblyStartEnemyTaunt( pSoldier, TAUNT_INFORM_ABOUT, pOpponent->ubID ); } diff --git a/TacticalAI/AIMain.cpp b/TacticalAI/AIMain.cpp index 7958e9fb..477fa2f3 100644 --- a/TacticalAI/AIMain.cpp +++ b/TacticalAI/AIMain.cpp @@ -2043,11 +2043,16 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier) HandleInitialRedAlert(pSoldier->bTeam, TRUE); pSoldier->usSoldierFlagMask |= SOLDIER_RAISED_REDALERT; - } - - // SANDRO - ENEMY TAUNTS - PossiblyStartEnemyTaunt( pSoldier, TAUNT_ALERT ); + // SANDRO - ENEMY TAUNTS + PossiblyStartEnemyTaunt( pSoldier, TAUNT_ALERT ); + } + else + { + // sevenfm: if it's not initial RED ALERT and we are informing others + PossiblyStartEnemyTaunt( pSoldier, TAUNT_INFORM_ABOUT ); + } + //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_BETAVERSION, L"Debug: AI radios your position!" ); // DROP THROUGH HERE! case AI_ACTION_YELLOW_ALERT: // tell friends opponent(s) heard @@ -2067,7 +2072,8 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier) AIDecideRadioAnimation( pSoldier ); // SANDRO - ENEMY TAUNTS - PossiblyStartEnemyTaunt( pSoldier, TAUNT_SUSPICIOUS ); + if (pSoldier->aiData.bAction == AI_ACTION_YELLOW_ALERT ) + PossiblyStartEnemyTaunt( pSoldier, TAUNT_SUSPICIOUS ); break;