Bazaar developer reference

CvLeague::NotifyProposalResult(CvEnactProposal *)

Defined in
CvVotingClasses.cpp, line 5846
Class
CvLeague
Hook name
CivHooks::CvLeague_NotifyProposalResult
Lua events
GameEvents.ResolutionResult

Hooks

static bool BeforeCvLeague_NotifyProposalResult(CvLeague* self, CvEnactProposal* pProposal);static void AfterCvLeague_NotifyProposalResult(CvLeague* self, CvEnactProposal* pProposal);static void ReplaceCvLeague_NotifyProposalResult(void (*original)(CvLeague*, CvEnactProposal*), CvLeague* self, CvEnactProposal* pProposal);CivRegisterBefore<CivHooks::CvLeague_NotifyProposalResult>(host, &BeforeCvLeague_NotifyProposalResult);CivRegisterAfter<CivHooks::CvLeague_NotifyProposalResult>(host, &AfterCvLeague_NotifyProposalResult);CivRegisterReplace<CivHooks::CvLeague_NotifyProposalResult>(host, &ReplaceCvLeague_NotifyProposalResult);

Code

5846void CvLeague::NotifyProposalResult(CvEnactProposal* pProposal)5847{5848	CvAssert(pProposal != NULL);5849	if (pProposal == NULL) return;58505851#if defined(MOD_EVENTS_RESOLUTIONS)5852	int iDecision = -1;5853#endif58545855	CvString sSummary = "";5856	CvString sMessage = "";5857	if (pProposal->GetEffects()->bDiplomaticVictory)5858	{5859		// World Leader results are handled a little differently5860		if (pProposal->IsPassed(GetVotesSpentThisSession()))5861		{5862			PlayerTypes eWinner = (PlayerTypes) pProposal->GetVoterDecision()->GetDecision();5863			CvAssert(eWinner != NO_PLAYER);5864			if (eWinner != NO_PLAYER)5865			{5866				Localization::String sTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_WORLD_LEADER_PASS");5867				sTemp << GET_PLAYER(eWinner).getCivilizationShortDescriptionKey();5868				sSummary += sTemp.toUTF8();58695870				sTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_WORLD_LEADER_PASS_DETAILS");5871				sTemp << GC.getGame().GetVotesNeededForDiploVictory() << GET_PLAYER(eWinner).getCivilizationShortDescriptionKey();5872				sMessage += sTemp.toUTF8();5873			}5874		}5875		else5876		{5877			Localization::String sTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_WORLD_LEADER_FAIL");5878			sSummary += sTemp.toUTF8();5879			5880			sTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_WORLD_LEADER_FAIL_DETAILS");5881			sTemp << GC.getGame().GetVotesNeededForDiploVictory() << LeagueHelpers::NUM_LEADERS_FOR_EXTRA_VOTES;5882			sMessage += sTemp.toUTF8();5883		}5884		sMessage += "[NEWLINE]" + pProposal->GetVoterDecision()->GetVotesAsText(this);5885	5886#if defined(MOD_EVENTS_RESOLUTIONS)5887		iDecision = pProposal->GetVoterDecision()->GetDecision();5888#endif5889	}5890	else if (pProposal->GetEffects()->bChangeLeagueHost)5891	{5892		// Change Host results are handled a little differently5893		PlayerTypes eOldHost = GetHostMember();5894		PlayerTypes eNewHost = eOldHost;5895		CvAssert(pProposal->IsPassed(GetVotesSpentThisSession()));5896		if (pProposal->IsPassed(GetVotesSpentThisSession()))5897		{5898			eNewHost = (PlayerTypes) pProposal->GetVoterDecision()->GetDecision();5899		}59005901		CvString sHostKey = "Nobody";5902		CvAssertMsg(eNewHost != NO_PLAYER, "Could not determine the new host. Please send Anton your save file and version.");5903		if (eNewHost != NO_PLAYER)5904		{5905			sHostKey = GET_PLAYER(eNewHost).getCivilizationShortDescriptionKey();5906		}5907		5908		if (eNewHost != eOldHost)5909		{5910			Localization::String sSummaryTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_HOST_CHANGED_SUMMARY");5911			sSummaryTemp << sHostKey;5912			sSummary += sSummaryTemp.toUTF8();5913		}5914		else5915		{5916			Localization::String sSummaryTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_HOST_SAME_SUMMARY");5917			sSummaryTemp << sHostKey;5918			sSummary += sSummaryTemp.toUTF8();5919		}59205921		Localization::String sMessageTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_HOST_DETAILS");5922		sMessageTemp << GetName() << sHostKey;5923		sMessage += sMessageTemp.toUTF8();5924		sMessage += "[NEWLINE]" + pProposal->GetVoterDecision()->GetVotesAsText(this);5925	5926#if defined(MOD_EVENTS_RESOLUTIONS)5927		iDecision = pProposal->GetVoterDecision()->GetDecision();5928#endif5929	}5930	else5931	{5932		Localization::String sSummaryTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_FAIL_SUMMARY");5933		Localization::String sMessageTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_ENACT_FAIL");5934		CvString sName = GetResolutionName(pProposal->GetType(), pProposal->GetID(), pProposal->GetProposerDecision()->GetDecision(), /*bIncludePrefix*/ true);5935		if (pProposal->IsPassed(GetVotesSpentThisSession()))5936		{5937			sSummaryTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_PASS_SUMMARY");5938			sMessageTemp = Localization::Lookup("TXT_KEY_NOTIFICATION_LEAGUE_VOTING_RESULT_ENACT_PASS");5939		}5940		sSummaryTemp << sName;5941		sMessageTemp << sName;5942		sSummary = sSummaryTemp.toUTF8();5943		sMessage = sMessageTemp.toUTF8();5944		sMessage += "[NEWLINE]" + pProposal->GetVoterDecision()->GetVotesAsText(this);5945	5946#if defined(MOD_EVENTS_RESOLUTIONS)5947		iDecision = pProposal->GetProposerDecision()->GetDecision();5948#endif5949	}59505951#if defined(MOD_EVENTS_RESOLUTIONS)5952	if (MOD_EVENTS_RESOLUTIONS) {5953		GAMEEVENTINVOKE_HOOK(GAMEEVENT_ResolutionResult, pProposal->GetType(), iDecision, true, pProposal->IsPassed(GetVotesSpentThisSession()));5954	}5955#endif59565957	for (MemberList::iterator it = m_vMembers.begin(); it != m_vMembers.end(); it++)5958	{5959		PlayerTypes eMember = it->ePlayer;5960		if (GET_PLAYER(eMember).isHuman())5961		{5962			CvNotifications* pNotifications = GET_PLAYER(eMember).GetNotifications();5963			if (pNotifications)5964			{5965				pNotifications->Add(NOTIFICATION_LEAGUE_VOTING_DONE, sMessage, sSummary, -1, -1, GetID());5966			}				5967		}5968	}5969}

Calls

Called by