CvEconomicAI::GetImprovedToImprovablePlotsRatio()
- Defined in
- CvEconomicAI.cpp, line 1254
- Class
- CvEconomicAI
- Hook name
CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio
Hooks
static bool BeforeCvEconomicAI_GetImprovedToImprovablePlotsRatio(CvEconomicAI* self, double& result);static void AfterCvEconomicAI_GetImprovedToImprovablePlotsRatio(CvEconomicAI* self, double& result);static double ReplaceCvEconomicAI_GetImprovedToImprovablePlotsRatio(double (*original)(CvEconomicAI*), CvEconomicAI* self);CivRegisterBefore<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &BeforeCvEconomicAI_GetImprovedToImprovablePlotsRatio);CivRegisterAfter<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &AfterCvEconomicAI_GetImprovedToImprovablePlotsRatio);CivRegisterReplace<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &ReplaceCvEconomicAI_GetImprovedToImprovablePlotsRatio);
Code
1253/// What is the ratio of our improved plots to all the plots we are able to improve?1254double CvEconomicAI::GetImprovedToImprovablePlotsRatio()1255{1256 const CvPlotsVector& aiPlots = m_pPlayer->GetPlots();1257 int iNumValidPlots = 0;1258 int iNumImprovedPlots = 0;1259 for(uint ui = 0; ui < aiPlots.size(); ui++)1260 {1261 if(aiPlots[ui] == -1)1262 {1263 continue;1264 }12651266 const CvPlot* pPlot = GC.getMap().plotByIndex(aiPlots[ui]);1267 if(!pPlot)1268 {1269 continue;1270 }12711272 if(pPlot->isWater() || pPlot->isImpassable() || pPlot->isMountain() || pPlot->isCity())1273 {1274 continue;1275 }12761277 iNumValidPlots++;12781279 if(pPlot->getImprovementType() != NO_IMPROVEMENT && !pPlot->IsImprovementPillaged())1280 {1281 iNumImprovedPlots++;1282 }1283 }1284 // Avoid potential division by 01285 if(iNumValidPlots <= 0)1286 {1287 return 1.0;1288 }1289 double fCurrentRatio = iNumImprovedPlots / (double)iNumValidPlots;12901291 return fCurrentRatio;1292}