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}