Hooks
static bool BeforeCvPlayer_ReportYieldFromKill(CvPlayer* self, YieldTypes eYield, int iValue, int iX, int iY, int arg4);static void AfterCvPlayer_ReportYieldFromKill(CvPlayer* self, YieldTypes eYield, int iValue, int iX, int iY, int arg4);static void ReplaceCvPlayer_ReportYieldFromKill(void (*original)(CvPlayer*, YieldTypes, int, int, int, int), CvPlayer* self, YieldTypes eYield, int iValue, int iX, int iY, int arg4);CivRegisterBefore<CivHooks::CvPlayer_ReportYieldFromKill>(host, &BeforeCvPlayer_ReportYieldFromKill);CivRegisterAfter<CivHooks::CvPlayer_ReportYieldFromKill>(host, &AfterCvPlayer_ReportYieldFromKill);CivRegisterReplace<CivHooks::CvPlayer_ReportYieldFromKill>(host, &ReplaceCvPlayer_ReportYieldFromKill);
Code
11099/// Show earning a yield from combat wins11100#if defined(SHOW_PLOT_POPUP)11101void CvPlayer::ReportYieldFromKill(YieldTypes eYield, int iValue, int iX, int iY, int)11102#else11103void CvPlayer::ReportYieldFromKill(YieldTypes eYield, int iValue, int iX, int iY, int iDelay)11104#endif11105{11106 CvString yieldString;11107 if(iValue > 0)11108 {11109#if defined(MOD_API_UNIFIED_YIELDS)11110 CvYieldInfo* pYieldInfo = GC.getYieldInfo(eYield);11111 yieldString.Format("%s+%%d[ENDCOLOR]%s", pYieldInfo->getColorString(), pYieldInfo->getIconString());11112#else1111311114 switch(eYield)11115 {11116 case YIELD_GOLD:11117 yieldString = "[COLOR_YELLOW]+%d[ENDCOLOR][ICON_GOLD]";11118 break;11119 case YIELD_CULTURE:11120 yieldString = "[COLOR_MAGENTA]+%d[ENDCOLOR][ICON_CULTURE]";11121 break;11122 case YIELD_FAITH:11123 yieldString = "[COLOR_WHITE]+%d[ENDCOLOR][ICON_PEACE]";11124 break;11125 case YIELD_SCIENCE:11126 yieldString = "[COLOR_BLUE]+%d[ENDCOLOR][ICON_RESEARCH]";11127 break;11128 case YIELD_FOOD:11129 yieldString = "[COLOR_GREEN]+%d[ENDCOLOR][ICON_FOOD]";11130 break;11131 case YIELD_PRODUCTION:11132 yieldString = "[COLOR_YELLOW]+%d[ENDCOLOR][ICON_PRODUCTION]";11133 break;11134 default:11135 // Not supported11136 return;11137 }11138#endif1113911140 if(GetID() == GC.getGame().getActivePlayer())11141 {11142 char text[256] = {0};11143#if !defined(SHOW_PLOT_POPUP)11144 float fDelay = GC.getPOST_COMBAT_TEXT_DELAY() * (1 + ((float)iDelay * 0.5f)); // 1 is added to avoid overlapping with XP text11145#endif11146 sprintf_s(text, yieldString, iValue);11147#if defined(SHOW_PLOT_POPUP)11148 SHOW_PLOT_POPUP(GC.getMap().plot(iX, iY), NO_PLAYER, text, 0.0f);11149#else11150 GC.GetEngineUserInterface()->AddPopupText(iX, iY, text, fDelay);11151#endif11152 }11153 }11154}