Bazaar developer reference

CvCityReligions::WouldExertTradeRoutePressureToward(CvCity *, ReligionTypes &, int &)

Defined in
CvReligionClasses.cpp, line 3845
Class
CvCityReligions
Hook name
CivHooks::CvCityReligions_WouldExertTradeRoutePressureToward

Hooks

static bool BeforeCvCityReligions_WouldExertTradeRoutePressureToward(CvCityReligions* self, CvCity* pTargetCity, ReligionTypes& eReligion, int& iAmount, bool& result);static void AfterCvCityReligions_WouldExertTradeRoutePressureToward(CvCityReligions* self, CvCity* pTargetCity, ReligionTypes& eReligion, int& iAmount, bool& result);static bool ReplaceCvCityReligions_WouldExertTradeRoutePressureToward(bool (*original)(CvCityReligions*, CvCity*, ReligionTypes&, int&), CvCityReligions* self, CvCity* pTargetCity, ReligionTypes& eReligion, int& iAmount);CivRegisterBefore<CivHooks::CvCityReligions_WouldExertTradeRoutePressureToward>(host, &BeforeCvCityReligions_WouldExertTradeRoutePressureToward);CivRegisterAfter<CivHooks::CvCityReligions_WouldExertTradeRoutePressureToward>(host, &AfterCvCityReligions_WouldExertTradeRoutePressureToward);CivRegisterReplace<CivHooks::CvCityReligions_WouldExertTradeRoutePressureToward>(host, &ReplaceCvCityReligions_WouldExertTradeRoutePressureToward);

Code

3844/// Would this city exert religious pressure toward the target city if connected with a trade route3845bool CvCityReligions::WouldExertTradeRoutePressureToward (CvCity* pTargetCity, ReligionTypes& eReligion, int& iAmount)3846{3847	eReligion = NO_RELIGION;3848	iAmount = 0;38493850	ReligionTypes eReligiousMajority = GetReligiousMajority();38513852	// if there isn't a religious connection, whatvz3853	if (eReligiousMajority == NO_RELIGION)3854	{3855		return false;3856	}38573858	const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eReligiousMajority, m_pCity->getOwner());3859	if (!pReligion)3860	{3861		return false;3862	}38633864	// Are the cities within the minimum distance?3865	int iDistance = GC.getRELIGION_ADJACENT_CITY_DISTANCE();38663867	// Boost to distance due to belief?3868	int iDistanceMod = pReligion->m_Beliefs.GetSpreadDistanceModifier();3869	if(iDistanceMod > 0)3870	{3871		iDistance *= (100 + iDistanceMod);3872		iDistance /= 100;3873	}38743875	bool bWithinDistance = (plotDistance(m_pCity->getX(), m_pCity->getY(), pTargetCity->getX(), pTargetCity->getY()) <= iDistance);38763877	// if not within distance, then we're using a trade route3878	if (!bWithinDistance) 3879	{3880		eReligion = eReligiousMajority;3881		int iNumTradeRoutes = 0;3882		iAmount = GC.getGame().GetGameReligions()->GetAdjacentCityReligiousPressure(eReligiousMajority, m_pCity, pTargetCity, iNumTradeRoutes, true);3883		return true;3884	}38853886	return false;3887}

Calls

Called by