CvReligionAI::BuyAnyAvailableNonFaithBuilding()
- Defined in
- CvReligionClasses.cpp, line 6067
- Class
- CvReligionAI
- Hook name
CivHooks::CvReligionAI_BuyAnyAvailableNonFaithBuilding
Hooks
static bool BeforeCvReligionAI_BuyAnyAvailableNonFaithBuilding(CvReligionAI* self, bool& result);static void AfterCvReligionAI_BuyAnyAvailableNonFaithBuilding(CvReligionAI* self, bool& result);static bool ReplaceCvReligionAI_BuyAnyAvailableNonFaithBuilding(bool (*original)(CvReligionAI*), CvReligionAI* self);CivRegisterBefore<CivHooks::CvReligionAI_BuyAnyAvailableNonFaithBuilding>(host, &BeforeCvReligionAI_BuyAnyAvailableNonFaithBuilding);CivRegisterAfter<CivHooks::CvReligionAI_BuyAnyAvailableNonFaithBuilding>(host, &AfterCvReligionAI_BuyAnyAvailableNonFaithBuilding);CivRegisterReplace<CivHooks::CvReligionAI_BuyAnyAvailableNonFaithBuilding>(host, &ReplaceCvReligionAI_BuyAnyAvailableNonFaithBuilding);
Code
6066/// Any building that we can build with Faith (not Faith-generating ones)6067bool CvReligionAI::BuyAnyAvailableNonFaithBuilding()6068{6069 PlayerTypes ePlayer = m_pPlayer->GetID();60706071 int iLoop;6072 CvCity* pLoopCity;6073 for(pLoopCity = GET_PLAYER(ePlayer).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(ePlayer).nextCity(&iLoop))6074 {6075 for (int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)6076 {6077 BuildingTypes eBuilding = (BuildingTypes)m_pPlayer->getCivilizationInfo().getCivilizationBuildings(iI);6078 if(eBuilding != NO_BUILDING)6079 {6080 CvBuildingEntry* pBuildingEntry = GC.GetGameBuildings()->GetEntry(eBuilding);60816082 // Check to make sure this isn't a Faith-generating building6083 if(pBuildingEntry && pBuildingEntry->GetYieldChange(YIELD_FAITH) == 0)6084 {6085 if(pLoopCity->IsCanPurchase(true, true, (UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH))6086 {6087 pLoopCity->Purchase((UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH);6088 return true;6089 }6090 }6091 }6092 }6093 }6094 return false;6095}
Calls
- CvBuildingEntry::GetYieldChange(int) const
- CvBuildingXMLEntries::GetEntry(int)
- CvCity::IsCanPurchase(bool, bool, UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCity::Purchase(UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::GetGameBuildings() const
- CvGlobals::getNumBuildingClassInfos()
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetID() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)