From b8c3221d556b94b9e14df450ecf8f3be20ba87db Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Fri, 13 Dec 2013 20:35:57 +0400 Subject: [PATCH] Fix absence of images when compiled with RUN_IN_PLACE=0. --- builtin/mainmenu.lua | 5 ++--- src/script/lua_api/l_mainmenu.cpp | 10 ++++++++++ src/script/lua_api/l_mainmenu.h | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/builtin/mainmenu.lua b/builtin/mainmenu.lua index f8556a388..ecbcce1a0 100644 --- a/builtin/mainmenu.lua +++ b/builtin/mainmenu.lua @@ -253,7 +253,7 @@ function menu.init() menu.favorites = engine.get_favorites("local") end - menu.defaulttexturedir = engine.get_texturepath() .. DIR_DELIM .. "base" .. + menu.defaulttexturedir = engine.get_texturepath_share() .. DIR_DELIM .. "base" .. DIR_DELIM .. "pack" .. DIR_DELIM end @@ -1070,8 +1070,7 @@ function tabbuilder.tab_texture_packs() local no_screenshot = nil if not file_exists(screenfile) then screenfile = nil - no_screenshot = engine.get_texturepath()..DIR_DELIM.. - "base"..DIR_DELIM.."pack"..DIR_DELIM.."no_screenshot.png" + no_screenshot = menu.defaulttexturedir .. "no_screenshot.png" end return retval .. diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index ba8a09747..abf2a8f81 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -704,6 +704,14 @@ int ModApiMainMenu::l_get_texturepath(lua_State *L) return 1; } +int ModApiMainMenu::l_get_texturepath_share(lua_State *L) +{ + std::string gamepath + = fs::RemoveRelativePathComponents(porting::path_share + DIR_DELIM + "textures"); + lua_pushstring(L, gamepath.c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_get_dirlist(lua_State *L) { @@ -1032,6 +1040,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_modpath); API_FCT(get_gamepath); API_FCT(get_texturepath); + API_FCT(get_texturepath_share); API_FCT(get_dirlist); API_FCT(create_dir); API_FCT(delete_dir); @@ -1059,6 +1068,7 @@ void ModApiMainMenu::InitializeAsync(AsyncEngine& engine) ASYNC_API_FCT(get_modpath); ASYNC_API_FCT(get_gamepath); ASYNC_API_FCT(get_texturepath); + ASYNC_API_FCT(get_texturepath_share); ASYNC_API_FCT(get_dirlist); ASYNC_API_FCT(create_dir); ASYNC_API_FCT(delete_dir); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index e185f0a37..db11ae794 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -111,6 +111,8 @@ private: static int l_get_texturepath(lua_State *L); + static int l_get_texturepath_share(lua_State *L); + static int l_get_dirlist(lua_State *L); static int l_create_dir(lua_State *L);