From cc7d52c901626d5963454424f079cd67b213d5cf Mon Sep 17 00:00:00 2001 From: Flugente Date: Sun, 19 Apr 2015 10:13:43 +0000 Subject: [PATCH] Fix: dynamic opinion: mercs treat killing of crows and cows as if a civilian has been killed git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7824 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Strategic/Auto Resolve.cpp | 6 +++++- Tactical/Soldier Ani.cpp | 14 +++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Strategic/Auto Resolve.cpp b/Strategic/Auto Resolve.cpp index d4a8a7b8..6dbe1b3c 100644 --- a/Strategic/Auto Resolve.cpp +++ b/Strategic/Auto Resolve.cpp @@ -4681,7 +4681,11 @@ void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget ) // Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians if ( pTarget->pSoldier->aiData.bNeutral || pTarget->pSoldier->bSide == pAttacker->pSoldier->bSide ) - HandleDynamicOpinionChange( pAttacker->pSoldier, OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + { + // not for killing animals though... + if ( pTarget->pSoldier->ubBodyType != CROW && pTarget->pSoldier->ubBodyType != COW ) + HandleDynamicOpinionChange( pAttacker->pSoldier, OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + } } break; } diff --git a/Tactical/Soldier Ani.cpp b/Tactical/Soldier Ani.cpp index 80dd40e7..bbfe9668 100644 --- a/Tactical/Soldier Ani.cpp +++ b/Tactical/Soldier Ani.cpp @@ -3954,7 +3954,11 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse ) // Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians if ( pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide ) - HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + { + // not for killing animals though... + if ( pSoldier->ubBodyType != CROW && pSoldier->ubBodyType != COW ) + HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + } } break; } @@ -3962,9 +3966,13 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse ) ///////////////////////////////////////////////////////////////////////////////////// gStrategicStatus.usPlayerKills++; - // Flugente: dynamic opinions: if this guy is a not-hostile civilian, then some mercs will complain about killing civilians + // Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians if ( pSoldier->bTeam == CIV_TEAM && (pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide) ) - HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + { + // not for killing animals though... + if ( pSoldier->ubBodyType != CROW && pSoldier->ubBodyType != COW ) + HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_CIVKILLER, TRUE, TRUE ); + } else { // if this enemy was attacking a freshly wounded merc, it is likely they posed a real threat - the merc will be thankful for saving their life