CvPlayerPolicies::GetNumPoliciesCanBeAdopted()
- Defined in
- CvPolicyClasses.cpp, line 4311
- Class
- CvPlayerPolicies
- Hook name
CivHooks::CvPlayerPolicies_GetNumPoliciesCanBeAdopted
Hooks
static bool BeforeCvPlayerPolicies_GetNumPoliciesCanBeAdopted(CvPlayerPolicies* self, int& result);static void AfterCvPlayerPolicies_GetNumPoliciesCanBeAdopted(CvPlayerPolicies* self, int& result);static int ReplaceCvPlayerPolicies_GetNumPoliciesCanBeAdopted(int (*original)(CvPlayerPolicies*), CvPlayerPolicies* self);CivRegisterBefore<CivHooks::CvPlayerPolicies_GetNumPoliciesCanBeAdopted>(host, &BeforeCvPlayerPolicies_GetNumPoliciesCanBeAdopted);CivRegisterAfter<CivHooks::CvPlayerPolicies_GetNumPoliciesCanBeAdopted>(host, &AfterCvPlayerPolicies_GetNumPoliciesCanBeAdopted);CivRegisterReplace<CivHooks::CvPlayerPolicies_GetNumPoliciesCanBeAdopted>(host, &ReplaceCvPlayerPolicies_GetNumPoliciesCanBeAdopted);
Code
4310/// How many policies can we purchase at present?4311int CvPlayerPolicies::GetNumPoliciesCanBeAdopted()4312{4313 int iNumPoliciesToAcquire = 0;43144315 // count the branch openers4316 for(int iBranchLoop = 0; iBranchLoop < m_pPolicies->GetNumPolicyBranches(); iBranchLoop++)4317 {4318 PolicyBranchTypes eBranchType = (PolicyBranchTypes)iBranchLoop;4319 if (IsPolicyBranchUnlocked(eBranchType) || CanUnlockPolicyBranch(eBranchType))4320 {4321 CvPolicyBranchEntry* pkPolicyBranchInfo = GC.getPolicyBranchInfo(eBranchType);4322 if(pkPolicyBranchInfo)4323 {4324 // Yes, it's a freebie4325 if(pkPolicyBranchInfo->GetFreePolicy() != NO_POLICY)4326 {4327 iNumPoliciesToAcquire++;4328 }4329 }4330 }4331 }43324333 // count the policies within the branch4334 for(int iPolicyLoop = 0; iPolicyLoop < GetPolicies()->GetNumPolicies(); iPolicyLoop++)4335 {4336 const PolicyTypes eLoopPolicy = static_cast<PolicyTypes>(iPolicyLoop);4337 CvPolicyEntry* pkLoopPolicyInfo = GC.getPolicyInfo(eLoopPolicy);4338 if(pkLoopPolicyInfo)4339 {4340 PolicyBranchTypes eBranchType = (PolicyBranchTypes)pkLoopPolicyInfo->GetPolicyBranchType();4341 if (eBranchType != -1)4342 {4343 if (IsPolicyBranchUnlocked(eBranchType) || CanUnlockPolicyBranch(eBranchType))4344 {4345 iNumPoliciesToAcquire++;4346 }4347 }4348 }4349 }43504351#if defined(MOD_BUGFIX_DUMMY_POLICIES)4352 return iNumPoliciesToAcquire - GetNumPoliciesOwned(MOD_BUGFIX_DUMMY_POLICIES);4353#else4354 return iNumPoliciesToAcquire - GetNumPoliciesOwned();4355#endif4356}
Calls
- CustomMods::isBUGFIX_DUMMY_POLICIES()
- CvGlobals::getPolicyBranchInfo(PolicyBranchTypes)
- CvGlobals::getPolicyInfo(PolicyTypes)
- CvPlayerPolicies::CanUnlockPolicyBranch(PolicyBranchTypes)
- CvPlayerPolicies::GetNumPoliciesOwned(bool, bool) const
- CvPlayerPolicies::GetPolicies() const
- CvPlayerPolicies::IsPolicyBranchUnlocked(PolicyBranchTypes) const
- CvPolicyBranchEntry::GetFreePolicy() const
- CvPolicyEntry::GetPolicyBranchType() const
- CvPolicyXMLEntries::GetNumPolicies()
- CvPolicyXMLEntries::GetNumPolicyBranches()