CvLuaPlayer::lGetPrevCity(lua_State *)
- Defined in
- Lua/CvLuaPlayer.cpp, line 10083
- Class
- CvLuaPlayer
- Hook name
CivHooks::CvLuaPlayer_lGetPrevCity
Hooks
static bool BeforeCvLuaPlayer_lGetPrevCity(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetPrevCity(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetPrevCity(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &BeforeCvLuaPlayer_lGetPrevCity);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &AfterCvLuaPlayer_lGetPrevCity);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &ReplaceCvLuaPlayer_lGetPrevCity);
Code
10083int CvLuaPlayer::lGetPrevCity(lua_State* L)10084{10085 CvPlayerAI* pkPlayer = GetInstance(L);10086 CvCity* pCurrentCity = CvLuaCity::GetInstance(L, 2);10087 CvCity* pLoopCity = NULL;10088 CvCity* pPrevCity = NULL;10089 int iLoop = pCurrentCity->getIndex();10090 iLoop--;1009110092 do10093 {10094 pLoopCity = pkPlayer->nextCity(&iLoop, true);1009510096 if(pLoopCity == NULL)10097 {10098 pLoopCity = pkPlayer->firstCity(&iLoop, true);10099 }1010010101 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 purpose10102 {10103 pPrevCity = pLoopCity;10104 }1010510106 }10107 while((pLoopCity != pCurrentCity) && !pPrevCity);1010810109 CvLuaCity::Push(L, pPrevCity);10110 return 1;10111}
Calls
- CvCity::getIndex() const
- CvCity::IsPuppet() const
CvLuaScopedInstance::GetInstanceCvLuaScopedInstance::GetInstanceCvLuaScopedInstance::Push- CvPlayer::firstCity(int *, bool)
- CvPlayer::nextCity(int *, bool)