Hooks
static bool BeforeCvPlayer_changeGreatPersonExpendedYield(CvPlayer* self, GreatPersonTypes eIndex1, YieldTypes eIndex2, int iChange);static void AfterCvPlayer_changeGreatPersonExpendedYield(CvPlayer* self, GreatPersonTypes eIndex1, YieldTypes eIndex2, int iChange);static void ReplaceCvPlayer_changeGreatPersonExpendedYield(void (*original)(CvPlayer*, GreatPersonTypes, YieldTypes, int), CvPlayer* self, GreatPersonTypes eIndex1, YieldTypes eIndex2, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeGreatPersonExpendedYield>(host, &BeforeCvPlayer_changeGreatPersonExpendedYield);CivRegisterAfter<CivHooks::CvPlayer_changeGreatPersonExpendedYield>(host, &AfterCvPlayer_changeGreatPersonExpendedYield);CivRegisterReplace<CivHooks::CvPlayer_changeGreatPersonExpendedYield>(host, &ReplaceCvPlayer_changeGreatPersonExpendedYield);
Code
21175void CvPlayer::changeGreatPersonExpendedYield(GreatPersonTypes eIndex1, YieldTypes eIndex2, int iChange)21176{21177 CvAssertMsg(eIndex1 >= 0, "eIndex1 is expected to be non-negative (invalid Index)");21178 CvAssertMsg(eIndex1 < GC.getNumGreatPersonInfos(), "eIndex1 is expected to be within maximum bounds (invalid Index)");21179 CvAssertMsg(eIndex2 >= 0, "eIndex2 is expected to be non-negative (invalid Index)");21180 CvAssertMsg(eIndex2 < NUM_YIELD_TYPES, "eIndex2 is expected to be within maximum bounds (invalid Index)");2118121182 if(iChange != 0)21183 {21184 Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppiGreatPersonExpendedYield[eIndex1];21185 yields[eIndex2] = (m_ppiGreatPersonExpendedYield[eIndex1][eIndex2] + iChange);21186 m_ppiGreatPersonExpendedYield[eIndex1] = yields;21187 CvAssert(GetGreatPersonExpendedYield(eIndex1, eIndex2) >= 0);2118821189 updateYield();21190 }21191}