Bazaar developer reference

CvCityReligions::SimulateReligiousPressure(ReligionTypes, int)

Defined in
CvReligionClasses.cpp, line 4094
Class
CvCityReligions
Hook name
CivHooks::CvCityReligions_SimulateReligiousPressure

Hooks

static bool BeforeCvCityReligions_SimulateReligiousPressure(CvCityReligions* self, ReligionTypes eReligion, int iPressure);static void AfterCvCityReligions_SimulateReligiousPressure(CvCityReligions* self, ReligionTypes eReligion, int iPressure);static void ReplaceCvCityReligions_SimulateReligiousPressure(void (*original)(CvCityReligions*, ReligionTypes, int), CvCityReligions* self, ReligionTypes eReligion, int iPressure);CivRegisterBefore<CivHooks::CvCityReligions_SimulateReligiousPressure>(host, &BeforeCvCityReligions_SimulateReligiousPressure);CivRegisterAfter<CivHooks::CvCityReligions_SimulateReligiousPressure>(host, &AfterCvCityReligions_SimulateReligiousPressure);CivRegisterReplace<CivHooks::CvCityReligions_SimulateReligiousPressure>(host, &ReplaceCvCityReligions_SimulateReligiousPressure);

Code

4093/// Simulate religious pressure addition4094void CvCityReligions::SimulateReligiousPressure(ReligionTypes eReligion, int iPressure)4095{4096	bool bFoundIt = false;40974098	CopyToSimulatedStatus();40994100	ReligionInCityList::iterator it;4101	for(it = m_SimulatedStatus.begin(); it != m_SimulatedStatus.end(); it++)4102	{4103		if(it->m_eReligion == eReligion)4104		{4105			it->m_iPressure += iPressure;4106			bFoundIt = true;4107		}41084109		//  If this is pressure from a real religion, reduce presence of pantheon by the same amount4110		else if(eReligion > RELIGION_PANTHEON && it->m_eReligion == RELIGION_PANTHEON)4111		{4112			it->m_iPressure = max(0, (it->m_iPressure - iPressure));4113		}41144115		else if (it->m_eReligion > RELIGION_PANTHEON)4116		{4117			const CvReligion *pReligion = GC.getGame().GetGameReligions()->GetReligion(eReligion, NO_PLAYER);4118			int iPressureErosion = pReligion->m_Beliefs.GetOtherReligionPressureErosion();  // Normally 04119			if (iPressureErosion > 0)4120			{4121				int iErosionAmount = iPressureErosion * iPressure / 100;4122				it->m_iPressure = max(0, (it->m_iPressure - iErosionAmount));4123			}4124		}4125	}41264127	// Didn't find it, add new entry4128	if(!bFoundIt)4129	{4130		CvReligionInCity newReligion(eReligion, false, 0, iPressure);4131		m_SimulatedStatus.push_back(newReligion);4132	}41334134	SimulateFollowers();4135}

Calls

Called by