Bazaar developer reference

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}

Calls

Called by