CvReligionAI::BuyFaithBuilding(ReligionTypes, BuildingClassTypes)
- Defined in
- CvReligionClasses.cpp, line 6047
- Class
- CvReligionAI
- Hook name
CivHooks::CvReligionAI_BuyFaithBuilding
Hooks
static bool BeforeCvReligionAI_BuyFaithBuilding(CvReligionAI* self, ReligionTypes eReligion, BuildingClassTypes eBuildingClass);static void AfterCvReligionAI_BuyFaithBuilding(CvReligionAI* self, ReligionTypes eReligion, BuildingClassTypes eBuildingClass);static void ReplaceCvReligionAI_BuyFaithBuilding(void (*original)(CvReligionAI*, ReligionTypes, BuildingClassTypes), CvReligionAI* self, ReligionTypes eReligion, BuildingClassTypes eBuildingClass);CivRegisterBefore<CivHooks::CvReligionAI_BuyFaithBuilding>(host, &BeforeCvReligionAI_BuyFaithBuilding);CivRegisterAfter<CivHooks::CvReligionAI_BuyFaithBuilding>(host, &AfterCvReligionAI_BuyFaithBuilding);CivRegisterReplace<CivHooks::CvReligionAI_BuyFaithBuilding>(host, &ReplaceCvReligionAI_BuyFaithBuilding);
Code
6046/// Pick the right city to purchase a faith building in6047void CvReligionAI::BuyFaithBuilding(ReligionTypes eReligion, BuildingClassTypes eBuildingClass)6048{6049 CvPlayer &kPlayer = GET_PLAYER(m_pPlayer->GetID());6050 BuildingTypes eBuilding = (BuildingTypes)m_pPlayer->getCivilizationInfo().getCivilizationBuildings(eBuildingClass);6051 CvCity *pCapital = kPlayer.getCapitalCity();6052 if (pCapital)6053 {6054 int iCost = pCapital->GetFaithPurchaseCost(eBuilding);6055 if (iCost <= kPlayer.GetFaith())6056 {6057 CvCity *pBestCity = CvReligionAIHelpers::GetBestCityFaithBuildingPurchase(kPlayer, eBuilding, eReligion);6058 if (pBestCity)6059 {6060 pBestCity->Purchase((UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH);6061 }6062 }6063 }6064}
Calls
- CvCity::GetFaithPurchaseCost(BuildingTypes)
- CvCity::Purchase(UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvPlayer::getCapitalCity()
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetFaith() const
- CvPlayer::GetID() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvReligionAIHelpers::GetBestCityFaithBuildingPurchase(CvPlayer &, BuildingTypes, ReligionTypes)