fixed using individual program data path for Emscripten platform
authorHolger Schemel <info@artsoft.org>
Sat, 9 Apr 2022 09:53:33 +0000 (11:53 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 9 Apr 2022 10:00:58 +0000 (12:00 +0200)
Before, the Emscripten platform was treated as "Unix platform", which
should use ".rocksndiamonds" (or ".<program name>") as the data path.
As there is no "program name" on Emscripten platform, it is set to
"this" by the Emscripten environment, resulting in using ".this" for
all R'n'D based programs under the same domain in the IndexedDB store
of the browser, so there is no separation of individual program data
for different R'n'D based custom games, leading to shared data like
player name, setup settings and everything else, which is not desired.

This commit fixed this problem by using the program title instead of
the program's executable name (just like it is already done for the
Windows and Mac platforms.)

src/main.c

index 7ebbee1fbe199c0d917d071dd0c37262af7e1a26..3ef3df989bd6e5380d6ce39a64db2bf9b4b23fab 100644 (file)
@@ -7839,7 +7839,7 @@ static void InitProgramConfig(char *command_filename)
       strlen(setup.internal.program_icon_file) > 0)
     program_icon_file = getStringCopy(setup.internal.program_icon_file);
 
-#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX) || defined(PLATFORM_EMSCRIPTEN)
   userdata_subdir = program_title;
 #elif defined(PLATFORM_UNIX)
   userdata_subdir = userdata_subdir_unix;