Fix for Dynamic Opinions feature not respecting ini setting and not allowing it to be disabled easily (by Shadooow).

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9002 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2021-05-05 03:40:57 +00:00
parent c2ccc871fc
commit b7cc3bbcf8
18 changed files with 148 additions and 64 deletions
+4 -1
View File
@@ -736,7 +736,10 @@ void FinishIncident(INT16 sX, INT16 sY, INT8 sZ)
gCurrentIncident.usOneTimeEventFlags |= INCIDENT_ONETIMEEVENT_OMERTA;
// dynamic opinions
HandleDynamicOpinionBattleFinished( (gCurrentIncident.usIncidentFlags & INCIDENT_WIN) != 0 );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionBattleFinished((gCurrentIncident.usIncidentFlags & INCIDENT_WIN) != 0);
}
gCampaignStats.AddNewIncident(gCurrentIncident);
+4 -1
View File
@@ -199,7 +199,10 @@ UINT32 AddTransactionToPlayersBook (UINT8 ubCode, UINT8 ubSecondCode, UINT32 uiD
// process the actual data
// Flugente: dynamic opinion
HandleDynamicOpinionOnContractExtension( ubCode, ubSecondCode );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionOnContractExtension(ubCode, ubSecondCode);
}
//
// If this transaction is for the hiring/extending of a mercs contract
+4 -1
View File
@@ -5863,7 +5863,10 @@ void FatigueCharacter( SOLDIERTYPE *pSoldier )
bMaxBreathLoss = (float)min( 127, iBreathLoss );
// Flugente: dynamic opinions: other mercs might get annoyed, because we are slowing down the team
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_SLOWSUSDOWN, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_SLOWSUSDOWN, TRUE, TRUE);
}
}
}
+1 -1
View File
@@ -4887,7 +4887,7 @@ void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
gMercProfiles[ pAttacker->pSoldier->ubProfile ].records.usKillsOthers++;
// Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians
if ( (pTarget->pSoldier->bTeam != OUR_TEAM) && (pTarget->pSoldier->aiData.bNeutral || pTarget->pSoldier->bSide == pAttacker->pSoldier->bSide) )
if ((gGameExternalOptions.fDynamicOpinions) && (pTarget->pSoldier->bTeam != OUR_TEAM) && (pTarget->pSoldier->aiData.bNeutral || pTarget->pSoldier->bSide == pAttacker->pSoldier->bSide) )
{
// not for killing animals though...
if ( pTarget->pSoldier->ubBodyType != CROW && pTarget->pSoldier->ubBodyType != COW )
+12 -3
View File
@@ -461,7 +461,10 @@ void HourlyLarryUpdate()
fTookDrugs = TRUE;
// Flugente: dynamic opinion
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ADDICT, TRUE, FALSE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ADDICT, TRUE, FALSE);
}
if ( fBar )
{
@@ -645,7 +648,10 @@ void HourlyDisabilityUpdate( )
pSoldier->bBleeding = oldbleeding;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
// say something (which might also alert the player to what we just did)
TacticalCharacterDialogue( pSoldier, QUOTE_PERSONALITY_TRAIT );
@@ -820,7 +826,10 @@ void HourlyStealUpdate()
}
// Flugente: dynamic opinion
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_THIEF, TRUE, FALSE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_THIEF, TRUE, FALSE);
}
}
}
}
+4 -1
View File
@@ -601,7 +601,10 @@ void MercDailyUpdate()
HandleSnitchCheck();
// Flugente: dynmaic opinion rollover
HandleDynamicOpinionsDailyRefresh( );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionsDailyRefresh();
}
// Flugente: disease
HandleDiseaseDailyRefresh();
+1 -1
View File
@@ -2178,7 +2178,7 @@ void HandleLoyaltyImplicationsOfMercRetreat( INT8 bRetreatCode, INT16 sSectorX,
// Flugente: dynamic opinion: mercs retreated. Someone has to be blamed for this shameful defeat!
// only do this if the enemy actually noticed us - no need to punish the player for a successful stealth operation
if ( gTacticalStatus.Team[ENEMY_TEAM].bAwareOfOpposition )
if (gGameExternalOptions.fDynamicOpinions && gTacticalStatus.Team[ENEMY_TEAM].bAwareOfOpposition )
{
HandleDynamicOpinionRetreat();
}
+1 -1
View File
@@ -850,7 +850,7 @@ void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubSta
}
// Flugente: dynamic opinions
if ( FROM_TRAINING == ubReason )
if (gGameExternalOptions.fDynamicOpinions && FROM_TRAINING == ubReason )
HandleDynamicOpinionTeaching( pSoldier, ubStat );
}
}
+9 -6
View File
@@ -147,14 +147,17 @@ void HandleDisease()
}
// if we are infected, this might disgust other people, but only if it's visisble to them (we assume doctors dont mention this to others)
for ( int i = 0; i < NUM_DISEASES; ++i )
if (gGameExternalOptions.fDynamicOpinions)
{
if ( (Disease[i].usDiseaseProperties & DISEASE_PROPERTY_DISGUSTING) &&
(pSoldier->sDiseaseFlag[i] & SOLDIERDISEASE_DIAGNOSED) &&
(pSoldier->sDiseaseFlag[i] & SOLDIERDISEASE_OUTBREAK) )
for (int i = 0; i < NUM_DISEASES; ++i)
{
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_DISEASE_DISGUSTING, TRUE, TRUE );
break;
if ((Disease[i].usDiseaseProperties & DISEASE_PROPERTY_DISGUSTING) &&
(pSoldier->sDiseaseFlag[i] & SOLDIERDISEASE_DIAGNOSED) &&
(pSoldier->sDiseaseFlag[i] & SOLDIERDISEASE_OUTBREAK))
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_DISEASE_DISGUSTING, TRUE, TRUE);
break;
}
}
}
}
+5 -2
View File
@@ -173,7 +173,7 @@ BOOLEAN ApplyDrugs_New( SOLDIERTYPE *pSoldier, UINT16 usItem, UINT16 uStatusUsed
gMercProfiles[LARRY_NORMAL].bNPCData = __max( gMercProfiles[LARRY_NORMAL].bNPCData, LARRY_FALLS_OFF_WAGON );
}
if ( NewDrug[drugused].opinionevent )
if (gGameExternalOptions.fDynamicOpinions && NewDrug[drugused].opinionevent )
{
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ADDICT, TRUE, TRUE );
}
@@ -194,7 +194,10 @@ BOOLEAN ApplyDrugs_New( SOLDIERTYPE *pSoldier, UINT16 usItem, UINT16 uStatusUsed
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[MSG_DRANK_SOME], pSoldier->GetName( ), ShortItemNames[usItem] );
HandleDynamicOpinionTeamDrinking( pSoldier );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionTeamDrinking(pSoldier);
}
}
else
{
+5 -2
View File
@@ -647,8 +647,11 @@ void HourlyFoodAutoDigestion( SOLDIERTYPE *pSoldier )
EatFromInventory( pSoldier, FALSE );
}
// dynamic opinions: if we're still really hungry an someone in this sector has food, we get a lwoer opinion of him, as he obviously doesn't share
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_NOSHARINGFOOD, FALSE, FALSE );
if (gGameExternalOptions.fDynamicOpinions)
{
// dynamic opinions: if we're still really hungry an someone in this sector has food, we get a lwoer opinion of him, as he obviously doesn't share
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_NOSHARINGFOOD, FALSE, FALSE);
}
}
}
+4 -1
View File
@@ -410,7 +410,10 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
RemoveNewlyHiredMercFromPersonnelDepartedList( pSoldier->ubProfile );
// Flugente: dynamic opinions
CheckForFriendsofHated( pSoldier );
if (gGameExternalOptions.fDynamicOpinions)
{
CheckForFriendsofHated(pSoldier);
}
gfAtLeastOneMercWasHired = TRUE;
+11 -5
View File
@@ -326,15 +326,18 @@ void DecayTacticalMoraleModifiers( void )
else
{
// alone, no recovery... in fact, if tact morale is high, decay
if ( !(pSoldier->usQuoteSaidFlags & SOLDIER_QUOTE_SAID_PERSONALITY) )
if (!(pSoldier->usQuoteSaidFlags & SOLDIER_QUOTE_SAID_PERSONALITY))
{
TacticalCharacterDialogue( pSoldier, QUOTE_PERSONALITY_TRAIT );
TacticalCharacterDialogue(pSoldier, QUOTE_PERSONALITY_TRAIT);
pSoldier->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
}
HandleMoraleEvent( pSoldier, MORALE_NERVOUS_ALONE, pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ );
HandleMoraleEvent(pSoldier, MORALE_NERVOUS_ALONE, pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ);
// Flugente: dynamic opinions
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -1528,7 +1531,10 @@ void HandleSnitchesReports( std::vector<SnitchEvent>& aVec )
event2.ubEventType = NUM_SNITCH_EVENTS;
// Flugente: dynamic opinions
AddOpinionEvent( event2.ubTargetProfile, pSnitch->ubProfile, OPINIONEVENT_SNITCHSOLDMEOUT );
if (gGameExternalOptions.fDynamicOpinions)
{
AddOpinionEvent(event2.ubTargetProfile, pSnitch->ubProfile, OPINIONEVENT_SNITCHSOLDMEOUT);
}
}
}
+9 -3
View File
@@ -2558,7 +2558,10 @@ BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLE
UnSetUIBusy( pSoldier->ubID );
// Flugente: dynamic opinions
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
@@ -3418,7 +3421,10 @@ void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fF
pSoldier->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -11008,7 +11014,7 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue )
}
// dynamic opinion: a merc caused the remaining enemies to give up
if ( gusSelectedSoldier != NOBODY )
if (gGameExternalOptions.fDynamicOpinions && gusSelectedSoldier != NOBODY )
HandleDynamicOpinionChange( MercPtrs[gusSelectedSoldier], OPINIONEVENT_BATTLE_TOOK_PRISONER, TRUE, TRUE );
}
else
+4 -1
View File
@@ -880,7 +880,10 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
TacticalCharacterDialogue( pSoldier, QUOTE_PERSONALITY_TRAIT );
// Flugente: dynamic opinions
HandleDynamicOpinionChange( pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(pSoldier, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
// do we realize that we just can't do this?
if ( (100 - (pSoldier->ubSkillCheckAttempts - 2) * 20) < EffectiveWisdom( pSoldier ) )
+16 -13
View File
@@ -4041,7 +4041,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
gMercProfiles[ MercPtrs[ ubAttacker ]->ubProfile ].records.usKillsOthers++;
// Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians
if ( pSoldier->bTeam != OUR_TEAM && (pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide) )
if (gGameExternalOptions.fDynamicOpinions && pSoldier->bTeam != OUR_TEAM && (pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide) )
{
// not for killing animals though...
if ( pSoldier->ubBodyType != CROW && pSoldier->ubBodyType != COW )
@@ -4055,23 +4055,26 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
gStrategicStatus.usPlayerKills++;
// Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians
if ( pSoldier->bTeam != OUR_TEAM && (pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide) )
if (gGameExternalOptions.fDynamicOpinions)
{
// 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
if ( pSoldier->ubTargetID != NOBODY && MercPtrs[pSoldier->ubTargetID]->bBleeding > 10 )
if (pSoldier->bTeam != OUR_TEAM && (pSoldier->aiData.bNeutral || pSoldier->bSide == MercPtrs[ubAttacker]->bSide))
{
AddOpinionEvent( MercPtrs[pSoldier->ubTargetID]->ubProfile, MercPtrs[ubAttacker]->ubProfile, OPINIONEVENT_BATTLE_SAVIOUR );
// not for killing animals though...
if (pSoldier->ubBodyType != CROW && pSoldier->ubBodyType != COW)
HandleDynamicOpinionChange(MercPtrs[ubAttacker], OPINIONEVENT_CIVKILLER, TRUE, TRUE);
}
else
{
// complain about a fragthief, or thank for assistance - correct event is chosen internally
HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_FRAGTHIEF, TRUE, TRUE );
// 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
if (pSoldier->ubTargetID != NOBODY && MercPtrs[pSoldier->ubTargetID]->bBleeding > 10)
{
AddOpinionEvent(MercPtrs[pSoldier->ubTargetID]->ubProfile, MercPtrs[ubAttacker]->ubProfile, OPINIONEVENT_BATTLE_SAVIOUR);
}
else
{
// complain about a fragthief, or thank for assistance - correct event is chosen internally
HandleDynamicOpinionChange(MercPtrs[ubAttacker], OPINIONEVENT_FRAGTHIEF, TRUE, TRUE);
}
}
}
}
+50 -20
View File
@@ -6815,7 +6815,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD
pSoldier->ChangeToFlybackAnimation( (UINT8)bDirection );
// Flugente: dynamic opinions
if ( ubAttackerID != NOBODY )
if (gGameExternalOptions.fDynamicOpinions && ubAttackerID != NOBODY )
HandleDynamicOpinionChange( MercPtrs[ubAttackerID], OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE );
return;
@@ -6830,7 +6830,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD
pSoldier->EVENT_InitNewSoldierAnim( JFK_HITDEATH, 0, FALSE );
// Flugente: dynamic opinions
if ( ubAttackerID != NOBODY )
if (gGameExternalOptions.fDynamicOpinions && ubAttackerID != NOBODY )
HandleDynamicOpinionChange( MercPtrs[ubAttackerID], OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE );
return;
@@ -8077,7 +8077,10 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -8093,7 +8096,10 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -8110,7 +8116,10 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -8129,7 +8138,10 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
}
}
@@ -9723,7 +9735,10 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof(void)
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
// otherwise remove flag, so we'll complain every second time we climb roof
else
@@ -10201,17 +10216,20 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
this->ubLastDamageReason = ubReason;
// Flugente: dynamic opinions
if ( ubAttacker != NOBODY && MercPtrs[ubAttacker] )
if (ubAttacker != NOBODY && MercPtrs[ubAttacker] )
{
AddOpinionEvent( this->ubProfile, MercPtrs[ubAttacker]->ubProfile, OPINIONEVENT_FRIENDLYFIRE );
// if this is a civilian, other mercs can complain about mercs shooting innocents
// Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians
if ( (this->bTeam != OUR_TEAM) && (this->aiData.bNeutral || this->bSide == MercPtrs[ubAttacker]->bSide) )
if (gGameExternalOptions.fDynamicOpinions)
{
// not for killing animals though...
if ( this->ubBodyType != CROW && this->ubBodyType != COW )
HandleDynamicOpinionChange( MercPtrs[ubAttacker], OPINIONEVENT_CIV_ATTACKER, TRUE, TRUE );
AddOpinionEvent(this->ubProfile, MercPtrs[ubAttacker]->ubProfile, OPINIONEVENT_FRIENDLYFIRE);
// if this is a civilian, other mercs can complain about mercs shooting innocents
// Flugente: dynamic opinions: if this guy is not hostile towards us, then some mercs will complain about killing civilians
if ((this->bTeam != OUR_TEAM) && (this->aiData.bNeutral || this->bSide == MercPtrs[ubAttacker]->bSide))
{
// not for killing animals though...
if (this->ubBodyType != CROW && this->ubBodyType != COW)
HandleDynamicOpinionChange(MercPtrs[ubAttacker], OPINIONEVENT_CIV_ATTACKER, TRUE, TRUE);
}
}
// if we are a turncoat, lose the flag if we were attacked by player forces
@@ -13550,7 +13568,10 @@ UINT32 SOLDIERTYPE::SoldierDressWound( SOLDIERTYPE *pVictim, INT16 sKitPts, INT1
}
// Flugente: dynamic opinions
AddOpinionEvent( pVictim->ubProfile, this->ubProfile, OPINIONEVENT_BANDAGED );
if (gGameExternalOptions.fDynamicOpinions)
{
AddOpinionEvent(pVictim->ubProfile, this->ubProfile, OPINIONEVENT_BANDAGED);
}
bInitialBleeding = pVictim->bBleeding;
@@ -14575,7 +14596,10 @@ BOOLEAN SOLDIERTYPE::CheckForBreathCollapse( void )
TacticalCharacterDialogue( this, QUOTE_PERSONALITY_TRAIT );
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
if (gGameExternalOptions.fDynamicOpinions)
{
HandleDynamicOpinionChange(this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE);
}
}
else
{
@@ -15026,7 +15050,10 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
applybipod = TRUE;
// Flugente: dynamic opinions
AddOpinionEvent( MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS );
if (gGameExternalOptions.fDynamicOpinions)
{
AddOpinionEvent(MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS);
}
}
}
}
@@ -15093,7 +15120,10 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
applybipod = TRUE;
// Flugente: dynamic opinions
AddOpinionEvent( MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS );
if (gGameExternalOptions.fDynamicOpinions)
{
AddOpinionEvent(MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS);
}
}
}
}
+4 -1
View File
@@ -417,7 +417,10 @@ void GameLoop(void)
}
// Flugente: dynamic opinions: Dialogue Boxes need to be refreshed
RefreshBoxes( );
if (gGameExternalOptions.fDynamicOpinions)
{
RefreshBoxes();//todo shadooow: tohle mozna zpusobuje bug s opakovanim kecu po vitezstvi
}
// Flugente:disguised mercs can distract enemies by talking to them. In order to display that, we sometimes display excerpts of their 'chats'
CheckChatPartners();