Bazaar developer reference

CvReligionAIHelpers::DoesUnitPassFaithPurchaseCheck(CvPlayer &, UnitTypes)

Defined in
CvReligionClasses.cpp, line 7441
Hook name
CivHooks::CvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck

Hooks

static bool BeforeCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck(CvPlayer & kPlayer, UnitTypes eUnit, bool& result);static void AfterCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck(CvPlayer & kPlayer, UnitTypes eUnit, bool& result);static bool ReplaceCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck(bool (*original)(CvPlayer &, UnitTypes), CvPlayer & kPlayer, UnitTypes eUnit);CivRegisterBefore<CivHooks::CvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck>(host, &BeforeCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck);CivRegisterAfter<CivHooks::CvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck>(host, &AfterCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck);CivRegisterReplace<CivHooks::CvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck>(host, &ReplaceCvReligionAIHelpers_DoesUnitPassFaithPurchaseCheck);

Code

7441bool CvReligionAIHelpers::DoesUnitPassFaithPurchaseCheck(CvPlayer &kPlayer, UnitTypes eUnit)7442{7443	bool bRtnValue = true;74447445	CvUnitEntry *pkUnitEntry = GC.getUnitInfo(eUnit);7446	if (pkUnitEntry)7447	{7448		if (pkUnitEntry->IsSpreadReligion() || pkUnitEntry->IsRemoveHeresy())7449		{7450			bRtnValue = false;74517452			// Religious unit, have to find a city with the majority religion we started7453			// Now see if there is another city with our majority religion7454			int iLoop;7455			CvCity* pLoopCity;74567457			CvGameReligions* pReligions = GC.getGame().GetGameReligions();7458			ReligionTypes eReligion = pReligions->GetReligionCreatedByPlayer(kPlayer.GetID());74597460			if (eReligion > RELIGION_PANTHEON)7461			{7462				for(pLoopCity = kPlayer.firstCity(&iLoop); pLoopCity != NULL; pLoopCity = kPlayer.nextCity(&iLoop))7463				{7464					if (pLoopCity->getOwner() != kPlayer.GetID())7465					{7466						continue;7467					}74687469					if (pLoopCity->GetCityReligions()->GetReligiousMajority() == eReligion)7470					{7471						if(pLoopCity->IsCanPurchase(false /*bTestPurchaseCost*/, true, eUnit, NO_BUILDING, NO_PROJECT, YIELD_FAITH))7472						{7473							return true;7474						}7475					}7476				}7477			}7478		}7479	}74807481	return bRtnValue;7482}

Calls

Called by