Bazaar developer reference

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

Called by