Bazaar developer reference

CvLuaPlayer::lGetEspionageSpies(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 11422
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetEspionageSpies

Hooks

static bool BeforeCvLuaPlayer_lGetEspionageSpies(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetEspionageSpies(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetEspionageSpies(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetEspionageSpies>(host, &BeforeCvLuaPlayer_lGetEspionageSpies);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetEspionageSpies>(host, &AfterCvLuaPlayer_lGetEspionageSpies);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetEspionageSpies>(host, &ReplaceCvLuaPlayer_lGetEspionageSpies);

Code

11422int CvLuaPlayer::lGetEspionageSpies(lua_State* L)11423{11424	CvPlayerAI* pkThisPlayer = GetInstance(L);11425	CvPlayerEspionage* pkPlayerEspionage = pkThisPlayer->GetEspionage();1142611427	lua_createtable(L, 0, 0);11428	int index = 1;1142911430	for(uint uiSpy = 0; uiSpy < pkPlayerEspionage->m_aSpyList.size(); ++uiSpy)11431	{11432		CvEspionageSpy* pSpy = &(pkPlayerEspionage->m_aSpyList[uiSpy]);1143311434		lua_createtable(L, 0, 0);11435		const int t = lua_gettop(L);1143611437		lua_pushinteger(L, uiSpy);11438		lua_setfield(L, t, "AgentID");1143911440		lua_pushinteger(L, pSpy->m_iCityX);11441		lua_setfield(L, t, "CityX");1144211443		lua_pushinteger(L, pSpy->m_iCityY);11444		lua_setfield(L, t, "CityY");1144511446#if defined(MOD_BUGFIX_SPY_NAMES)11447		const char* szSpyName = pSpy->GetSpyName(pkThisPlayer);11448#else11449		const char* szSpyName = pkThisPlayer->getCivilizationInfo().getSpyNames(pSpy->m_iName);11450#endif11451		lua_pushstring(L, szSpyName);11452		lua_setfield(L, t, "Name");1145311454		switch(pSpy->m_eRank)11455		{11456		case SPY_RANK_RECRUIT:11457			lua_pushstring(L, "TXT_KEY_SPY_RANK_0");11458			break;11459		case SPY_RANK_AGENT:11460			lua_pushstring(L, "TXT_KEY_SPY_RANK_1");11461			break;11462		case SPY_RANK_SPECIAL_AGENT:11463			lua_pushstring(L, "TXT_KEY_SPY_RANK_2");11464			break;11465		default:11466			CvAssertMsg(false, "pSpy->m_eRank not in case statement");11467			break;11468		}11469		lua_setfield(L, t, "Rank");1147011471		switch(pSpy->m_eSpyState)11472		{11473		case SPY_STATE_UNASSIGNED:11474			lua_pushstring(L, "TXT_KEY_SPY_STATE_UNASSIGNED");11475			break;11476		case SPY_STATE_TRAVELLING:11477			lua_pushstring(L, "TXT_KEY_SPY_STATE_TRAVELLING");11478			break;11479		case SPY_STATE_SURVEILLANCE:11480			lua_pushstring(L, "TXT_KEY_SPY_STATE_SURVEILLANCE");11481			break;11482		case SPY_STATE_GATHERING_INTEL:11483			lua_pushstring(L, "TXT_KEY_SPY_STATE_GATHERING_INTEL");11484			break;11485		case SPY_STATE_RIG_ELECTION:11486			lua_pushstring(L, "TXT_KEY_SPY_STATE_RIGGING_ELECTION");11487			break;11488		case SPY_STATE_COUNTER_INTEL:11489			lua_pushstring(L, "TXT_KEY_SPY_STATE_COUNTER_INTEL");11490			break;11491		case SPY_STATE_DEAD:11492			lua_pushstring(L, "TXT_KEY_SPY_STATE_DEAD");11493			break;11494		case SPY_STATE_MAKING_INTRODUCTIONS:11495			lua_pushstring(L, "TXT_KEY_SPY_STATE_MAKING_INTRODUCTIONS");11496			break;11497		case SPY_STATE_SCHMOOZE:11498			lua_pushstring(L, "TXT_KEY_SPY_STATE_SCHMOOZING");11499			break;11500#if defined(MOD_API_LUA_EXTENSIONS) && defined(MOD_API_ESPIONAGE)11501		case SPY_STATE_TERMINATED:11502			lua_pushstring(L, "TXT_KEY_SPY_STATE_TERMINATED");11503			break;11504#endif11505		default:11506			CvAssertMsg(false, "pSpy->m_eSpyState not in case statement");11507			break;11508		}11509		lua_setfield(L, t, "State");1151011511		lua_pushinteger(L, pkPlayerEspionage->GetTurnsUntilStateComplete(uiSpy));11512		lua_setfield(L, t, "TurnsLeft");1151311514		lua_pushinteger(L, pkPlayerEspionage->GetPercentOfStateComplete(uiSpy));11515		lua_setfield(L, t, "PercentComplete");1151611517		lua_pushboolean(L, pkPlayerEspionage->HasEstablishedSurveillance(uiSpy));11518		lua_setfield(L, t, "EstablishedSurveillance");1151911520		lua_pushboolean(L, pkPlayerEspionage->IsDiplomat(uiSpy));11521		lua_setfield(L, t, "IsDiplomat");1152211523#if defined(MOD_API_LUA_EXTENSIONS) && defined(MOD_API_ESPIONAGE)11524		lua_pushboolean(L, pSpy->m_bPassive);11525		lua_setfield(L, t, "Passive");11526#endif11527		lua_rawseti(L, -2, index++);11528	}11529	return 1;11530}

Calls

Called by