CvHomelandAI::ChooseBestFreeWonderCity(BuildingTypes, UnitHandle)
- Defined in
- CvHomelandAI.cpp, line 5839
- Class
- CvHomelandAI
- Hook name
CivHooks::CvHomelandAI_ChooseBestFreeWonderCity
Hooks
static bool BeforeCvHomelandAI_ChooseBestFreeWonderCity(CvHomelandAI* self, BuildingTypes eWonder, UnitHandle pEngineer, CvCity*& result);static void AfterCvHomelandAI_ChooseBestFreeWonderCity(CvHomelandAI* self, BuildingTypes eWonder, UnitHandle pEngineer, CvCity*& result);static CvCity* ReplaceCvHomelandAI_ChooseBestFreeWonderCity(CvCity* (*original)(CvHomelandAI*, BuildingTypes, UnitHandle), CvHomelandAI* self, BuildingTypes eWonder, UnitHandle pEngineer);CivRegisterBefore<CivHooks::CvHomelandAI_ChooseBestFreeWonderCity>(host, &BeforeCvHomelandAI_ChooseBestFreeWonderCity);CivRegisterAfter<CivHooks::CvHomelandAI_ChooseBestFreeWonderCity>(host, &AfterCvHomelandAI_ChooseBestFreeWonderCity);CivRegisterReplace<CivHooks::CvHomelandAI_ChooseBestFreeWonderCity>(host, &ReplaceCvHomelandAI_ChooseBestFreeWonderCity);
Code
5838/// Choose a city to build the next wonder5839CvCity* CvHomelandAI::ChooseBestFreeWonderCity(BuildingTypes eWonder, UnitHandle pEngineer)5840{5841 CvCity* pBestCity = NULL;5842 CvCity* pLoopCity;5843 int iLoop;5844 int iBestTurns = MAX_INT;5845 int iTurns;58465847 for(pLoopCity = m_pPlayer->firstCity(&iLoop); pLoopCity != NULL; pLoopCity = m_pPlayer->nextCity(&iLoop))5848 {5849 if(pLoopCity->canConstruct(eWonder))5850 {5851 iTurns = TurnsToReachTarget(pEngineer, pLoopCity->plot(), true /*bReusePaths*/);5852 if(iTurns < iBestTurns)5853 {5854 pBestCity = pLoopCity;5855 iBestTurns = iTurns;5856 }5857 }5858 }58595860 return pBestCity;5861}