Bazaar developer reference

CvCityReligions::GetPressurePerTurn(ReligionTypes, int &)

Defined in
CvReligionClasses.cpp, line 3765
Class
CvCityReligions
Hook name
CivHooks::CvCityReligions_GetPressurePerTurn

Hooks

static bool BeforeCvCityReligions_GetPressurePerTurn(CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved, int& result);static void AfterCvCityReligions_GetPressurePerTurn(CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved, int& result);static int ReplaceCvCityReligions_GetPressurePerTurn(int (*original)(CvCityReligions*, ReligionTypes, int&), CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved);CivRegisterBefore<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &BeforeCvCityReligions_GetPressurePerTurn);CivRegisterAfter<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &AfterCvCityReligions_GetPressurePerTurn);CivRegisterReplace<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &ReplaceCvCityReligions_GetPressurePerTurn);

Code

3764/// Pressure exerted by one religion per turn3765int CvCityReligions::GetPressurePerTurn(ReligionTypes eReligion, int& iNumTradeRoutesInvolved)3766{3767	int iPressure = 0;3768	iNumTradeRoutesInvolved = 0;3769	3770	// Loop through all the players3771	for(int iI = 0; iI < MAX_PLAYERS; iI++)3772	{3773		CvPlayer& kPlayer = GET_PLAYER((PlayerTypes)iI);3774		if(kPlayer.isAlive())3775		{3776			// Loop through each of their cities3777			int iLoop;3778			CvCity* pLoopCity;3779			for(pLoopCity = kPlayer.firstCity(&iLoop); pLoopCity != NULL; pLoopCity = kPlayer.nextCity(&iLoop))3780			{3781				// Ignore the same city3782				if (m_pCity == pLoopCity)3783				{3784					continue;3785				}37863787				// Does this city have the matching majority religion?3788				ReligionTypes eMajorityReligion = pLoopCity->GetCityReligions()->GetReligiousMajority();3789				if(eMajorityReligion == eReligion)3790				{3791					int iNumTradeRoutes;3792					iPressure += GC.getGame().GetGameReligions()->GetAdjacentCityReligiousPressure (eMajorityReligion, pLoopCity, m_pCity, iNumTradeRoutes, false);3793					iNumTradeRoutesInvolved += iNumTradeRoutes;3794				}3795			}37963797#if defined(MOD_BUGFIX_RELIGIOUS_SPY_PRESSURE)3798			// Include any pressure from "Underground Sects"3799			if (kPlayer.GetReligions()->GetReligionCreatedByPlayer() == eReligion)3800			{3801				int iSpyPressure = kPlayer.GetReligions()->GetSpyPressure();3802				if (iSpyPressure > 0)3803				{3804					if (kPlayer.GetEspionage()->GetSpyIndexInCity(m_pCity) != -1)3805					{3806						if (GetNumFollowers(eReligion) != 0)3807						{3808							iPressure += iSpyPressure * GC.getGame().getGameSpeedInfo().getReligiousPressureAdjacentCity();3809						}3810					}3811				}3812			}3813#endif3814		}3815	}38163817	// Holy city for this religion?3818	if (IsHolyCityForReligion(eReligion))3819	{3820		int iHolyCityPressure = GC.getGame().getGameSpeedInfo().getReligiousPressureAdjacentCity();3821		iHolyCityPressure *=  GC.getRELIGION_PER_TURN_FOUNDING_CITY_PRESSURE();3822		iPressure += iHolyCityPressure;3823	}3824	3825	// CUSTOMLOG("GetPressurePerTurn for %i on %s is %i", eReligion, m_pCity->getName().c_str(), iPressure);3826	return iPressure;3827}

Calls

Called by