void LuaParser::SetupEnv() { LUA_OPEN_LIB(L, luaopen_base); LUA_OPEN_LIB(L, luaopen_math); LUA_OPEN_LIB(L, luaopen_table); LUA_OPEN_LIB(L, luaopen_string); //LUA_OPEN_LIB(L, luaopen_io); //LUA_OPEN_LIB(L, luaopen_os); //LUA_OPEN_LIB(L, luaopen_package); //LUA_OPEN_LIB(L, luaopen_debug); // delete some dangerous/unsynced functions lua_pushnil(L); lua_setglobal(L, "dofile"); lua_pushnil(L); lua_setglobal(L, "loadfile"); lua_pushnil(L); lua_setglobal(L, "loadlib"); lua_pushnil(L); lua_setglobal(L, "require"); lua_pushnil(L); lua_setglobal(L, "gcinfo"); lua_pushnil(L); lua_setglobal(L, "collectgarbage"); // FIXME: replace "random" as in LuaHandleSynced (can write your own for now) lua_getglobal(L, "math"); lua_pushstring(L, "random"); lua_pushnil(L); lua_rawset(L, -3); lua_pushstring(L, "randomseed"); lua_pushnil(L); lua_rawset(L, -3); lua_pop(L, 1); // pop "math" AddFunc("DontMessWithMyCase", DontMessWithMyCase); GetTable("Spring"); AddFunc("Echo", Echo); AddFunc("TimeCheck", TimeCheck); EndTable(); GetTable("VFS"); AddFunc("DirList", DirList); AddFunc("SubDirs", SubDirs); AddFunc("Include", Include); AddFunc("LoadFile", LoadFile); AddFunc("FileExists", FileExists); EndTable(); }
bool CXmlScriptSaver::EndArray( const char * name ) { return EndTable(name); }
bool CXmlScriptSaver::EndTableAt( int elem ) { return EndTable( NULL ); }