improved robustness of client/server encoding functions
[rocksndiamonds.git] / src / files.c
index 61ea14cb7e7cdf1a76cce5382ce68d12af89a12c..a2b1bedaa81d7071f990c12d6452d498b0b151a6 100644 (file)
@@ -9032,6 +9032,10 @@ void SaveScore(int nr)
 void ExecuteAsThread(SDL_ThreadFunction function, char *name, void *data,
                     char *error)
 {
+#if defined(PLATFORM_EMSCRIPTEN)
+  // threads currently not fully supported by Emscripten/SDL and some browsers
+  function(data);
+#else
   SDL_Thread *thread = SDL_CreateThread(function, name, data);
 
   if (thread != NULL)
@@ -9041,6 +9045,7 @@ void ExecuteAsThread(SDL_ThreadFunction function, char *name, void *data,
 
   // nasty kludge to lower probability of intermingled thread error messages
   Delay(1);
+#endif
 }
 
 char *getPasswordJSON(char *password)
@@ -9077,11 +9082,13 @@ static void DownloadServerScoreToCacheExt(struct HttpRequest *request,
           "{\n"
           "%s"
           "  \"game_version\":         \"%s\",\n"
+          "  \"game_platform\":        \"%s\",\n"
           "  \"levelset_identifier\":  \"%s\",\n"
           "  \"level_nr\":             \"%d\"\n"
           "}\n",
           getPasswordJSON(setup.api_server_password),
           getProgramRealVersionString(),
+          getProgramPlatformString(),
           levelset.identifier, level_nr);
 
   ConvertHttpRequestBodyToServerEncoding(request);
@@ -9343,7 +9350,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request,
   char *player_name_raw = score_entry->name;
   char *player_uuid_raw = setup.player_uuid;
 
-  if (options.player_name != NULL)
+  if (options.player_name != NULL && global.autoplay_leveldir != NULL)
   {
     player_name_raw = options.player_name;
     player_uuid_raw = "";
@@ -9361,6 +9368,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request,
           "{\n"
           "%s"
           "  \"game_version\":         \"%s\",\n"
+          "  \"game_platform\":        \"%s\",\n"
           "  \"batch_time\":           \"%d\",\n"
           "  \"levelset_identifier\":  \"%s\",\n"
           "  \"levelset_name\":        \"%s\",\n"
@@ -9380,6 +9388,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request,
           "}\n",
           getPasswordJSON(setup.api_server_password),
           getProgramRealVersionString(),
+          getProgramPlatformString(),
           (int)global.autoplay_time,
           levelset_identifier,
           levelset_name,