Bazaar developer reference

CvPlayer::GetClosestFriendlyCity(CvPlot &, int)

Defined in
CvPlayer.cpp, line 26755
Class
CvPlayer
Hook name
CivHooks::CvPlayer_GetClosestFriendlyCity

Hooks

static bool BeforeCvPlayer_GetClosestFriendlyCity(CvPlayer* self, CvPlot& plot, int iSearchRadius, CvCity*& result);static void AfterCvPlayer_GetClosestFriendlyCity(CvPlayer* self, CvPlot& plot, int iSearchRadius, CvCity*& result);static CvCity* ReplaceCvPlayer_GetClosestFriendlyCity(CvCity* (*original)(CvPlayer*, CvPlot&, int), CvPlayer* self, CvPlot& plot, int iSearchRadius);CivRegisterBefore<CivHooks::CvPlayer_GetClosestFriendlyCity>(host, &BeforeCvPlayer_GetClosestFriendlyCity);CivRegisterAfter<CivHooks::CvPlayer_GetClosestFriendlyCity>(host, &AfterCvPlayer_GetClosestFriendlyCity);CivRegisterReplace<CivHooks::CvPlayer_GetClosestFriendlyCity>(host, &ReplaceCvPlayer_GetClosestFriendlyCity);

Code

26754/// Find closest city to a plot (within specified search radius)26755CvCity* CvPlayer::GetClosestFriendlyCity(CvPlot& plot, int iSearchRadius)26756{26757	CvCity* pClosestCity = NULL;26758	CvCity* pLoopCity;26759	int iBestDistance = INT_MAX;2676026761	int iLoop;26762	for(pLoopCity = firstCity(&iLoop); pLoopCity != NULL; pLoopCity = nextCity(&iLoop))26763	{26764		int iDistance = plotDistance(plot.getX(), plot.getY(), pLoopCity->getX(), pLoopCity->getY());26765		if(iDistance < iBestDistance && iDistance <= iSearchRadius)26766		{26767			pClosestCity = pLoopCity;26768			iBestDistance = iDistance;26769		}26770	}2677126772	return pClosestCity;26773}

Calls

Called by