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
- CustomMods::isEVENTS_IDEOLOGIES()
- CvGlobals::GetGamePolicies() const
- CvPlayerPolicies::CanAdoptPolicy(PolicyTypes, bool) const
- CvPlayerPolicies::HasPolicy(PolicyTypes) const
- CvPolicyEntry::GetLevel() const
- CvPolicyEntry::GetPolicyBranchType() const
- CvPolicyXMLEntries::GetNumPolicies()
- CvPolicyXMLEntries::GetPolicyEntry(int)
std::vector::push_backstd::vector::reservestd::vector::vectorstd::vector::vector