Bazaar developer reference

CvPlayerPolicies::ClearPolicyBranch(PolicyBranchTypes)

Defined in
CvPolicyClasses.cpp, line 4117
Class
CvPlayerPolicies
Hook name
CivHooks::CvPlayerPolicies_ClearPolicyBranch

Hooks

static bool BeforeCvPlayerPolicies_ClearPolicyBranch(CvPlayerPolicies* self, PolicyBranchTypes eBranchType);static void AfterCvPlayerPolicies_ClearPolicyBranch(CvPlayerPolicies* self, PolicyBranchTypes eBranchType);static void ReplaceCvPlayerPolicies_ClearPolicyBranch(void (*original)(CvPlayerPolicies*, PolicyBranchTypes), CvPlayerPolicies* self, PolicyBranchTypes eBranchType);CivRegisterBefore<CivHooks::CvPlayerPolicies_ClearPolicyBranch>(host, &BeforeCvPlayerPolicies_ClearPolicyBranch);CivRegisterAfter<CivHooks::CvPlayerPolicies_ClearPolicyBranch>(host, &AfterCvPlayerPolicies_ClearPolicyBranch);CivRegisterReplace<CivHooks::CvPlayerPolicies_ClearPolicyBranch>(host, &ReplaceCvPlayerPolicies_ClearPolicyBranch);

Code

4116/// Delete all policies from a branch4117void CvPlayerPolicies::ClearPolicyBranch(PolicyBranchTypes eBranchType)4118{4119	// count the policies within the branch4120	for(int iPolicyLoop = 0; iPolicyLoop < GetPolicies()->GetNumPolicies(); iPolicyLoop++)4121	{4122		const PolicyTypes eLoopPolicy = static_cast<PolicyTypes>(iPolicyLoop);4123		CvPolicyEntry* pkLoopPolicyInfo = GC.getPolicyInfo(eLoopPolicy);4124		if(pkLoopPolicyInfo)4125		{4126			PolicyBranchTypes eLoopBranch = (PolicyBranchTypes)pkLoopPolicyInfo->GetPolicyBranchType();4127			if (eLoopBranch == eBranchType)4128			{4129				m_pPlayer->setHasPolicy(eLoopPolicy, false);4130			}4131		}4132	}4133}

Calls

Called by