CvReligionAI::BuyAnyAvailableFaithBuilding()
- Defined in
- CvReligionClasses.cpp, line 6098
- Class
- CvReligionAI
- Hook name
CivHooks::CvReligionAI_BuyAnyAvailableFaithBuilding
Hooks
static bool BeforeCvReligionAI_BuyAnyAvailableFaithBuilding(CvReligionAI* self, bool& result);static void AfterCvReligionAI_BuyAnyAvailableFaithBuilding(CvReligionAI* self, bool& result);static bool ReplaceCvReligionAI_BuyAnyAvailableFaithBuilding(bool (*original)(CvReligionAI*), CvReligionAI* self);CivRegisterBefore<CivHooks::CvReligionAI_BuyAnyAvailableFaithBuilding>(host, &BeforeCvReligionAI_BuyAnyAvailableFaithBuilding);CivRegisterAfter<CivHooks::CvReligionAI_BuyAnyAvailableFaithBuilding>(host, &AfterCvReligionAI_BuyAnyAvailableFaithBuilding);CivRegisterReplace<CivHooks::CvReligionAI_BuyAnyAvailableFaithBuilding>(host, &ReplaceCvReligionAI_BuyAnyAvailableFaithBuilding);
Code
6097/// We didn't start a religion but we can still buy Faith buildings of other religions6098bool CvReligionAI::BuyAnyAvailableFaithBuilding()6099{6100 PlayerTypes ePlayer = m_pPlayer->GetID();61016102 int iLoop;6103 CvCity* pLoopCity;6104 for(pLoopCity = GET_PLAYER(ePlayer).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(ePlayer).nextCity(&iLoop))6105 {6106 ReligionTypes eReligion = pLoopCity->GetCityReligions()->GetReligiousMajority();6107 if(eReligion > RELIGION_PANTHEON)6108 {6109 BuildingClassTypes eBuildingClass = FaithBuildingAvailable(eReligion);6110 if(eBuildingClass != NO_BUILDINGCLASS)6111 {6112 BuildingTypes eBuilding = (BuildingTypes)m_pPlayer->getCivilizationInfo().getCivilizationBuildings(eBuildingClass);6113 if(eBuilding != NO_BUILDING)6114 {6115 if(pLoopCity->IsCanPurchase(true, true, (UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH))6116 {6117 pLoopCity->Purchase((UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH);6118 return true;6119 }6120 }6121 }6122 }6123 }6124 return false;6125}
Calls
- CvCity::GetCityReligions() const
- CvCity::IsCanPurchase(bool, bool, UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCity::Purchase(UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCityReligions::GetReligiousMajority()
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetID() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvReligionAI::FaithBuildingAvailable(ReligionTypes) const