160 QList<QVariant> cData;
161 switch(lua_type(pt_state, -2)) {
163 cData << lua_toboolean(pt_state, -2);
166 cData << lua_tonumber(pt_state, -2);
169 cData << lua_tostring(pt_state, -2);
173 if(lua_istable(pt_state, -1)) {
176 lua_pushnil(pt_state);
177 while(lua_next(pt_state, -2)) {
181 lua_pop(pt_state, 1);
183 if(m_bRemoveEmptyTables) {
189 else if(lua_isuserdata(pt_state, -1)) {
190 std::ostringstream cBuffer;
191 cBuffer << std::fixed;
192 void *pvUserdatum = lua_touserdata(pt_state, -1);
193 if (lua_getmetatable(pt_state, -1)) {
195 if (lua_rawequal(pt_state, -1, -2)) {
197 lua_pop(pt_state, 2);
200 cBuffer << std::setprecision(3)
201 << pcVector2->
GetX() <<
", "
202 << pcVector2->
GetY();
203 cData << cBuffer.str().c_str();
208 lua_pop(pt_state, 1);
210 if (lua_rawequal(pt_state, -1, -2)) {
212 lua_pop(pt_state, 2);
215 cBuffer << std::setprecision(3)
216 << pcVector3->
GetX() <<
", "
217 << pcVector3->
GetY() <<
", "
218 << pcVector3->
GetZ();
219 cData << cBuffer.str().c_str();
224 lua_pop(pt_state, 1);
226 if (lua_rawequal(pt_state, -1, -2)) {
228 lua_pop(pt_state, 2);
233 cBuffer << std::setprecision(1)
237 cData << cBuffer.str().c_str();
245 switch(lua_type(pt_state, -1)) {
247 cData << lua_toboolean(pt_state, -1);
251 cData << lua_tonumber(pt_state, -1);
255 cData << lua_tostring(pt_state, -1);
259 cData[0] = cData[0].toString() + tr(
"()");
303 int nValueType = lua_type(pt_state, -1);
304 int nKeyType = lua_type(pt_state, -2);
305 if(nValueType == LUA_TSTRING || nValueType == LUA_TNUMBER || nValueType == LUA_TBOOLEAN || nValueType == LUA_TUSERDATA) {
306 if(nKeyType != LUA_TSTRING) {
309 else if(nKeyType == LUA_TSTRING) {
310 return std::string(lua_tostring(pt_state, -2)) !=
"_VERSION";
313 else if(nValueType == LUA_TTABLE) {
314 if(nKeyType == LUA_TNUMBER) {
317 else if(nKeyType == LUA_TSTRING) {
319 std::string(lua_tostring(pt_state, -2)) !=
"_G" &&
320 std::string(lua_tostring(pt_state, -2)) !=
"coroutine" &&
321 std::string(lua_tostring(pt_state, -2)) !=
"debug" &&
322 std::string(lua_tostring(pt_state, -2)) !=
"io" &&
323 std::string(lua_tostring(pt_state, -2)) !=
"os" &&
324 std::string(lua_tostring(pt_state, -2)) !=
"package" &&
325 std::string(lua_tostring(pt_state, -2)) !=
"string" &&
326 std::string(lua_tostring(pt_state, -2)) !=
"table";
360 int nValueType = lua_type(pt_state, -1);
361 int nKeyType = lua_type(pt_state, -2);
362 if(nValueType == LUA_TFUNCTION && nKeyType == LUA_TSTRING) {
364 std::string(lua_tostring(pt_state, -2)) !=
"assert" &&
365 std::string(lua_tostring(pt_state, -2)) !=
"collectgarbage" &&
366 std::string(lua_tostring(pt_state, -2)) !=
"dofile" &&
367 std::string(lua_tostring(pt_state, -2)) !=
"error" &&
368 std::string(lua_tostring(pt_state, -2)) !=
"gcinfo" &&
369 std::string(lua_tostring(pt_state, -2)) !=
"getfenv" &&
370 std::string(lua_tostring(pt_state, -2)) !=
"getmetatable" &&
371 std::string(lua_tostring(pt_state, -2)) !=
"ipairs" &&
372 std::string(lua_tostring(pt_state, -2)) !=
"load" &&
373 std::string(lua_tostring(pt_state, -2)) !=
"loadfile" &&
374 std::string(lua_tostring(pt_state, -2)) !=
"loadstring" &&
375 std::string(lua_tostring(pt_state, -2)) !=
"module" &&
376 std::string(lua_tostring(pt_state, -2)) !=
"newproxy" &&
377 std::string(lua_tostring(pt_state, -2)) !=
"next" &&
378 std::string(lua_tostring(pt_state, -2)) !=
"pairs" &&
379 std::string(lua_tostring(pt_state, -2)) !=
"pcall" &&
380 std::string(lua_tostring(pt_state, -2)) !=
"rawequal" &&
381 std::string(lua_tostring(pt_state, -2)) !=
"rawget" &&
382 std::string(lua_tostring(pt_state, -2)) !=
"rawset" &&
383 std::string(lua_tostring(pt_state, -2)) !=
"require" &&
384 std::string(lua_tostring(pt_state, -2)) !=
"select" &&
385 std::string(lua_tostring(pt_state, -2)) !=
"setfenv" &&
386 std::string(lua_tostring(pt_state, -2)) !=
"setmetatable" &&
387 std::string(lua_tostring(pt_state, -2)) !=
"unpack" &&
388 std::string(lua_tostring(pt_state, -2)) !=
"xpcall";
390 else if(nValueType == LUA_TTABLE) {
391 if(nKeyType == LUA_TNUMBER) {
394 else if(nKeyType == LUA_TSTRING) {
396 std::string(lua_tostring(pt_state, -2)) !=
"_G" &&
397 std::string(lua_tostring(pt_state, -2)) !=
"coroutine" &&
398 std::string(lua_tostring(pt_state, -2)) !=
"debug" &&
399 std::string(lua_tostring(pt_state, -2)) !=
"io" &&
400 std::string(lua_tostring(pt_state, -2)) !=
"os" &&
401 std::string(lua_tostring(pt_state, -2)) !=
"package";