diff --git a/src/files/engine_paths.cpp b/src/files/engine_paths.cpp index 0df0afec..15e80325 100644 --- a/src/files/engine_paths.cpp +++ b/src/files/engine_paths.cpp @@ -139,7 +139,7 @@ static fs::path toCanonic(fs::path path) { return path; } -fs::path EnginePaths::resolve(std::string path) { +fs::path EnginePaths::resolve(std::string path, bool throwErr) { size_t separator = path.find(':'); if (separator == std::string::npos) { throw files_access_error("no entry point specified"); @@ -165,7 +165,10 @@ fs::path EnginePaths::resolve(std::string path) { } } } - throw files_access_error("unknown entry point '"+prefix+"'"); + if (throwErr) { + throw files_access_error("unknown entry point '"+prefix+"'"); + } + return fs::path(filename); } ResPaths::ResPaths(fs::path mainRoot, std::vector roots) diff --git a/src/files/engine_paths.hpp b/src/files/engine_paths.hpp index f507aebf..92353e65 100644 --- a/src/files/engine_paths.hpp +++ b/src/files/engine_paths.hpp @@ -40,7 +40,7 @@ public: std::vector scanForWorlds(); - fs::path resolve(std::string path); + fs::path resolve(std::string path, bool throwErr=true); }; struct PathsRoot { diff --git a/src/logic/scripting/lua/libfile.cpp b/src/logic/scripting/lua/libfile.cpp index 23193857..6b97da3c 100644 --- a/src/logic/scripting/lua/libfile.cpp +++ b/src/logic/scripting/lua/libfile.cpp @@ -26,7 +26,7 @@ static fs::path resolve_path_soft(const std::string& path) { if (path.find(':') == std::string::npos) { return path; } - return resolve_path(path); + return engine->getPaths()->resolve(path, false); } static int l_file_find(lua_State* L) {