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
- CvCity::GetCityReligions() const
- CvCity::getOwner() const
- CvCity::IsCanPurchase(bool, bool, UnitTypes, BuildingTypes, ProjectTypes, YieldTypes)
- CvCityReligions::GetReligiousMajority()
- CvGame::GetGameReligions()
- CvGameReligions::GetReligionCreatedByPlayer(PlayerTypes) const
- CvGlobals::getGame()
- CvGlobals::getUnitInfo(UnitTypes)
- CvPlayer::firstCity(int *, bool)
- CvPlayer::GetID() const
- CvPlayer::nextCity(int *, bool)
- CvUnitEntry::IsRemoveHeresy() const
- CvUnitEntry::IsSpreadReligion() const