Bazaar developer reference

CvDiplomacyAI::GetFriendDenouncementScore(PlayerTypes)

Defined in
CvDiplomacyAI.cpp, line 23898
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_GetFriendDenouncementScore

Hooks

static bool BeforeCvDiplomacyAI_GetFriendDenouncementScore(CvDiplomacyAI* self, PlayerTypes ePlayer, int& result);static void AfterCvDiplomacyAI_GetFriendDenouncementScore(CvDiplomacyAI* self, PlayerTypes ePlayer, int& result);static int ReplaceCvDiplomacyAI_GetFriendDenouncementScore(int (*original)(CvDiplomacyAI*, PlayerTypes), CvDiplomacyAI* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &BeforeCvDiplomacyAI_GetFriendDenouncementScore);CivRegisterAfter<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &AfterCvDiplomacyAI_GetFriendDenouncementScore);CivRegisterReplace<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &ReplaceCvDiplomacyAI_GetFriendDenouncementScore);

Code

23898int CvDiplomacyAI::GetFriendDenouncementScore(PlayerTypes ePlayer)23899{23900	int iTraitorOpinion = 0;23901	// How many of their (trustworthy) friends have denounced them?23902	PlayerTypes eLoopPlayer;2390323904	for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)23905	{23906		eLoopPlayer = (PlayerTypes) iPlayerLoop;23907		if(eLoopPlayer != GetPlayer()->GetID() && GET_PLAYER(ePlayer).GetDiplomacyAI()->IsFriendDenouncedUs(eLoopPlayer))23908		{23909			// If this guy is untrustworthy, he doesn't count23910			if(!GET_PLAYER(eLoopPlayer).GetDiplomacyAI()->IsUntrustworthyFriend())23911			{23912				// Do we like this player who denounced them more than the player we're evaluating?23913				if(GetMajorCivOpinion(eLoopPlayer) > GetMajorCivOpinion(ePlayer))23914				{23915					iTraitorOpinion += /*20*/ GC.getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_EACH();23916				}2391723918				// We actually more friendly with the player we're evaluating than denouncer23919				else if(GetMajorCivOpinion(eLoopPlayer) < GetMajorCivOpinion(ePlayer))23920				{23921					iTraitorOpinion += /*-10*/ GC.getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_DONT_LIKE();23922				}23923			}23924		}23925	}2392623927	return iTraitorOpinion;23928}

Calls

Called by