CvArea::changeYieldRateModifier(PlayerTypes, YieldTypes, int)
- Defined in
- CvArea.cpp, line 565
- Class
- CvArea
- Hook name
CivHooks::CvArea_changeYieldRateModifier
Hooks
static bool BeforeCvArea_changeYieldRateModifier(CvArea* self, PlayerTypes eIndex1, YieldTypes eIndex2, int iChange);static void AfterCvArea_changeYieldRateModifier(CvArea* self, PlayerTypes eIndex1, YieldTypes eIndex2, int iChange);static void ReplaceCvArea_changeYieldRateModifier(void (*original)(CvArea*, PlayerTypes, YieldTypes, int), CvArea* self, PlayerTypes eIndex1, YieldTypes eIndex2, int iChange);CivRegisterBefore<CivHooks::CvArea_changeYieldRateModifier>(host, &BeforeCvArea_changeYieldRateModifier);CivRegisterAfter<CivHooks::CvArea_changeYieldRateModifier>(host, &AfterCvArea_changeYieldRateModifier);CivRegisterReplace<CivHooks::CvArea_changeYieldRateModifier>(host, &ReplaceCvArea_changeYieldRateModifier);
Code
565void CvArea::changeYieldRateModifier(PlayerTypes eIndex1, YieldTypes eIndex2, int iChange)566{567 CvAssertMsg(eIndex1 >= 0, "eIndex1 is expected to be >= 0");568 CvAssertMsg(eIndex1 < MAX_PLAYERS, "eIndex1 is expected to be < MAX_PLAYERS");569 if(eIndex1 < 0 || eIndex1 >= MAX_PLAYERS) return;570571 CvAssertMsg(eIndex2 >= 0, "eIndex2 is expected to be >= 0");572 CvAssertMsg(eIndex2 < NUM_YIELD_TYPES, "eIndex2 is expected to be < NUM_YIELD_TYPES");573 if(eIndex2 < 0 || eIndex2 >= MAX_PLAYERS) return;574575 if(iChange != 0)576 {577 m_aaiYieldRateModifier[eIndex1][eIndex2] = (m_aaiYieldRateModifier[eIndex1][eIndex2] + iChange);578579 CvPlayer& thisPlayer = GET_PLAYER(eIndex1);580 thisPlayer.invalidateYieldRankCache(eIndex2);581582 if(thisPlayer.getTeam() == GC.getGame().getActiveTeam())583 {584 GC.GetEngineUserInterface()->setDirty(CityInfo_DIRTY_BIT, true);585 }586 }587}