diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-11-10 10:59:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-10 10:59:34 +0100 |
commit | 32464e569f8e9d8b4146e49ee5daee777a8e3323 (patch) | |
tree | cc74b6c4aef73de30f8a07fa9300aec4ff721753 /core/os | |
parent | cb5d5ff41359c94af2fdc6b2effe2af430080135 (diff) | |
parent | f38949a44d3164acdaf501ebd6a593a2a20b56f0 (diff) |
Merge pull request #40748 from RandomShaper/improve_packed_fs_api
Improve/fix packed data API
Diffstat (limited to 'core/os')
-rw-r--r-- | core/os/file_access.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/os/file_access.cpp b/core/os/file_access.cpp index ef3eb6800a..fd3c6f8806 100644 --- a/core/os/file_access.cpp +++ b/core/os/file_access.cpp @@ -51,7 +51,7 @@ FileAccess *FileAccess::create(AccessType p_access) { } bool FileAccess::exists(const String &p_name) { - if (PackedData::get_singleton() && PackedData::get_singleton()->has_path(p_name)) { + if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && PackedData::get_singleton()->has_path(p_name)) { return true; } @@ -456,7 +456,7 @@ void FileAccess::store_double(double p_dest) { } uint64_t FileAccess::get_modified_time(const String &p_file) { - if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && PackedData::get_singleton()->has_path(p_file)) { + if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && (PackedData::get_singleton()->has_path(p_file) || PackedData::get_singleton()->has_directory(p_file))) { return 0; } @@ -469,7 +469,7 @@ uint64_t FileAccess::get_modified_time(const String &p_file) { } uint32_t FileAccess::get_unix_permissions(const String &p_file) { - if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && PackedData::get_singleton()->has_path(p_file)) { + if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && (PackedData::get_singleton()->has_path(p_file) || PackedData::get_singleton()->has_directory(p_file))) { return 0; } @@ -482,6 +482,10 @@ uint32_t FileAccess::get_unix_permissions(const String &p_file) { } Error FileAccess::set_unix_permissions(const String &p_file, uint32_t p_permissions) { + if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && (PackedData::get_singleton()->has_path(p_file) || PackedData::get_singleton()->has_directory(p_file))) { + return ERR_UNAVAILABLE; + } + FileAccess *fa = create_for_path(p_file); ERR_FAIL_COND_V_MSG(!fa, ERR_CANT_CREATE, "Cannot create FileAccess for path '" + p_file + "'."); |