CvGame::cycleCities(bool, bool)
- Defined in
- CvGame.cpp, line 2306
- Class
- CvGame
- Hook name
CivHooks::CvGame_cycleCities
Hooks
static bool BeforeCvGame_cycleCities(CvGame* self, bool bForward, bool bAdd);static void AfterCvGame_cycleCities(CvGame* self, bool bForward, bool bAdd);static void ReplaceCvGame_cycleCities(void (*original)(CvGame*, bool, bool), CvGame* self, bool bForward, bool bAdd);CivRegisterBefore<CivHooks::CvGame_cycleCities>(host, &BeforeCvGame_cycleCities);CivRegisterAfter<CivHooks::CvGame_cycleCities>(host, &AfterCvGame_cycleCities);CivRegisterReplace<CivHooks::CvGame_cycleCities>(host, &ReplaceCvGame_cycleCities);
Code
2306void CvGame::cycleCities(bool bForward, bool bAdd)2307{2308 CvCity* pSelectCity;2309 CvCity* pLoopCity;2310 int iLoop;23112312 pSelectCity = NULL;23132314 auto_ptr<ICvCity1> pHeadSelectedCity(GC.GetEngineUserInterface()->getHeadSelectedCity());23152316 CvCity* pkHeadSelectedCity = GC.UnwrapCityPointer(pHeadSelectedCity.get());23172318 if((pkHeadSelectedCity != NULL) && ((pkHeadSelectedCity->getTeam() == getActiveTeam()) || isDebugMode()))2319 {2320 iLoop = pkHeadSelectedCity->getIndex();23212322 iLoop += (bForward ? 1 : -1);23232324 do2325 {2326 pLoopCity = GET_PLAYER(pkHeadSelectedCity->getOwner()).nextCity(&iLoop, !bForward);23272328 if(pLoopCity == NULL)2329 {2330 pLoopCity = GET_PLAYER(pkHeadSelectedCity->getOwner()).firstCity(&iLoop, !bForward);2331 }23322333 if((pLoopCity != NULL) && (pLoopCity != pkHeadSelectedCity) && !pLoopCity->IsPuppet()) // we don't want the player to be able to cycle to puppeted cities - it kind of defeats teh whole purpose2334 {2335 pSelectCity = pLoopCity;2336 }23372338 }2339 while((pLoopCity != pkHeadSelectedCity) && !pSelectCity);23402341 }2342 else2343 {2344 pSelectCity = GET_PLAYER(getActivePlayer()).firstCity(&iLoop, !bForward);2345 }23462347 if(pSelectCity != NULL)2348 {2349 auto_ptr<ICvCity1> pDllSelectedCity = GC.WrapCityPointer(pSelectCity);2350 if(bAdd)2351 {2352 GC.GetEngineUserInterface()->clearSelectedCities();2353 GC.GetEngineUserInterface()->addSelectedCity(pDllSelectedCity.get());2354 }2355 else2356 {2357 GC.GetEngineUserInterface()->selectCity(pDllSelectedCity.get());2358 }2359 }2360}
Calls
- CvCity::getIndex() const
- CvCity::getOwner() const
- CvCity::getTeam() const
- CvCity::IsPuppet() const
- CvGame::getActivePlayer() const
- CvGame::getActiveTeam()
- CvGame::isDebugMode() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::UnwrapCityPointer(ICvCity1 *)
- CvGlobals::WrapCityPointer(CvCity *)
- CvPlayer::firstCity(int *, bool)
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
ICvUserInterface1::addSelectedCityICvUserInterface1::clearSelectedCitiesICvUserInterface1::getHeadSelectedCityICvUserInterface1::selectCitystd::auto_ptr::auto_ptrstd::auto_ptr::auto_ptrstd::auto_ptr::getstd::auto_ptr::operator auto_ptr_ref