Hooks
static bool BeforeCvPlayerPolicies_Init(CvPlayerPolicies* self, CvPolicyXMLEntries* pPolicies, CvPlayer* pPlayer, bool bIsCity);static void AfterCvPlayerPolicies_Init(CvPlayerPolicies* self, CvPolicyXMLEntries* pPolicies, CvPlayer* pPlayer, bool bIsCity);static void ReplaceCvPlayerPolicies_Init(void (*original)(CvPlayerPolicies*, CvPolicyXMLEntries*, CvPlayer*, bool), CvPlayerPolicies* self, CvPolicyXMLEntries* pPolicies, CvPlayer* pPlayer, bool bIsCity);CivRegisterBefore<CivHooks::CvPlayerPolicies_Init>(host, &BeforeCvPlayerPolicies_Init);CivRegisterAfter<CivHooks::CvPlayerPolicies_Init>(host, &AfterCvPlayerPolicies_Init);CivRegisterReplace<CivHooks::CvPlayerPolicies_Init>(host, &ReplaceCvPlayerPolicies_Init);
Code
2553/// Initialize2554void CvPlayerPolicies::Init(CvPolicyXMLEntries* pPolicies, CvPlayer* pPlayer, bool bIsCity)2555{2556 // Init base class2557 CvFlavorRecipient::Init();25582559 // Store off the pointer to the policies active for this game2560 m_bIsCity = bIsCity;2561 m_pPolicies = pPolicies;2562 m_pPlayer = pPlayer;25632564 // Initialize policy status array2565#if defined(MOD_API_EXTENSIONS)2566 CvAssertMsg(m_pabFreePolicy==NULL, "about to leak memory, CvPlayerPolicies::m_pabFreePolicy");2567 m_pabFreePolicy = FNEW(bool[m_pPolicies->GetNumPolicies()], c_eCiv5GameplayDLL, 0);2568#endif2569 CvAssertMsg(m_pabHasPolicy==NULL, "about to leak memory, CvPlayerPolicies::m_pabHasPolicy");2570 m_pabHasPolicy = FNEW(bool[m_pPolicies->GetNumPolicies()], c_eCiv5GameplayDLL, 0);2571 CvAssertMsg(m_pabHasOneShotPolicyFired==NULL, "about to leak memory, CvPlayerPolicies::m_pabHasOneShotPolicyFired");2572 m_pabHasOneShotPolicyFired = FNEW(bool[m_pPolicies->GetNumPolicies()], c_eCiv5GameplayDLL, 0);2573 CvAssertMsg(m_pabHaveOneShotFreeUnitsFired==NULL, "about to leak memory, CvPlayerPolicies::m_pabHaveOneShotFreeUnitsFired");2574 m_pabHaveOneShotFreeUnitsFired = FNEW(bool[m_pPolicies->GetNumPolicies()], c_eCiv5GameplayDLL, 0);25752576 // Policy Branches Chosen2577 CvAssertMsg(m_pabPolicyBranchUnlocked==NULL, "about to leak memory, CvPlayerPolicies::m_pabPolicyBranchUnlocked");2578 m_pabPolicyBranchUnlocked = FNEW(bool[m_pPolicies->GetNumPolicyBranches()], c_eCiv5GameplayDLL, 0);25792580 // Policy Branches Blocked by choices2581 CvAssertMsg(m_pabPolicyBranchBlocked==NULL, "about to leak memory, CvPlayerPolicies::m_pabPolicyBranchBlocked");2582 m_pabPolicyBranchBlocked = FNEW(bool[m_pPolicies->GetNumPolicyBranches()], c_eCiv5GameplayDLL, 0);25832584 // Policy Branches finished2585 CvAssertMsg(m_pabPolicyBranchFinished==NULL, "about to leak memory, CvPlayerPolicies::m_pabPolicyBranchFinished");2586 m_pabPolicyBranchFinished = FNEW(bool[m_pPolicies->GetNumPolicyBranches()], c_eCiv5GameplayDLL, 0);25872588 CvAssertMsg(m_paePolicyBranchesChosen==NULL, "about to leak memory, CvPlayerPolicies::m_paePolicyBranchesChosen");2589 m_paePolicyBranchesChosen = FNEW(PolicyBranchTypes[m_pPolicies->GetNumPolicyBranches()], c_eCiv5GameplayDLL, 0);25902591 CvAssertMsg(m_paePolicyBlockedBranchCheck==NULL, "about to leak memory, CvPlayerPolicies::m_paePolicyBlockedBranchCheck");2592 m_paePolicyBlockedBranchCheck = FNEW(PolicyBranchTypes[m_pPolicies->GetNumPolicies()], c_eCiv5GameplayDLL, 0);2593 2594 // Create AI object2595 m_pPolicyAI = FNEW(CvPolicyAI(this), c_eCiv5GameplayDLL, 0);25962597 Reset();2598}