Hooks
static bool BeforeCvPlayer_changeResourceYieldChange(CvPlayer* self, ResourceTypes eIndex1, YieldTypes eIndex2, int iChange);static void AfterCvPlayer_changeResourceYieldChange(CvPlayer* self, ResourceTypes eIndex1, YieldTypes eIndex2, int iChange);static void ReplaceCvPlayer_changeResourceYieldChange(void (*original)(CvPlayer*, ResourceTypes, YieldTypes, int), CvPlayer* self, ResourceTypes eIndex1, YieldTypes eIndex2, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeResourceYieldChange>(host, &BeforeCvPlayer_changeResourceYieldChange);CivRegisterAfter<CivHooks::CvPlayer_changeResourceYieldChange>(host, &AfterCvPlayer_changeResourceYieldChange);CivRegisterReplace<CivHooks::CvPlayer_changeResourceYieldChange>(host, &ReplaceCvPlayer_changeResourceYieldChange);
Code
21055void CvPlayer::changeResourceYieldChange(ResourceTypes eIndex1, YieldTypes eIndex2, int iChange)21056{21057 CvAssertMsg(eIndex1 >= 0, "eIndex1 is expected to be non-negative (invalid Index)");21058 CvAssertMsg(eIndex1 < GC.getNumResourceInfos(), "eIndex1 is expected to be within maximum bounds (invalid Index)");21059 CvAssertMsg(eIndex2 >= 0, "eIndex2 is expected to be non-negative (invalid Index)");21060 CvAssertMsg(eIndex2 < NUM_YIELD_TYPES, "eIndex2 is expected to be within maximum bounds (invalid Index)");2106121062 if(iChange != 0)21063 {21064 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.");2106521066 Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppiResourceYieldChange[eIndex1];21067 yields[eIndex2] = (m_ppiResourceYieldChange[eIndex1][eIndex2] + iChange);21068 m_ppiResourceYieldChange[eIndex1] = yields;21069 CvAssert(getResourceYieldChange(eIndex1, eIndex2) >= 0);2107021071 updateYield();21072 }21073}