diff options
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/lua_api/l_mainmenu.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 42ddd0b14..ba8a09747 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -336,6 +336,26 @@ int ModApiMainMenu::l_get_modstore_details(lua_State *L) lua_pushstring(L,current_mod.versions[0].file.c_str()); lua_settable(L, top); + lua_pushstring(L,"versions"); + lua_newtable(L); + int versionstop = lua_gettop(L); + for (unsigned int i=0;i < current_mod.versions.size(); i++) { + lua_pushnumber(L,i+1); + lua_newtable(L); + int current_element = lua_gettop(L); + + lua_pushstring(L,"date"); + lua_pushstring(L,current_mod.versions[i].date.c_str()); + lua_settable(L,current_element); + + lua_pushstring(L,"download_url"); + lua_pushstring(L,current_mod.versions[i].file.c_str()); + lua_settable(L,current_element); + + lua_settable(L,versionstop); + } + lua_settable(L, top); + lua_pushstring(L,"screenshot_url"); lua_pushstring(L,current_mod.titlepic.file.c_str()); lua_settable(L, top); @@ -782,7 +802,10 @@ int ModApiMainMenu::l_extract_zip(lua_State *L) io::IFileSystem* fs = engine->m_device->getFileSystem(); - fs->addFileArchive(zipfile,true,false,io::EFAT_ZIP); + if (!fs->addFileArchive(zipfile,true,false,io::EFAT_ZIP)) { + lua_pushboolean(L,false); + return 1; + } assert(fs->getFileArchiveCount() > 0); |