Bazaar developer reference

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

Called by