Bazaar developer reference

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}

Calls