CvPlayerPolicies::GetTenet(PolicyBranchTypes, int, int)
- Defined in
- CvPolicyClasses.cpp, line 4633
- Class
- CvPlayerPolicies
- Hook name
CivHooks::CvPlayerPolicies_GetTenet
Hooks
static bool BeforeCvPlayerPolicies_GetTenet(CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel, int iIndex, PolicyTypes& result);static void AfterCvPlayerPolicies_GetTenet(CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel, int iIndex, PolicyTypes& result);static PolicyTypes ReplaceCvPlayerPolicies_GetTenet(PolicyTypes (*original)(CvPlayerPolicies*, PolicyBranchTypes, int, int), CvPlayerPolicies* self, PolicyBranchTypes eBranch, int iLevel, int iIndex);CivRegisterBefore<CivHooks::CvPlayerPolicies_GetTenet>(host, &BeforeCvPlayerPolicies_GetTenet);CivRegisterAfter<CivHooks::CvPlayerPolicies_GetTenet>(host, &AfterCvPlayerPolicies_GetTenet);CivRegisterReplace<CivHooks::CvPlayerPolicies_GetTenet>(host, &ReplaceCvPlayerPolicies_GetTenet);
Code
4632/// Get the nth tenets owned of an Ideology at a certain level4633PolicyTypes CvPlayerPolicies::GetTenet(PolicyBranchTypes eBranch, int iLevel, int iIndex)4634{4635 int iNumFound = 0;46364637 CvPolicyXMLEntries* pkPolicies = GC.GetGamePolicies();4638 const int iNumPolicies = pkPolicies->GetNumPolicies();46394640 for(int iI = 0; iI < iNumPolicies; iI++)4641 {4642 const PolicyTypes eTenet(static_cast<PolicyTypes>(iI));4643 CvPolicyEntry* pEntry = pkPolicies->GetPolicyEntry(eTenet);4644 if (pEntry && pEntry->GetPolicyBranchType() == eBranch && pEntry->GetLevel() == iLevel && HasPolicy(eTenet))4645 {4646 iNumFound++;4647 if (iNumFound == iIndex)4648 {4649 return eTenet;4650 }4651 }4652 }46534654 return NO_POLICY;4655}