From ad8746e0de047b9153496d2c88cb14a92cc82be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Sat, 17 Aug 2019 19:03:18 +0200 Subject: [PATCH] DirAccessPack: Fix dir_exists and file_exists for res:// paths Both methods check against containers using relative paths as index, so the `res://` part needs to be stripped. Fixes #26009. --- core/io/file_access_pack.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp index 6b683759f8f..d49d36c2b98 100644 --- a/core/io/file_access_pack.cpp +++ b/core/io/file_access_pack.cpp @@ -90,7 +90,7 @@ void PackedData::add_path(const String &pkg_path, const String &path, uint64_t o } } String filename = path.get_file(); - // Don't add as a file if the path points to a directoryy + // Don't add as a file if the path points to a directory if (!filename.empty()) { cd->files.insert(filename); } @@ -460,11 +460,15 @@ String DirAccessPack::get_current_dir() { bool DirAccessPack::file_exists(String p_file) { + p_file = fix_path(p_file); + return current->files.has(p_file); } bool DirAccessPack::dir_exists(String p_dir) { + p_dir = fix_path(p_dir); + return current->subdirs.has(p_dir); }