Bazaar developer reference

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

Called by