Hooks
static bool BeforeCvBuilderTaskingAI_UpdateProjectedPlotYields(CvBuilderTaskingAI* self, CvPlot* pPlot, BuildTypes eBuild);static void AfterCvBuilderTaskingAI_UpdateProjectedPlotYields(CvBuilderTaskingAI* self, CvPlot* pPlot, BuildTypes eBuild);static void ReplaceCvBuilderTaskingAI_UpdateProjectedPlotYields(void (*original)(CvBuilderTaskingAI*, CvPlot*, BuildTypes), CvBuilderTaskingAI* self, CvPlot* pPlot, BuildTypes eBuild);CivRegisterBefore<CivHooks::CvBuilderTaskingAI_UpdateProjectedPlotYields>(host, &BeforeCvBuilderTaskingAI_UpdateProjectedPlotYields);CivRegisterAfter<CivHooks::CvBuilderTaskingAI_UpdateProjectedPlotYields>(host, &AfterCvBuilderTaskingAI_UpdateProjectedPlotYields);CivRegisterReplace<CivHooks::CvBuilderTaskingAI_UpdateProjectedPlotYields>(host, &ReplaceCvBuilderTaskingAI_UpdateProjectedPlotYields);
Code
2600// looks at the current plot assuming the build to see what it's worth2601void CvBuilderTaskingAI::UpdateProjectedPlotYields(CvPlot* pPlot, BuildTypes eBuild)2602{2603 if(pPlot != m_pTargetPlot)2604 {2605 UpdateCurrentPlotYields(pPlot);2606 }26072608 for(uint ui = 0; ui < NUM_YIELD_TYPES; ui++)2609 {2610 m_aiProjectedPlotYields[ui] = pPlot->getYieldWithBuild(eBuild, (YieldTypes)ui, false, m_pPlayer->GetID());2611 m_aiProjectedPlotYields[ui] = max(m_aiProjectedPlotYields[ui], 0);26122613 if(m_bLogging){2614 CvString strLog;2615 YieldTypes yield = (YieldTypes) ui;2616 strLog.Format("Plot Projected Yield Update, %s, %i, %i, %i", FSerialization::toString(yield).c_str(), m_aiProjectedPlotYields[ui], pPlot->getX(), pPlot->getY());2617 LogYieldInfo(strLog, m_pPlayer);2618 }2619 }2620}