Bazaar developer reference

CvLuaPlayer::lGetAvailableSpyRelocationCities(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 11614
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetAvailableSpyRelocationCities

Hooks

static bool BeforeCvLuaPlayer_lGetAvailableSpyRelocationCities(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetAvailableSpyRelocationCities(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetAvailableSpyRelocationCities(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetAvailableSpyRelocationCities>(host, &BeforeCvLuaPlayer_lGetAvailableSpyRelocationCities);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetAvailableSpyRelocationCities>(host, &AfterCvLuaPlayer_lGetAvailableSpyRelocationCities);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetAvailableSpyRelocationCities>(host, &ReplaceCvLuaPlayer_lGetAvailableSpyRelocationCities);

Code

11614int CvLuaPlayer::lGetAvailableSpyRelocationCities(lua_State* L)11615{11616	CvPlayerAI* pkThisPlayer = GetInstance(L);11617	CvPlayerEspionage* pkPlayerEspionage = pkThisPlayer->GetEspionage();1161811619	uint uiSpyIndex = luaL_checkinteger(L, 2);1162011621	lua_createtable(L, 0, 0);11622	int index = 1;1162311624	for(int i = 0; i < MAX_CIV_PLAYERS; ++i)11625	{11626		const PlayerTypes ePlayer(static_cast<PlayerTypes>(i));11627		CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);1162811629		if(kPlayer.isAlive())11630		{11631			int iLoop = 0;11632			// Just find first coastal city11633			for(CvCity* pCity = kPlayer.firstCity(&iLoop); pCity != NULL; pCity = kPlayer.nextCity(&iLoop))11634			{11635				if(pkPlayerEspionage->CanMoveSpyTo(pCity, uiSpyIndex, false))11636				{11637					lua_createtable(L, 0, 0);11638					const int t = lua_gettop(L);1163911640					lua_pushinteger(L, kPlayer.GetID());11641					lua_setfield(L, t, "PlayerID");1164211643					lua_pushinteger(L, pCity->GetID());11644					lua_setfield(L, t, "CityID");1164511646					lua_pushinteger(L, kPlayer.getCivilizationType());11647					lua_setfield(L, t, "CivilizationType");1164811649					lua_pushinteger(L, kPlayer.getTeam());11650					lua_setfield(L, t, "Team");1165111652					CvString strName = pCity->getName();11653					lua_pushstring(L, strName.c_str());11654					lua_setfield(L, t, "Name");1165511656					lua_pushinteger(L, pCity->getPopulation());11657					lua_setfield(L, t, "Population");1165811659					//TODO: Replace temp 99 w/ City Potential Espionage Value.11660					lua_pushinteger(L, 99);11661					lua_setfield(L, t, "Potential");1166211663					lua_rawseti(L, -2, index++);11664				}11665			}11666		}11667	}1166811669	return 1;11670}

Calls

Called by