Hooks
static bool BeforeCvPlayer_DoYieldsFromKill(CvPlayer* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit, int iX, int iY, int iExistingDelay);static void AfterCvPlayer_DoYieldsFromKill(CvPlayer* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit, int iX, int iY, int iExistingDelay);static void ReplaceCvPlayer_DoYieldsFromKill(void (*original)(CvPlayer*, CvUnit*, CvUnit*, int, int, int), CvPlayer* self, CvUnit* pAttackingUnit, CvUnit* pDefendingUnit, int iX, int iY, int iExistingDelay);CivRegisterBefore<CivHooks::CvPlayer_DoYieldsFromKill>(host, &BeforeCvPlayer_DoYieldsFromKill);CivRegisterAfter<CivHooks::CvPlayer_DoYieldsFromKill>(host, &AfterCvPlayer_DoYieldsFromKill);CivRegisterReplace<CivHooks::CvPlayer_DoYieldsFromKill>(host, &ReplaceCvPlayer_DoYieldsFromKill);
Code
10842/// Handle earning yields from a combat win10843#if defined(MOD_API_UNIFIED_YIELDS)10844void CvPlayer::DoYieldsFromKill(CvUnit* pAttackingUnit, CvUnit* pDefendingUnit, int iX, int iY, int iExistingDelay)10845#else10846void CvPlayer::DoYieldsFromKill(UnitTypes eAttackingUnitType, UnitTypes eKilledUnitType, int iX, int iY, bool bWasBarbarian, int iExistingDelay)10847#endif10848{10849#if defined(MOD_API_UNIFIED_YIELDS)10850 UnitTypes eKilledUnitType = pDefendingUnit->getUnitType();10851#endif1085210853 int iNumBonuses = iExistingDelay; // Passed by reference below, incremented to stagger floating text in UI10854#if defined(MOD_API_EXTENSIONS)10855 DoUnresearchedTechBonusFromKill(pDefendingUnit, eKilledUnitType, iX, iY, iNumBonuses);10856#else10857 DoUnresearchedTechBonusFromKill(eKilledUnitType, iX, iY, iNumBonuses);10858#endif10859 for(int iYield = 0; iYield < NUM_YIELD_TYPES; iYield++)10860 {10861#if defined(MOD_API_UNIFIED_YIELDS)10862#if defined(MOD_API_EXTENSIONS)10863 DoYieldBonusFromKill((YieldTypes)iYield, pAttackingUnit, pDefendingUnit, eKilledUnitType, iX, iY, pDefendingUnit->isBarbarian(), iNumBonuses);10864#else10865 DoYieldBonusFromKill((YieldTypes)iYield, pAttackingUnit, eKilledUnitType, iX, iY, pDefendingUnit->isBarbarian(), iNumBonuses);10866#endif10867#else10868#if defined(MOD_API_EXTENSIONS)10869 DoYieldBonusFromKill((YieldTypes)iYield, eAttackingUnitType, pDefendingUnit, eKilledUnitType, iX, iY, bWasBarbarian, iNumBonuses);10870#else10871 DoYieldBonusFromKill((YieldTypes)iYield, eAttackingUnitType, eKilledUnitType, iX, iY, bWasBarbarian, iNumBonuses);10872#endif10873#endif10874 }10875}