CvCityReligions::RemoveOtherReligions(ReligionTypes, PlayerTypes)
- Defined in
- CvReligionClasses.cpp, line 4270
- Class
- CvCityReligions
- Hook name
CivHooks::CvCityReligions_RemoveOtherReligions
Hooks
static bool BeforeCvCityReligions_RemoveOtherReligions(CvCityReligions* self, ReligionTypes eReligion, PlayerTypes eResponsiblePlayer);static void AfterCvCityReligions_RemoveOtherReligions(CvCityReligions* self, ReligionTypes eReligion, PlayerTypes eResponsiblePlayer);static void ReplaceCvCityReligions_RemoveOtherReligions(void (*original)(CvCityReligions*, ReligionTypes, PlayerTypes), CvCityReligions* self, ReligionTypes eReligion, PlayerTypes eResponsiblePlayer);CivRegisterBefore<CivHooks::CvCityReligions_RemoveOtherReligions>(host, &BeforeCvCityReligions_RemoveOtherReligions);CivRegisterAfter<CivHooks::CvCityReligions_RemoveOtherReligions>(host, &AfterCvCityReligions_RemoveOtherReligions);CivRegisterReplace<CivHooks::CvCityReligions_RemoveOtherReligions>(host, &ReplaceCvCityReligions_RemoveOtherReligions);
Code
4269/// Remove other religions in a city (used by Inquisitor)4270void CvCityReligions::RemoveOtherReligions(ReligionTypes eReligion, PlayerTypes eResponsiblePlayer)4271{4272 ReligionTypes eOldMajorityReligion = GetReligiousMajority();42734274 // Copy list4275 ReligionInCityList tempList;4276 ReligionInCityList::iterator it;4277 for(it = m_ReligionStatus.begin(); it != m_ReligionStatus.end(); it++)4278 {4279 tempList.push_back(*it);4280 }42814282 // Erase old list4283 m_ReligionStatus.clear();42844285 // Recopy just what we want to keep4286 for(it = tempList.begin(); it != tempList.end(); it++)4287 {4288 int iPressureRetained = 0;42894290 ReligionTypes eLoopReligion = it->m_eReligion;4291 if (eLoopReligion > RELIGION_PANTHEON && eLoopReligion != eReligion)4292 {4293 const CvReligion *pReligion = GC.getGame().GetGameReligions()->GetReligion(eLoopReligion, NO_PLAYER);4294 iPressureRetained = pReligion->m_Beliefs.GetInquisitorPressureRetention(); // Normally 04295 }42964297 if (eLoopReligion == NO_RELIGION || eLoopReligion == eReligion || iPressureRetained > 0)4298 {4299 if (iPressureRetained > 0)4300 {4301 it->m_iPressure = it->m_iPressure * iPressureRetained / 100;4302 }43034304 m_ReligionStatus.push_back(*it);4305 }4306 }43074308 RecomputeFollowers(FOLLOWER_CHANGE_REMOVE_HERESY, eOldMajorityReligion, eResponsiblePlayer);4309}
Calls
BaseVector::beginBaseVector::clearBaseVector::end- CvCityReligions::GetReligiousMajority()
- CvCityReligions::RecomputeFollowers(CvReligiousFollowChangeReason, ReligionTypes, PlayerTypes)
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getGame()
- CvReligionBeliefs::GetInquisitorPressureRetention() const
FStaticVector::FStaticVectorFStaticVector::push_back