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
BaseVector::beginBaseVector::end- CvCityReligions::CopyToSimulatedStatus()
- CvCityReligions::SimulateFollowers()
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getGame()
- CvReligionBeliefs::GetOtherReligionPressureErosion() const
- CvReligionInCity::CvReligionInCity(ReligionTypes, bool, int, int)
FStaticVector::push_backstd::max