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}