CvReligionAI::CanBuyNonFaithBuilding() const
- Defined in
- CvReligionClasses.cpp, line 7030
- Class
- CvReligionAI
- Hook name
CivHooks::CvReligionAI_CanBuyNonFaithBuilding
Hooks
static bool BeforeCvReligionAI_CanBuyNonFaithBuilding(const CvReligionAI* self, bool& result);static void AfterCvReligionAI_CanBuyNonFaithBuilding(const CvReligionAI* self, bool& result);static bool ReplaceCvReligionAI_CanBuyNonFaithBuilding(bool (*original)(const CvReligionAI*), const CvReligionAI* self);CivRegisterBefore<CivHooks::CvReligionAI_CanBuyNonFaithBuilding>(host, &BeforeCvReligionAI_CanBuyNonFaithBuilding);CivRegisterAfter<CivHooks::CvReligionAI_CanBuyNonFaithBuilding>(host, &AfterCvReligionAI_CanBuyNonFaithBuilding);CivRegisterReplace<CivHooks::CvReligionAI_CanBuyNonFaithBuilding>(host, &ReplaceCvReligionAI_CanBuyNonFaithBuilding);
Code
7029/// Can we buy a non-Faith generating building?7030bool CvReligionAI::CanBuyNonFaithBuilding() const7031{7032 PlayerTypes ePlayer = m_pPlayer->GetID();70337034 int iLoop;7035 CvCity* pLoopCity;7036 for(pLoopCity = GET_PLAYER(ePlayer).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(ePlayer).nextCity(&iLoop))7037 {7038 for (int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)7039 {7040 BuildingTypes eBuilding = (BuildingTypes)m_pPlayer->getCivilizationInfo().getCivilizationBuildings(iI);7041 if(eBuilding != NO_BUILDING)7042 {7043 CvBuildingEntry* pBuildingEntry = GC.GetGameBuildings()->GetEntry(eBuilding);70447045 // Check to make sure this isn't a Faith-generating building7046 if(pBuildingEntry && pBuildingEntry->GetYieldChange(YIELD_FAITH) == 0)7047 {7048 if(pLoopCity->IsCanPurchase(true, true, (UnitTypes)-1, eBuilding, (ProjectTypes)-1, YIELD_FAITH))7049 {7050 return true;7051 }7052 }7053 }7054 }7055 }7056 return false;7057}
Calls
- CvBuildingEntry::GetYieldChange(int) const
- CvBuildingXMLEntries::GetEntry(int)
- CvCity::IsCanPurchase(bool, bool, 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)