Bazaar developer reference

CvGameDeals::FinalizeDealNotify(PlayerTypes, PlayerTypes, CvWeightedVector<TeamTypes, ((63)), true> &)

Defined in
CvDealClasses.cpp, line 2417
Class
CvGameDeals
Hook name
CivHooks::CvGameDeals_FinalizeDealNotify

Hooks

static bool BeforeCvGameDeals_FinalizeDealNotify(CvGameDeals* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true>& veNowAtPeacePairs);static void AfterCvGameDeals_FinalizeDealNotify(CvGameDeals* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true>& veNowAtPeacePairs);static void ReplaceCvGameDeals_FinalizeDealNotify(void (*original)(CvGameDeals*, PlayerTypes, PlayerTypes, CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true>&), CvGameDeals* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true>& veNowAtPeacePairs);CivRegisterBefore<CivHooks::CvGameDeals_FinalizeDealNotify>(host, &BeforeCvGameDeals_FinalizeDealNotify);CivRegisterAfter<CivHooks::CvGameDeals_FinalizeDealNotify>(host, &AfterCvGameDeals_FinalizeDealNotify);CivRegisterReplace<CivHooks::CvGameDeals_FinalizeDealNotify>(host, &ReplaceCvGameDeals_FinalizeDealNotify);

Code

2417void CvGameDeals::FinalizeDealNotify(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, CvWeightedVector<TeamTypes, MAX_CIV_TEAMS, true>& veNowAtPeacePairs)2418{2419	// Update UI if we were involved in the deal2420	PlayerTypes eActivePlayer = GC.getGame().getActivePlayer();2421	if(eFromPlayer == eActivePlayer || eToPlayer == eActivePlayer)2422	{2423		GC.GetEngineUserInterface()->setDirty(GameData_DIRTY_BIT, true);2424	}24252426	// Send out a condensed notification if peace was made with third party minor civs in this deal2427	if(veNowAtPeacePairs.size() > 0)2428	{2429		// Loop through all teams2430		for(int iFromTeamIndex = 0; iFromTeamIndex < MAX_CIV_TEAMS; iFromTeamIndex++)2431		{2432			TeamTypes eFromTeam = (TeamTypes) iFromTeamIndex;2433			TeamTypes eToTeam = NO_TEAM;2434			bool bFromTeamMadePeace = false;24352436			Localization::String strTemp = Localization::Lookup("TXT_KEY_MISC_MADE_PEACE_WITH_MINOR_ALLIES");2437			Localization::String strSummary = Localization::Lookup("TXT_KEY_MISC_MADE_PEACE_WITH_MINOR_ALLIES_SUMMARY");2438			strTemp << GET_TEAM(eFromTeam).getName().GetCString();2439			strSummary << GET_TEAM(eFromTeam).getName().GetCString();2440			CvString strMessage = strTemp.toUTF8();24412442			// Did this team make peace with someone in this deal?2443			for(int iPairIndex = 0; iPairIndex < veNowAtPeacePairs.size(); iPairIndex++)2444			{2445				if(veNowAtPeacePairs.GetWeight(iPairIndex) == (int) eFromTeam)2446				{2447					eToTeam = veNowAtPeacePairs.GetElement(iPairIndex);2448					strTemp = Localization::Lookup(GET_TEAM(eToTeam).getName().GetCString());2449					strMessage = strMessage + "[NEWLINE]" + strTemp.toUTF8();2450					bFromTeamMadePeace = true;2451				}2452			}24532454			// Send out notifications if there was a change2455			if(bFromTeamMadePeace)2456			{2457				// Send out the notifications to other players2458				for(int iNotifPlayerLoop = 0; iNotifPlayerLoop < MAX_MAJOR_CIVS; iNotifPlayerLoop++)2459				{2460					PlayerTypes eNotifPlayer = (PlayerTypes) iNotifPlayerLoop;24612462					if(!GET_PLAYER(eNotifPlayer).isAlive())2463						continue;24642465					if(GET_PLAYER(eNotifPlayer).getTeam() == eFromTeam)2466						continue;24672468					if(GET_TEAM(GET_PLAYER(eNotifPlayer).getTeam()).isHasMet(eFromTeam))  //antonjs: consider: what if eNotifPlayer hasn't met one or more of the minors that eFromTeam made peace with?2469					{2470						if(GET_PLAYER(eNotifPlayer).GetNotifications())2471						{2472							GET_PLAYER(eNotifPlayer).GetNotifications()->Add(NOTIFICATION_PEACE, strMessage, strSummary.toUTF8(), -1, -1, GET_TEAM(eFromTeam).getLeaderID(), eToTeam);2473						}2474					}2475				}2476			}2477		}2478	}2479}

Calls

Called by