CvCityReligions::GetPressurePerTurn(ReligionTypes, int &)
- Defined in
- CvReligionClasses.cpp, line 3765
- Class
- CvCityReligions
- Hook name
CivHooks::CvCityReligions_GetPressurePerTurn
Hooks
static bool BeforeCvCityReligions_GetPressurePerTurn(CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved, int& result);static void AfterCvCityReligions_GetPressurePerTurn(CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved, int& result);static int ReplaceCvCityReligions_GetPressurePerTurn(int (*original)(CvCityReligions*, ReligionTypes, int&), CvCityReligions* self, ReligionTypes eReligion, int& iNumTradeRoutesInvolved);CivRegisterBefore<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &BeforeCvCityReligions_GetPressurePerTurn);CivRegisterAfter<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &AfterCvCityReligions_GetPressurePerTurn);CivRegisterReplace<CivHooks::CvCityReligions_GetPressurePerTurn>(host, &ReplaceCvCityReligions_GetPressurePerTurn);
Code
3764/// Pressure exerted by one religion per turn3765int CvCityReligions::GetPressurePerTurn(ReligionTypes eReligion, int& iNumTradeRoutesInvolved)3766{3767 int iPressure = 0;3768 iNumTradeRoutesInvolved = 0;3769 3770 // Loop through all the players3771 for(int iI = 0; iI < MAX_PLAYERS; iI++)3772 {3773 CvPlayer& kPlayer = GET_PLAYER((PlayerTypes)iI);3774 if(kPlayer.isAlive())3775 {3776 // Loop through each of their cities3777 int iLoop;3778 CvCity* pLoopCity;3779 for(pLoopCity = kPlayer.firstCity(&iLoop); pLoopCity != NULL; pLoopCity = kPlayer.nextCity(&iLoop))3780 {3781 // Ignore the same city3782 if (m_pCity == pLoopCity)3783 {3784 continue;3785 }37863787 // Does this city have the matching majority religion?3788 ReligionTypes eMajorityReligion = pLoopCity->GetCityReligions()->GetReligiousMajority();3789 if(eMajorityReligion == eReligion)3790 {3791 int iNumTradeRoutes;3792 iPressure += GC.getGame().GetGameReligions()->GetAdjacentCityReligiousPressure (eMajorityReligion, pLoopCity, m_pCity, iNumTradeRoutes, false);3793 iNumTradeRoutesInvolved += iNumTradeRoutes;3794 }3795 }37963797#if defined(MOD_BUGFIX_RELIGIOUS_SPY_PRESSURE)3798 // Include any pressure from "Underground Sects"3799 if (kPlayer.GetReligions()->GetReligionCreatedByPlayer() == eReligion)3800 {3801 int iSpyPressure = kPlayer.GetReligions()->GetSpyPressure();3802 if (iSpyPressure > 0)3803 {3804 if (kPlayer.GetEspionage()->GetSpyIndexInCity(m_pCity) != -1)3805 {3806 if (GetNumFollowers(eReligion) != 0)3807 {3808 iPressure += iSpyPressure * GC.getGame().getGameSpeedInfo().getReligiousPressureAdjacentCity();3809 }3810 }3811 }3812 }3813#endif3814 }3815 }38163817 // Holy city for this religion?3818 if (IsHolyCityForReligion(eReligion))3819 {3820 int iHolyCityPressure = GC.getGame().getGameSpeedInfo().getReligiousPressureAdjacentCity();3821 iHolyCityPressure *= GC.getRELIGION_PER_TURN_FOUNDING_CITY_PRESSURE();3822 iPressure += iHolyCityPressure;3823 }3824 3825 // CUSTOMLOG("GetPressurePerTurn for %i on %s is %i", eReligion, m_pCity->getName().c_str(), iPressure);3826 return iPressure;3827}
Calls
- CvCity::GetCityReligions() const
- CvCityReligions::GetNumFollowers(ReligionTypes)
- CvCityReligions::GetReligiousMajority()
- CvCityReligions::IsHolyCityForReligion(ReligionTypes)
- CvGame::GetGameReligions()
- CvGame::getGameSpeedInfo() const
- CvGameReligions::GetAdjacentCityReligiousPressure(ReligionTypes, CvCity *, CvCity *, int &, bool)
- CvGameSpeedInfo::getReligiousPressureAdjacentCity() const
- CvGlobals::getGame()
- CvGlobals::getRELIGION_PER_TURN_FOUNDING_CITY_PRESSURE()
- CvPlayer::firstCity(int *, bool)
- CvPlayer::GetEspionage() const
- CvPlayer::GetReligions() const
- CvPlayer::isAlive() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerEspionage::GetSpyIndexInCity(CvCity *)
- CvPlayerReligions::GetReligionCreatedByPlayer(bool) const
- CvPlayerReligions::GetSpyPressure() const