Bazaar developer reference

CvLuaGame::lGetReplayMessages(lua_State *)

Defined in
Lua/CvLuaGame.cpp, line 1686
Class
CvLuaGame
Hook name
CivHooks::CvLuaGame_lGetReplayMessages

Hooks

static bool BeforeCvLuaGame_lGetReplayMessages(lua_State* L, int& result);static void AfterCvLuaGame_lGetReplayMessages(lua_State* L, int& result);static int ReplaceCvLuaGame_lGetReplayMessages(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaGame_lGetReplayMessages>(host, &BeforeCvLuaGame_lGetReplayMessages);CivRegisterAfter<CivHooks::CvLuaGame_lGetReplayMessages>(host, &AfterCvLuaGame_lGetReplayMessages);CivRegisterReplace<CivHooks::CvLuaGame_lGetReplayMessages>(host, &ReplaceCvLuaGame_lGetReplayMessages);

Code

1686int CvLuaGame::lGetReplayMessages(lua_State* L)1687{1688	CvGame& game = GC.getGame();1689	const unsigned int nMessages = game.getNumReplayMessages();16901691	lua_createtable(L, nMessages, 0);1692	const int messages_t = lua_gettop(L);1693	int messages_idx = 1;16941695	for(unsigned int i = 0; i < nMessages; i++)1696	{1697		const CvReplayMessage* pMessage = game.getReplayMessage(i);16981699		lua_createtable(L, 0, 5);1700		const int t = lua_gettop(L);17011702		lua_pushinteger(L, pMessage->getPlayer());1703		lua_setfield(L, t, "Player");17041705		lua_pushinteger(L, pMessage->getTurn());1706		lua_setfield(L, t, "Turn");17071708		lua_pushinteger(L, pMessage->getType());1709		lua_setfield(L, t, "Type");17101711		const CvString& text = pMessage->getText();1712		if(text.GetLength() > 0)1713		{1714			lua_pushstring(L, text.c_str());1715			lua_setfield(L, t, "Text");1716		}17171718		const unsigned int nPlots = pMessage->getNumPlots();1719		if(nPlots > 0)1720		{1721			lua_createtable(L, nPlots, 0);1722			int idx = 1;1723			int plots_idx = lua_gettop(L);17241725			for(unsigned int j = 0; j < nPlots; j++)1726			{1727				int iPlotX, iPlotY;1728				if(pMessage->getPlot(j, iPlotX, iPlotY))1729				{1730					lua_createtable(L, 0, 2);1731					lua_pushinteger(L, iPlotX);1732					lua_setfield(L, -2, "X");1733					lua_pushinteger(L, iPlotY);1734					lua_setfield(L, -2, "Y");1735					lua_rawseti(L, plots_idx, idx++);1736				}1737			}17381739			lua_setfield(L, t, "Plots");1740		}17411742		lua_rawseti(L, messages_t, messages_idx++);1743	}17441745	return 1;1746}

Calls

Called by