Bazaar developer reference

CvLeague::GetCurrentEffectsSummary(PlayerTypes)

Defined in
CvVotingClasses.cpp, line 4779
Class
CvLeague
Hook name
CivHooks::CvLeague_GetCurrentEffectsSummary

Hooks

static bool BeforeCvLeague_GetCurrentEffectsSummary(CvLeague* self, PlayerTypes arg0, std::vector<CvString>& result);static void AfterCvLeague_GetCurrentEffectsSummary(CvLeague* self, PlayerTypes arg0, std::vector<CvString>& result);static std::vector<CvString> ReplaceCvLeague_GetCurrentEffectsSummary(std::vector<CvString> (*original)(CvLeague*, PlayerTypes), CvLeague* self, PlayerTypes arg0);CivRegisterBefore<CivHooks::CvLeague_GetCurrentEffectsSummary>(host, &BeforeCvLeague_GetCurrentEffectsSummary);CivRegisterAfter<CivHooks::CvLeague_GetCurrentEffectsSummary>(host, &AfterCvLeague_GetCurrentEffectsSummary);CivRegisterReplace<CivHooks::CvLeague_GetCurrentEffectsSummary>(host, &ReplaceCvLeague_GetCurrentEffectsSummary);

Code

4779std::vector<CvString> CvLeague::GetCurrentEffectsSummary(PlayerTypes /*eObserver*/)4780{4781	std::vector<CvString> vsEffects;47824783	// League status4784	if (HasHostMember())4785	{4786		PlayerTypes eHost = GetHostMember();4787		if (eHost != NO_PLAYER)4788		{4789			Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_HOST");4790			sTemp << GET_PLAYER(eHost).getCivilizationShortDescriptionKey();4791			vsEffects.push_back(sTemp.toUTF8());4792		}4793	}47944795	// Active projects4796	int iProjects = 0;4797	CvString sProjects = "";4798	for (ProjectList::const_iterator it = m_vProjects.begin(); it != m_vProjects.end(); ++it)4799	{4800		if (IsProjectActive(it->eType) && !IsProjectComplete(it->eType))4801		{4802			CvLeagueProjectEntry* pInfo = GC.getLeagueProjectInfo(it->eType);4803			if (pInfo)4804			{4805				if (iProjects != 0)4806				{4807					sProjects += ", ";4808				}4809				iProjects++;4810				sProjects += pInfo->GetDescription();4811			}4812		}4813	}4814	if (iProjects > 0)4815	{4816		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_ACTIVE_PROJECTS");4817		sTemp << sProjects;4818		vsEffects.push_back(sTemp.toUTF8());4819	}48204821	// Ongoing resolution effects4822	ReligionTypes eWorldReligion = NO_RELIGION;4823	PolicyBranchTypes eWorldIdeology = NO_POLICY_BRANCH_TYPE;4824	FStaticVector<PlayerTypes, MAX_MAJOR_CIVS, true, c_eCiv5GameplayDLL> veEmbargoedPlayers;4825	FStaticVector<ResourceTypes, 32, true, c_eCiv5GameplayDLL> veBannedResources;4826	CvResolutionEffects effects;4827	for (ActiveResolutionList::iterator it = m_vActiveResolutions.begin(); it != m_vActiveResolutions.end(); ++it)4828	{4829		effects.AddOngoingEffects(it->GetEffects());48304831		if (it->GetEffects()->iResourceQuantity != 0)4832		{4833			//antonjs: todo: for modders4834		}48354836		if (it->GetEffects()->bEmbargoPlayer)4837		{4838			PlayerTypes eEmbargoedPlayer = (PlayerTypes) it->GetProposerDecision()->GetDecision();4839			CvAssert(eEmbargoedPlayer != NO_PLAYER);4840			veEmbargoedPlayers.push_back(eEmbargoedPlayer);4841		}48424843		if (it->GetEffects()->bNoResourceHappiness)4844		{4845			ResourceTypes eBannedResource = (ResourceTypes) it->GetProposerDecision()->GetDecision();4846			CvAssert(eBannedResource != NO_RESOURCE);4847			veBannedResources.push_back(eBannedResource);4848		}48494850		if (it->GetEffects()->iVotesForFollowingReligion != 0)4851		{4852			ReligionTypes eReligion = (ReligionTypes) it->GetProposerDecision()->GetDecision();4853			CvAssert(eReligion != NO_RELIGION);4854			CvAssert(eWorldReligion == NO_RELIGION);4855			eWorldReligion = eReligion;4856		}48574858		if (it->GetEffects()->iVotesForFollowingIdeology != 0)4859		{4860			PolicyBranchTypes eIdeology = (PolicyBranchTypes) it->GetProposerDecision()->GetDecision();4861			CvAssert(eIdeology != NO_POLICY_BRANCH_TYPE);4862			CvAssert(eWorldIdeology == NO_POLICY_BRANCH_TYPE);4863			eWorldIdeology = eIdeology;4864		}4865	}4866	if (eWorldReligion != NO_RELIGION)4867	{4868		CvReligionEntry* pInfo = GC.getReligionInfo(eWorldReligion);4869		CvAssert(pInfo != NULL);4870		const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eWorldReligion, NO_PLAYER);4871		CvAssert(pReligion != NULL);4872		if (pInfo != NULL && pReligion != NULL)4873		{4874			Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_WORLD_RELIGION");4875			sTemp << pInfo->GetIconString() << pReligion->GetName();4876			vsEffects.push_back(sTemp.toUTF8());4877		}4878	}4879	if (eWorldIdeology != NO_POLICY_BRANCH_TYPE)4880	{4881		CvPolicyBranchEntry* pInfo = GC.getPolicyBranchInfo(eWorldIdeology);4882		CvAssert(pInfo != NULL);4883		if (pInfo != NULL)4884		{4885			Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_WORLD_IDEOLOGY");4886			sTemp << pInfo->GetDescriptionKey();4887			vsEffects.push_back(sTemp.toUTF8());4888		}4889	}4890	if (effects.iGoldPerTurn != 0)4891	{4892		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GPT");4893		sTemp << effects.iGoldPerTurn;4894		vsEffects.push_back(sTemp.toUTF8());4895	}4896	if (effects.iResourceQuantity != 0)4897	{4898		//antonjs: todo: for modders4899	}4900	if (effects.bEmbargoCityStates)4901	{4902		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_EMBARGO_CITY_STATES");4903		vsEffects.push_back(sTemp.toUTF8());4904	}4905	if (effects.bEmbargoPlayer)4906	{4907		CvAssert(!veEmbargoedPlayers.empty());4908		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_EMBARGO_PLAYERS");4909		CvString sEntries = "";4910		for (uint i = 0; i < veEmbargoedPlayers.size(); i++)4911		{4912			Localization::String sTempEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_EMBARGO_PLAYERS_ENTRY");4913			CvAssert(veEmbargoedPlayers[i] != NO_PLAYER);4914			if (veEmbargoedPlayers[i] != NO_PLAYER)4915			{4916				if (i != 0)4917				{4918					sEntries += ", ";4919				}4920				sTempEntry << GET_PLAYER(veEmbargoedPlayers[i]).getCivilizationShortDescriptionKey();4921				sEntries += sTempEntry.toUTF8();4922			}4923		}4924		sTemp << sEntries;4925		vsEffects.push_back(sTemp.toUTF8());4926	}4927	if (effects.bNoResourceHappiness)4928	{4929		CvAssert(!veBannedResources.empty());4930		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_NO_RESOURCE_HAPPINESS");4931		CvString sEntries = "";4932		for (uint i = 0; i < veBannedResources.size(); i++)4933		{4934			Localization::String sTempEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_NO_RESOURCE_HAPPINESS_ENTRY");4935			CvResourceInfo* pInfo = GC.getResourceInfo(veBannedResources[i]);4936			CvAssert(pInfo);4937			if (pInfo)4938			{4939				if (i != 0)4940				{4941					sEntries += ", ";4942				}4943				sTempEntry << pInfo->GetDescriptionKey();4944				sEntries += pInfo->GetIconString();4945				sEntries += sTempEntry.toUTF8();4946			}4947		}4948		sTemp << sEntries;4949		vsEffects.push_back(sTemp.toUTF8());4950	}49514952	if (effects.iUnitMaintenanceGoldPercent != 0)4953	{4954		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_UNIT_MAINTENANCE");4955		sTemp << effects.iUnitMaintenanceGoldPercent;4956		vsEffects.push_back(sTemp.toUTF8());4957	}4958	if (effects.iMemberDiscoveredTechMod != 0)4959	{4960		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_DISCOVERED_TECH_MODIFIER");4961		sTemp << effects.iMemberDiscoveredTechMod;4962		vsEffects.push_back(sTemp.toUTF8());4963	}4964	if (effects.iCulturePerWonder != 0)4965	{4966		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_CULTURE_FROM_WONDERS");4967		sTemp << effects.iCulturePerWonder;4968		vsEffects.push_back(sTemp.toUTF8());4969	}4970	if (effects.iCulturePerNaturalWonder != 0)4971	{4972		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_CULTURE_FROM_NATURAL_WONDERS");4973		sTemp << effects.iCulturePerNaturalWonder;4974		vsEffects.push_back(sTemp.toUTF8());4975	}4976	if (effects.iArtsyGreatPersonRateMod != 0)4977	{4978		int iMod = effects.iArtsyGreatPersonRateMod;4979		Localization::String sTemp = (iMod > 0) ? Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_POSITIVE_GREAT_PERSON_RATE") : Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_NEGATIVE_GREAT_PERSON_RATE");4980		sTemp << iMod;4981		4982		CvString sList = "";4983		CvUnitClassInfo* pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_WRITER"));4984		if (pInfo != NULL)4985		{4986			if (sList != "")4987				sList += ", ";4988			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");4989			sEntry << pInfo->GetDescriptionKey();4990			sList += sEntry.toUTF8();4991		}4992		pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_ARTIST"));4993		if (pInfo != NULL)4994		{4995			if (sList != "")4996				sList += ", ";4997			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");4998			sEntry << pInfo->GetDescriptionKey();4999			sList += sEntry.toUTF8();5000		}5001		pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_MUSICIAN"));5002		if (pInfo != NULL)5003		{5004			if (sList != "")5005				sList += ", ";5006			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");5007			sEntry << pInfo->GetDescriptionKey();5008			sList += sEntry.toUTF8();5009		}5010		sTemp << sList;5011		vsEffects.push_back(sTemp.toUTF8());5012	}5013	if (effects.iScienceyGreatPersonRateMod != 0)5014	{5015		int iMod = effects.iScienceyGreatPersonRateMod;5016		Localization::String sTemp = (iMod > 0) ? Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_POSITIVE_GREAT_PERSON_RATE") : Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_NEGATIVE_GREAT_PERSON_RATE");5017		sTemp << iMod;50185019		CvString sList = "";5020		CvUnitClassInfo* pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_SCIENTIST"));5021		if (pInfo != NULL)5022		{5023			if (sList != "")5024				sList += ", ";5025			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");5026			sEntry << pInfo->GetDescriptionKey();5027			sList += sEntry.toUTF8();5028		}5029		pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_ENGINEER"));5030		if (pInfo != NULL)5031		{5032			if (sList != "")5033				sList += ", ";5034			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");5035			sEntry << pInfo->GetDescriptionKey();5036			sList += sEntry.toUTF8();5037		}5038		pInfo = GC.getUnitClassInfo((UnitClassTypes)GC.getInfoTypeForString("UNITCLASS_MERCHANT"));5039		if (pInfo != NULL)5040		{5041			if (sList != "")5042				sList += ", ";5043			Localization::String sEntry = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_RATE_ENTRY");5044			sEntry << pInfo->GetDescriptionKey();5045			sList += sEntry.toUTF8();5046		}5047		sTemp << sList;5048		vsEffects.push_back(sTemp.toUTF8());5049	}5050	if (effects.iGreatPersonTileImprovementCulture != 0)5051	{5052		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_GREAT_PERSON_TILE_IMPROVEMENT_CULTURE");5053		sTemp << effects.iGreatPersonTileImprovementCulture;5054		vsEffects.push_back(sTemp.toUTF8());5055	}5056	if (effects.iLandmarkCulture != 0)5057	{5058		Localization::String sTemp = Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_LANDMARK_CULTURE");5059		sTemp << effects.iLandmarkCulture;5060		vsEffects.push_back(sTemp.toUTF8());5061	}50625063	if (vsEffects.empty())5064	{5065		vsEffects.push_back(Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_EFFECT_SUMMARY_NONE").toUTF8());5066	}50675068	return vsEffects;5069}

Calls

Called by