Bazaar developer reference

AddToSortedList(CvCityManager::CityList &, int, int, CvCity *)

Defined in
CvCityManager.cpp, line 32
Hook name
CivHooks::CvCityManager_cpp_AddToSortedList

Hooks

static bool BeforeCvCityManager_cpp_AddToSortedList(std::vector<CvCity *> & kCityList, int iFromX, int iFromY, CvCity * pkAddCity);static void AfterCvCityManager_cpp_AddToSortedList(std::vector<CvCity *> & kCityList, int iFromX, int iFromY, CvCity * pkAddCity);static void ReplaceCvCityManager_cpp_AddToSortedList(void (*original)(std::vector<CvCity *> &, int, int, CvCity *), std::vector<CvCity *> & kCityList, int iFromX, int iFromY, CvCity * pkAddCity);CivRegisterBefore<CivHooks::CvCityManager_cpp_AddToSortedList>(host, &BeforeCvCityManager_cpp_AddToSortedList);CivRegisterAfter<CivHooks::CvCityManager_cpp_AddToSortedList>(host, &AfterCvCityManager_cpp_AddToSortedList);CivRegisterReplace<CivHooks::CvCityManager_cpp_AddToSortedList>(host, &ReplaceCvCityManager_cpp_AddToSortedList);

Code

32static void AddToSortedList(CvCityManager::CityList &kCityList, int iFromX, int iFromY, CvCity* pkAddCity)33{34	if (kCityList.size() == 0)35	{36		// First one37		kCityList.push_back(pkAddCity);38	}39	else40	{41		// Add to the pre-sorted list.42		int iAddDistance = plotDistance(iFromX, iFromY, pkAddCity->getX(), pkAddCity->getY());43		bool bAdded = false;44		for (CvCityManager::CityList::iterator itrNearby = kCityList.begin(); itrNearby != kCityList.end(); ++itrNearby)45		{46			CvCity* pkNearbyCity = (*itrNearby);47			int iDistance = plotDistance(iFromX, iFromY, pkNearbyCity->getX(), pkNearbyCity->getY());48			if (iAddDistance <= iDistance)49			{50				kCityList.insert(itrNearby, pkAddCity);51				bAdded = true;52				break;53			}54		}5556		if (!bAdded)57			kCityList.push_back(pkAddCity);58	}59}

Calls

Called by