Hooks
static bool BeforeCvPlayer_changeUnimprovedFeatureYieldChange(CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);static void AfterCvPlayer_changeUnimprovedFeatureYieldChange(CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);static void ReplaceCvPlayer_changeUnimprovedFeatureYieldChange(void (*original)(CvPlayer*, FeatureTypes, YieldTypes, int), CvPlayer* self, FeatureTypes eIndex1, YieldTypes eIndex2, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeUnimprovedFeatureYieldChange>(host, &BeforeCvPlayer_changeUnimprovedFeatureYieldChange);CivRegisterAfter<CivHooks::CvPlayer_changeUnimprovedFeatureYieldChange>(host, &AfterCvPlayer_changeUnimprovedFeatureYieldChange);CivRegisterReplace<CivHooks::CvPlayer_changeUnimprovedFeatureYieldChange>(host, &ReplaceCvPlayer_changeUnimprovedFeatureYieldChange);
Code
21024void CvPlayer::changeUnimprovedFeatureYieldChange(FeatureTypes eIndex1, YieldTypes eIndex2, int iChange)21025{21026 CvAssertMsg(eIndex1 >= 0, "eIndex1 is expected to be non-negative (invalid Index)");21027 CvAssertMsg(eIndex1 < GC.getNumFeatureInfos(), "eIndex1 is expected to be within maximum bounds (invalid Index)");21028 CvAssertMsg(eIndex2 >= 0, "eIndex2 is expected to be non-negative (invalid Index)");21029 CvAssertMsg(eIndex2 < NUM_YIELD_TYPES, "eIndex2 is expected to be within maximum bounds (invalid Index)");2103021031 if(iChange != 0)21032 {21033 CvAssertMsg(iChange > -50 && iChange < 50, "GAMEPLAY: Yield for a plot is either negative or a ridiculously large number.");2103421035 Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppiUnimprovedFeatureYieldChange[eIndex1];21036 yields[eIndex2] = (m_ppiUnimprovedFeatureYieldChange[eIndex1][eIndex2] + iChange);21037 m_ppiUnimprovedFeatureYieldChange[eIndex1] = yields;21038 CvAssert(getUnimprovedFeatureYieldChange(eIndex1, eIndex2) >= 0);2103921040 updateYield();21041 }21042}