Bazaar developer reference

CvPlayerPolicies::GetAvailableTenets(PolicyBranchTypes, int)

Defined in
CvPolicyClasses.cpp, line 4605
Class
CvPlayerPolicies
Hook name
CivHooks::CvPlayerPolicies_GetAvailableTenets

Hooks

static bool BeforeCvPlayerPolicies_GetAvailableTenets(CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel, std::vector<PolicyTypes>& result);static void AfterCvPlayerPolicies_GetAvailableTenets(CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel, std::vector<PolicyTypes>& result);static std::vector<PolicyTypes> ReplaceCvPlayerPolicies_GetAvailableTenets(std::vector<PolicyTypes> (*original)(CvPlayerPolicies*, PolicyBranchTypes, int), CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel);CivRegisterBefore<CivHooks::CvPlayerPolicies_GetAvailableTenets>(host, &BeforeCvPlayerPolicies_GetAvailableTenets);CivRegisterAfter<CivHooks::CvPlayerPolicies_GetAvailableTenets>(host, &AfterCvPlayerPolicies_GetAvailableTenets);CivRegisterReplace<CivHooks::CvPlayerPolicies_GetAvailableTenets>(host, &ReplaceCvPlayerPolicies_GetAvailableTenets);

Code

4604/// List of tenets that can be adopted for an Ideology4605std::vector<PolicyTypes> CvPlayerPolicies::GetAvailableTenets(PolicyBranchTypes eBranch, int iLevel)4606{4607	std::vector<PolicyTypes> availableTenets;46084609	CvPolicyXMLEntries* pkPolicies = GC.GetGamePolicies();4610	const int iNumPolicies = pkPolicies->GetNumPolicies();46114612	availableTenets.reserve(iNumPolicies);4613	for(int iI = 0; iI < iNumPolicies; iI++)4614	{4615		const PolicyTypes eTenet(static_cast<PolicyTypes>(iI));4616		CvPolicyEntry* pEntry = pkPolicies->GetPolicyEntry(eTenet);4617		if (pEntry && pEntry->GetPolicyBranchType() == eBranch && pEntry->GetLevel() == iLevel && !HasPolicy(eTenet))4618		{4619#if defined(MOD_EVENTS_IDEOLOGIES)4620			if (MOD_EVENTS_IDEOLOGIES && !CanAdoptPolicy(eTenet)) {4621				continue;4622			}4623#endif46244625			availableTenets.push_back(eTenet);4626		}4627	}46284629	return availableTenets;4630}

Calls

Called by