CvUnit::GetNearbyImprovementModifier(ImprovementTypes, int, int) const
- Defined in
- CvUnit.cpp, line 18882
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const
Hooks
static bool BeforeCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const(const CvUnit* self, ImprovementTypes eBonusImprovement, int iImprovementRange, int iImprovementModifier, int& result);static void AfterCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const(const CvUnit* self, ImprovementTypes eBonusImprovement, int iImprovementRange, int iImprovementModifier, int& result);static int ReplaceCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const(int (*original)(const CvUnit*, ImprovementTypes, int, int), const CvUnit* self, ImprovementTypes eBonusImprovement, int iImprovementRange, int iImprovementModifier);CivRegisterBefore<CivHooks::CvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const>(host, &BeforeCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const);CivRegisterAfter<CivHooks::CvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const>(host, &AfterCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const);CivRegisterReplace<CivHooks::CvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const>(host, &ReplaceCvUnit_GetNearbyImprovementModifier_with_ImprovementTypes_int_int_const);
Code
18882int CvUnit::GetNearbyImprovementModifier(ImprovementTypes eBonusImprovement, int iImprovementRange, int iImprovementModifier)const18883#else18884int CvUnit::GetNearbyImprovementModifier()const18885#endif18886{18887 VALIDATE_OBJECT18888#if !defined(MOD_PROMOTIONS_IMPROVEMENT_BONUS)18889#if defined(MOD_BUGFIX_USE_GETTERS)18890 CvPlayer& kPlayer = GET_MY_PLAYER();18891#else18892 CvPlayer& kPlayer = GET_PLAYER(m_eOwner);18893#endif18894 int iImprovementRange = kPlayer.GetPlayerTraits()->GetNearbyImprovementBonusRange();18895 int iImprovementModifier = kPlayer.GetPlayerTraits()->GetNearbyImprovementCombatBonus();18896#endif1889718898 if(iImprovementModifier != 0)18899 {18900 CvPlot* pLoopPlot;1890118902 // Look around this Unit to see if there's an improvement nearby18903 for(int iX = -iImprovementRange; iX <= iImprovementRange; iX++)18904 {18905 for(int iY = -iImprovementRange; iY <= iImprovementRange; iY++)18906 {18907 pLoopPlot = plotXYWithRangeCheck(getX(), getY(), iX, iY, iImprovementRange);1890818909 if(pLoopPlot != NULL)18910 {18911 // Is the right improvement here?18912#if defined(MOD_PROMOTIONS_IMPROVEMENT_BONUS)18913 if(pLoopPlot->getImprovementType() == eBonusImprovement)18914#else18915 if(pLoopPlot->getImprovementType() == kPlayer.GetPlayerTraits()->GetCombatBonusImprovementType())18916#endif18917 {18918 return iImprovementModifier;18919 }18920 }18921 }18922 }18923 }1892418925 return 0;18926}