Hooks
static bool BeforeCvLuaPlayer_lCitiesAux(lua_State* L, int& result);static void AfterCvLuaPlayer_lCitiesAux(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lCitiesAux(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lCitiesAux>(host, &BeforeCvLuaPlayer_lCitiesAux);CivRegisterAfter<CivHooks::CvLuaPlayer_lCitiesAux>(host, &AfterCvLuaPlayer_lCitiesAux);CivRegisterReplace<CivHooks::CvLuaPlayer_lCitiesAux>(host, &ReplaceCvLuaPlayer_lCitiesAux);
Code
7795// Aux Method used by lCities.7796int CvLuaPlayer::lCitiesAux(lua_State* L)7797{7798 CvPlayerAI* pkPlayer = GetInstance(L);7799 CvCity* pkCity = NULL;78007801 int i = -1;7802 lua_pushvalue(L, lua_upvalueindex(1));7803 int t = lua_gettop(L);78047805 lua_rawgeti(L, t, 1);7806 if(!lua_isnil(L, -1))7807 {7808 i = lua_tointeger(L, -1);7809 }7810 lua_pop(L, 1);78117812 pkCity = (i == -1)? pkPlayer->firstCity(&i) : pkPlayer->nextCity(&i);78137814 lua_pushinteger(L, i);7815 lua_rawseti(L, t, 1);78167817 if(pkCity)7818 {7819 CvLuaCity::Push(L, pkCity);7820 return 1;7821 }78227823 return 0;7824}