CvPlayerPolicies::GetFreeBuildingsOnConquest()
- Defined in
- CvPolicyClasses.cpp, line 3363
- Class
- CvPlayerPolicies
- Hook name
CivHooks::CvPlayerPolicies_GetFreeBuildingsOnConquest
Hooks
static bool BeforeCvPlayerPolicies_GetFreeBuildingsOnConquest(CvPlayerPolicies* self, std::vector<BuildingTypes>& result);static void AfterCvPlayerPolicies_GetFreeBuildingsOnConquest(CvPlayerPolicies* self, std::vector<BuildingTypes>& result);static std::vector<BuildingTypes> ReplaceCvPlayerPolicies_GetFreeBuildingsOnConquest(std::vector<BuildingTypes> (*original)(CvPlayerPolicies*), CvPlayerPolicies* self);CivRegisterBefore<CivHooks::CvPlayerPolicies_GetFreeBuildingsOnConquest>(host, &BeforeCvPlayerPolicies_GetFreeBuildingsOnConquest);CivRegisterAfter<CivHooks::CvPlayerPolicies_GetFreeBuildingsOnConquest>(host, &AfterCvPlayerPolicies_GetFreeBuildingsOnConquest);CivRegisterReplace<CivHooks::CvPlayerPolicies_GetFreeBuildingsOnConquest>(host, &ReplaceCvPlayerPolicies_GetFreeBuildingsOnConquest);
Code
3362/// List of buildings we get in conquered cities3363std::vector<BuildingTypes> CvPlayerPolicies::GetFreeBuildingsOnConquest()3364{3365 std::vector<BuildingTypes> freeBuildings;3366 freeBuildings.reserve(m_pPolicies->GetNumPolicies());33673368 for (int i = 0; i < m_pPolicies->GetNumPolicies(); i++)3369 {3370 // Do we have this policy?3371 if (m_pabHasPolicy[i] && !IsPolicyBlocked((PolicyTypes)i))3372 {3373 CvPolicyEntry *pPolicy = m_pPolicies->GetPolicyEntry(i);3374 BuildingTypes eFreeBuilding = pPolicy->GetFreeBuildingOnConquest();3375 if (eFreeBuilding)3376 {3377 freeBuildings.push_back(eFreeBuilding);3378 }3379 }3380 }3381 return freeBuildings;3382}
Calls
- CvPlayerPolicies::IsPolicyBlocked(PolicyTypes) const
- CvPolicyEntry::GetFreeBuildingOnConquest() const
- CvPolicyXMLEntries::GetNumPolicies()
- CvPolicyXMLEntries::GetPolicyEntry(int)
std::vector::push_backstd::vector::reservestd::vector::vectorstd::vector::vector