added setup option to ask for uploading tapes to score server
[rocksndiamonds.git] / src / files.c
index 9c370e72497b5b1ff2657cd9c837fbf4ffa66ba3..20f5102594962e230d669b28ed2e551e99f9153b 100644 (file)
@@ -9073,10 +9073,12 @@ static void DownloadServerScoreToCacheExt(struct HttpRequest *request,
   snprintf(request->body, MAX_HTTP_BODY_SIZE,
           "{\n"
           "%s"
+          "  \"game_version\":         \"%s\",\n"
           "  \"levelset_identifier\":  \"%s\",\n"
           "  \"level_nr\":             \"%d\"\n"
           "}\n",
           getPasswordJSON(setup.api_server_password),
+          getProgramRealVersionString(),
           levelset.identifier, level_nr);
 
   ConvertHttpRequestBodyToServerEncoding(request);
@@ -9335,13 +9337,22 @@ static void UploadScoreToServerExt(struct HttpRequest *request,
     return;
   }
 
+  char *player_name_raw = score_entry->name;
+  char *player_uuid_raw = setup.player_uuid;
+
+  if (options.player_name != NULL)
+  {
+    player_name_raw = options.player_name;
+    player_uuid_raw = "";
+  }
+
   char *levelset_identifier = getEscapedJSON(leveldir_current->identifier);
   char *levelset_name       = getEscapedJSON(leveldir_current->name);
   char *levelset_author     = getEscapedJSON(leveldir_current->author);
   char *level_name          = getEscapedJSON(level.name);
   char *level_author        = getEscapedJSON(level.author);
-  char *player_name         = getEscapedJSON(score_entry->name);
-  char *player_uuid         = getEscapedJSON(setup.player_uuid);
+  char *player_name         = getEscapedJSON(player_name_raw);
+  char *player_uuid         = getEscapedJSON(player_uuid_raw);
 
   snprintf(request->body, MAX_HTTP_BODY_SIZE,
           "{\n"
@@ -9757,6 +9768,10 @@ static struct TokenInfo global_setup_tokens[] =
     TYPE_STRING,
     &setup.api_server_password,                        "api_server_password"
   },
+  {
+    TYPE_SWITCH,
+    &setup.ask_for_uploading_tapes,            "ask_for_uploading_tapes"
+  },
   {
     TYPE_STRING,
     &setup.touch.control_type,                 "touch.control_type"
@@ -10396,6 +10411,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->api_server = TRUE;
   si->api_server_hostname = getStringCopy(API_SERVER_HOSTNAME);
   si->api_server_password = getStringCopy(UNDEFINED_PASSWORD);
+  si->ask_for_uploading_tapes = TRUE;
 
   si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT);
   si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT;       // percent