Bazaar developer reference

CvCityManager::OnCityDestroyed(CvCity *)

Defined in
CvCityManager.cpp, line 97
Class
CvCityManager
Hook name
CivHooks::CvCityManager_OnCityDestroyed

Hooks

static bool BeforeCvCityManager_OnCityDestroyed(CvCity* pkCity);static void AfterCvCityManager_OnCityDestroyed(CvCity* pkCity);static void ReplaceCvCityManager_OnCityDestroyed(void (*original)(CvCity*), CvCity* pkCity);CivRegisterBefore<CivHooks::CvCityManager_OnCityDestroyed>(host, &BeforeCvCityManager_OnCityDestroyed);CivRegisterAfter<CivHooks::CvCityManager_OnCityDestroyed>(host, &AfterCvCityManager_OnCityDestroyed);CivRegisterReplace<CivHooks::CvCityManager_OnCityDestroyed>(host, &ReplaceCvCityManager_OnCityDestroyed);

Code

97void CvCityManager::OnCityDestroyed(CvCity* pkCity)98{99	// Remove it from all the other city lists100	for (CityMap::iterator itr = ms_kCityMap.begin(); itr != ms_kCityMap.end(); ++itr)101	{102		if ((*itr).first != pkCity)103		{104			CityList &kCityList = (*itr).second;105			for (CityList::iterator itrNearby = kCityList.begin(); itrNearby != kCityList.end(); ++itrNearby)106			{107				if ((*itrNearby) == pkCity)108				{109					kCityList.erase(itrNearby);110					break;111				}112			}113		}114	}115116	// Then remove its list117	CityMap::iterator itr = ms_kCityMap.find(pkCity);118	if (itr != ms_kCityMap.end())119	{120		ms_kCityMap.erase(itr);121	}122}

Calls

Called by