CvLuaPlayer::lGetNextCity(lua_State *)
- Defined in
- Lua/CvLuaPlayer.cpp, line 10052
- Class
- CvLuaPlayer
- Hook name
CivHooks::CvLuaPlayer_lGetNextCity
Hooks
static bool BeforeCvLuaPlayer_lGetNextCity(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetNextCity(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetNextCity(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetNextCity>(host, &BeforeCvLuaPlayer_lGetNextCity);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetNextCity>(host, &AfterCvLuaPlayer_lGetNextCity);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetNextCity>(host, &ReplaceCvLuaPlayer_lGetNextCity);
Code
10052int CvLuaPlayer::lGetNextCity(lua_State* L)10053{10054 CvPlayerAI* pkPlayer = GetInstance(L);10055 CvCity* pCurrentCity = CvLuaCity::GetInstance(L, 2);10056 CvCity* pLoopCity = NULL;10057 CvCity* pNextCity = NULL;10058 int iLoop = pCurrentCity->getIndex();10059 iLoop++;1006010061 do10062 {10063 pLoopCity = pkPlayer->nextCity(&iLoop, false);1006410065 if(pLoopCity == NULL)10066 {10067 pLoopCity = pkPlayer->firstCity(&iLoop, false);10068 }1006910070 if((pLoopCity != NULL) && (pLoopCity != pCurrentCity) && !pLoopCity->IsPuppet()) // we don't want the player to be able to cycle to puppeted cities - it kind of defeats teh whole purpose10071 {10072 pNextCity = pLoopCity;10073 }1007410075 }10076 while((pLoopCity != pCurrentCity) && !pNextCity);100771007810079 CvLuaCity::Push(L, pNextCity);10080 return 1;10081}
Calls
- CvCity::getIndex() const
- CvCity::IsPuppet() const
CvLuaScopedInstance::GetInstanceCvLuaScopedInstance::GetInstanceCvLuaScopedInstance::Push- CvPlayer::firstCity(int *, bool)
- CvPlayer::nextCity(int *, bool)