Bazaar developer reference

CvCityReligions::SimulateProphetSpread(ReligionTypes, int)

Defined in
CvReligionClasses.cpp, line 4041
Class
CvCityReligions
Hook name
CivHooks::CvCityReligions_SimulateProphetSpread

Hooks

static bool BeforeCvCityReligions_SimulateProphetSpread(CvCityReligions* self, ReligionTypes eReligion, int iPressure);static void AfterCvCityReligions_SimulateProphetSpread(CvCityReligions* self, ReligionTypes eReligion, int iPressure);static void ReplaceCvCityReligions_SimulateProphetSpread(void (*original)(CvCityReligions*, ReligionTypes, int), CvCityReligions* self, ReligionTypes eReligion, int iPressure);CivRegisterBefore<CivHooks::CvCityReligions_SimulateProphetSpread>(host, &BeforeCvCityReligions_SimulateProphetSpread);CivRegisterAfter<CivHooks::CvCityReligions_SimulateProphetSpread>(host, &AfterCvCityReligions_SimulateProphetSpread);CivRegisterReplace<CivHooks::CvCityReligions_SimulateProphetSpread>(host, &ReplaceCvCityReligions_SimulateProphetSpread);

Code

4040/// Simulate prophet spread4041void CvCityReligions::SimulateProphetSpread(ReligionTypes eReligion, int iPressure)4042{4043	int iAtheismPressure = 0;4044	int iReligionPressure = 0;4045	int iPressureRetained = 0;4046	ReligionTypes ePressureRetainedReligion = NO_RELIGION;40474048	CopyToSimulatedStatus();40494050	ReligionInCityList::iterator it;4051	for(it = m_SimulatedStatus.begin(); it != m_SimulatedStatus.end(); it++)4052	{4053		if(it->m_eReligion == NO_RELIGION)4054		{4055			iAtheismPressure = it->m_iPressure;4056		}4057		else if(eReligion == it->m_eReligion)4058		{4059			iReligionPressure = it->m_iPressure;4060		}40614062		if (it->m_eReligion > RELIGION_PANTHEON && eReligion != it->m_eReligion)4063		{4064			const CvReligion *pReligion = GC.getGame().GetGameReligions()->GetReligion(it->m_eReligion, NO_PLAYER);4065			int iPressureRetention = pReligion->m_Beliefs.GetInquisitorPressureRetention();  // Normally 04066			if (iPressureRetention > 0)4067			{4068				ePressureRetainedReligion = it->m_eReligion;4069				iPressureRetained = it->m_iPressure * iPressureRetention / 100;4070			}4071		}4072	}40734074	// Clear list4075	m_SimulatedStatus.clear();40764077	// Add atheists and this back in4078	CvReligionInCity atheism(NO_RELIGION, false, 0, iAtheismPressure);4079	m_SimulatedStatus.push_back(atheism);4080	CvReligionInCity prophetReligion(eReligion, false, 0, iReligionPressure + iPressure);4081	m_SimulatedStatus.push_back(prophetReligion);40824083	if (ePressureRetainedReligion != NO_RELIGION)4084	{4085		CvReligionInCity pressureRetainedReligion(ePressureRetainedReligion, false, 0, iPressureRetained);4086		m_SimulatedStatus.push_back(pressureRetainedReligion);40874088	}40894090	SimulateFollowers();4091}

Calls

Called by