Bazaar developer reference

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

Called by