Hooks
static bool BeforeCvPlayer_changeFeatureYieldChange(CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);static void AfterCvPlayer_changeFeatureYieldChange(CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);static void ReplaceCvPlayer_changeFeatureYieldChange(void (*original)(CvPlayer*, FeatureTypes, YieldTypes, int), CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeFeatureYieldChange>(host, &BeforeCvPlayer_changeFeatureYieldChange);CivRegisterAfter<CivHooks::CvPlayer_changeFeatureYieldChange>(host, &AfterCvPlayer_changeFeatureYieldChange);CivRegisterReplace<CivHooks::CvPlayer_changeFeatureYieldChange>(host, &ReplaceCvPlayer_changeFeatureYieldChange);
Code
20962void CvPlayer::changeFeatureYieldChange(FeatureTypes eIndex1, YieldTypes eIndex2, int iChange)20963{20964 CvAssertMsg(eIndex1 >= 0, "eIndex1 is expected to be non-negative (invalid Index)");20965 CvAssertMsg(eIndex1 < GC.getNumFeatureInfos(), "eIndex1 is expected to be within maximum bounds (invalid Index)");20966 CvAssertMsg(eIndex2 >= 0, "eIndex2 is expected to be non-negative (invalid Index)");20967 CvAssertMsg(eIndex2 < NUM_YIELD_TYPES, "eIndex2 is expected to be within maximum bounds (invalid Index)");2096820969 if(iChange != 0)20970 {20971 CvAssertMsg(iChange > -50 && iChange < 50, "GAMEPLAY: Yield for a plot is either negative or a ridiculously large number. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");2097220973 Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppiFeatureYieldChange[eIndex1];20974 yields[eIndex2] = (m_ppiFeatureYieldChange[eIndex1][eIndex2] + iChange);20975 m_ppiFeatureYieldChange[eIndex1] = yields;20976 CvAssert(getFeatureYieldChange(eIndex1, eIndex2) >= 0);2097720978 updateYield();20979 }20980}