CvCity::GetYieldPerTurnFromUnimprovedFeatures(YieldTypes) const
- Defined in
- CvCity.cpp, line 8661
- Class
- CvCity
- Hook name
CivHooks::CvCity_GetYieldPerTurnFromUnimprovedFeatures
Hooks
static bool BeforeCvCity_GetYieldPerTurnFromUnimprovedFeatures(const CvCity* self, YieldTypes eYield, int& result);static void AfterCvCity_GetYieldPerTurnFromUnimprovedFeatures(const CvCity* self, YieldTypes eYield, int& result);static int ReplaceCvCity_GetYieldPerTurnFromUnimprovedFeatures(int (*original)(const CvCity*, YieldTypes), const CvCity* self, YieldTypes eYield);CivRegisterBefore<CivHooks::CvCity_GetYieldPerTurnFromUnimprovedFeatures>(host, &BeforeCvCity_GetYieldPerTurnFromUnimprovedFeatures);CivRegisterAfter<CivHooks::CvCity_GetYieldPerTurnFromUnimprovedFeatures>(host, &AfterCvCity_GetYieldPerTurnFromUnimprovedFeatures);CivRegisterReplace<CivHooks::CvCity_GetYieldPerTurnFromUnimprovedFeatures>(host, &ReplaceCvCity_GetYieldPerTurnFromUnimprovedFeatures);
Code
8660#if defined(MOD_API_UNIFIED_YIELDS)8661int CvCity::GetYieldPerTurnFromUnimprovedFeatures(YieldTypes eYield) const8662{8663 VALIDATE_OBJECT8664 int iYield = 0;86658666 CvPlayer& kPlayer = GET_PLAYER(getOwner());8667 ReligionTypes eMajority = GetCityReligions()->GetReligiousMajority();8668 const CvReligion* pReligion = (eMajority == NO_RELIGION) ? NULL : GC.getGame().GetGameReligions()->GetReligion(eMajority, getOwner());8669 BeliefTypes eSecondaryPantheon = GetCityReligions()->GetSecondaryReligionPantheonBelief();86708671 for (int iI = 0; iI < GC.getNumFeatureInfos(); iI++)8672 {8673 FeatureTypes eFeature = (FeatureTypes) iI;86748675 if (!GC.getFeatureInfo(eFeature)->IsNaturalWonder()) {8676 int iBaseYield = kPlayer.getCityYieldFromUnimprovedFeature(eFeature, eYield);8677 iBaseYield += kPlayer.GetPlayerTraits()->GetCityYieldFromUnimprovedFeature(eFeature, eYield);8678 8679 if(pReligion)8680 {8681 iBaseYield += pReligion->m_Beliefs.GetCityYieldFromUnimprovedFeature(eFeature, eYield);8682 if (eSecondaryPantheon != NO_BELIEF)8683 {8684 iBaseYield += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetCityYieldFromUnimprovedFeature(eFeature, eYield);8685 }8686 }86878688 if (eYield == YIELD_FAITH && eFeature == FEATURE_FOREST && kPlayer.GetPlayerTraits()->IsFaithFromUnimprovedForest())8689 {8690 ++iBaseYield;8691 }8692 8693 if (iBaseYield > 0)8694 {8695 int iAdjacentFeatures = 0;86968697 for (int iDirectionLoop = 0; iDirectionLoop < NUM_DIRECTION_TYPES; ++iDirectionLoop)8698 {8699 CvPlot* pAdjacentPlot = plotDirection(getX(), getY(), ((DirectionTypes)iDirectionLoop));8700 if (pAdjacentPlot && pAdjacentPlot->getFeatureType() == eFeature && pAdjacentPlot->getImprovementType() == NO_IMPROVEMENT)8701 {8702 iAdjacentFeatures++;8703 }8704 }87058706 if (iAdjacentFeatures > 2)8707 {8708 iYield += iBaseYield * 2;8709 }8710 else if (iAdjacentFeatures > 0)8711 {8712 iYield += iBaseYield;8713 }8714 }8715 }8716 }8717 8718 return iYield;8719}
Calls
- CvBeliefEntry::GetCityYieldFromUnimprovedFeature(int, int) const
- CvBeliefXMLEntries::GetEntry(int)
- CvCity::GetCityReligions() const
- CvCity::getOwner() const
- CvCity::getX() const
- CvCity::getY() const
- CvCityReligions::GetReligiousMajority()
- CvCityReligions::GetSecondaryReligionPantheonBelief()
- CvFeatureInfo::IsNaturalWonder() const
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getFeatureInfo(FeatureTypes)
- CvGlobals::getGame()
- CvGlobals::GetGameBeliefs() const
- CvGlobals::getNumFeatureInfos()
- CvPlayer::getCityYieldFromUnimprovedFeature(FeatureTypes, YieldTypes) const
- CvPlayer::GetPlayerTraits() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTraits::GetCityYieldFromUnimprovedFeature(FeatureTypes, YieldTypes) const
- CvPlayerTraits::IsFaithFromUnimprovedForest() const
- CvPlot::getFeatureType() const
- CvPlot::getImprovementType() const
- CvReligionBeliefs::GetCityYieldFromUnimprovedFeature(FeatureTypes, YieldTypes) const
- plotDirection(int, int, DirectionTypes)