Bazaar developer reference

CvCityReligions::AddReligiousPressure(CvReligiousFollowChangeReason, ReligionTypes, int, PlayerTypes)

Defined in
CvReligionClasses.cpp, line 3997
Class
CvCityReligions
Hook name
CivHooks::CvCityReligions_AddReligiousPressure

Hooks

static bool BeforeCvCityReligions_AddReligiousPressure(CvCityReligions* self, CvReligiousFollowChangeReason eReason, ReligionTypes eReligion, int iPressure, PlayerTypes eResponsiblePlayer);static void AfterCvCityReligions_AddReligiousPressure(CvCityReligions* self, CvReligiousFollowChangeReason eReason, ReligionTypes eReligion, int iPressure, PlayerTypes eResponsiblePlayer);static void ReplaceCvCityReligions_AddReligiousPressure(void (*original)(CvCityReligions*, CvReligiousFollowChangeReason, ReligionTypes, int, PlayerTypes), CvCityReligions* self, CvReligiousFollowChangeReason eReason, ReligionTypes eReligion, int iPressure, PlayerTypes eResponsiblePlayer);CivRegisterBefore<CivHooks::CvCityReligions_AddReligiousPressure>(host, &BeforeCvCityReligions_AddReligiousPressure);CivRegisterAfter<CivHooks::CvCityReligions_AddReligiousPressure>(host, &AfterCvCityReligions_AddReligiousPressure);CivRegisterReplace<CivHooks::CvCityReligions_AddReligiousPressure>(host, &ReplaceCvCityReligions_AddReligiousPressure);

Code

3996/// Add pressure to recruit followers to a religion3997void CvCityReligions::AddReligiousPressure(CvReligiousFollowChangeReason eReason, ReligionTypes eReligion, int iPressure, PlayerTypes eResponsiblePlayer)3998{3999	bool bFoundIt = false;40004001	ReligionTypes eOldMajorityReligion = GetReligiousMajority();40024003	ReligionInCityList::iterator it;4004	for(it = m_ReligionStatus.begin(); it != m_ReligionStatus.end(); it++)4005	{4006		if(it->m_eReligion == eReligion)4007		{4008			it->m_iPressure += iPressure;4009			bFoundIt = true;4010		}40114012		//  If this is pressure from a real religion, reduce presence of pantheon by the same amount4013		else if(eReligion > RELIGION_PANTHEON && it->m_eReligion == RELIGION_PANTHEON)4014		{4015			it->m_iPressure = max(0, (it->m_iPressure - iPressure));4016		}40174018		else if (it->m_eReligion > RELIGION_PANTHEON && eReason == FOLLOWER_CHANGE_MISSIONARY)4019		{4020			const CvReligion *pReligion = GC.getGame().GetGameReligions()->GetReligion(eReligion, NO_PLAYER);4021			int iPressureErosion = pReligion->m_Beliefs.GetOtherReligionPressureErosion();  // Normally 04022			if (iPressureErosion > 0)4023			{4024				int iErosionAmount = iPressureErosion * iPressure / 100;4025				it->m_iPressure = max(0, (it->m_iPressure - iErosionAmount));4026			}4027		}4028	}40294030	// Didn't find it, add new entry4031	if(!bFoundIt)4032	{4033		CvReligionInCity newReligion(eReligion, false, 0, iPressure);4034		m_ReligionStatus.push_back(newReligion);4035	}40364037	RecomputeFollowers(eReason, eOldMajorityReligion, eResponsiblePlayer);4038}

Calls

Called by