summaryrefslogtreecommitdiff
path: root/platform/web
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2023-01-18 08:59:25 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2023-01-18 09:12:21 +0100
commit4707e78d6dbf197062af2656dcce9534a5d007db (patch)
tree8bf89095a8b09acb24febd773ca26bc064ea59da /platform/web
parentf0326297b319fb632ba5a28c7c8528b1800132f4 (diff)
[Web] User FS (user://) now correctly uses project name.
This allows multiple instances to co-exist in the same domain while keeping their user data separate (each in its own folder).
Diffstat (limited to 'platform/web')
-rw-r--r--platform/web/os_web.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/platform/web/os_web.cpp b/platform/web/os_web.cpp
index e12f62f4ad..964bce01da 100644
--- a/platform/web/os_web.cpp
+++ b/platform/web/os_web.cpp
@@ -30,6 +30,7 @@
#include "os_web.h"
+#include "core/config/project_settings.h"
#include "core/debugger/engine_debugger.h"
#include "drivers/unix/dir_access_unix.h"
#include "drivers/unix/file_access_unix.h"
@@ -157,7 +158,22 @@ void OS_Web::vibrate_handheld(int p_duration_ms) {
}
String OS_Web::get_user_data_dir() const {
- return "/userfs";
+ String userfs = "/userfs";
+ String appname = get_safe_dir_name(GLOBAL_GET("application/config/name"));
+ if (!appname.is_empty()) {
+ bool use_custom_dir = GLOBAL_GET("application/config/use_custom_user_dir");
+ if (use_custom_dir) {
+ String custom_dir = get_safe_dir_name(GLOBAL_GET("application/config/custom_user_dir_name"), true);
+ if (custom_dir.is_empty()) {
+ custom_dir = appname;
+ }
+ return userfs.path_join(custom_dir).replace("\\", "/");
+ } else {
+ return userfs.path_join(get_godot_dir_name()).path_join("app_userdata").path_join(appname).replace("\\", "/");
+ }
+ }
+
+ return userfs.path_join(get_godot_dir_name()).path_join("app_userdata").path_join("[unnamed project]");
}
String OS_Web::get_cache_path() const {