fixed speedup for missing tapes when auto-playing/testing/uploading
[rocksndiamonds.git] / src / files.c
index 442a0b674b915681014f63d50075ac4cf2928c50..28a19e67eefeaa78495d58e0f97a381fd001e4df 100644 (file)
@@ -8401,7 +8401,7 @@ void SaveScoreTape(int nr)
   char *filename = getScoreTapeFilename(tape.score_tape_basename, nr);
 
   // used instead of "leveldir_current->subdir" (for network games)
-  InitScoreDirectory(levelset.identifier);
+  InitScoreTapeDirectory(levelset.identifier, nr);
 
   SaveTapeExt(filename);
 }
@@ -9280,12 +9280,16 @@ static int ApiGetScoreThread(void *data_raw)
   struct HttpRequest *request = checked_calloc(sizeof(struct HttpRequest));
   struct HttpResponse *response = checked_calloc(sizeof(struct HttpResponse));
 
+  program.api_thread_count++;
+
 #if defined(PLATFORM_EMSCRIPTEN)
   Emscripten_ApiGetScore_HttpRequest(request, data_raw);
 #else
   ApiGetScore_HttpRequest(request, response, data_raw);
 #endif
 
+  program.api_thread_count--;
+
   checked_free(request);
   checked_free(response);
 
@@ -9529,6 +9533,7 @@ static boolean SetRequest_ApiAddScore(struct HttpRequest *request,
           "  \"level_nr\":             \"%d\",\n"
           "  \"level_name\":           \"%s\",\n"
           "  \"level_author\":         \"%s\",\n"
+          "  \"use_step_counter\":     \"%d\",\n"
           "  \"rate_time_over_score\": \"%d\",\n"
           "  \"player_name\":          \"%s\",\n"
           "  \"player_uuid\":          \"%s\",\n"
@@ -9550,6 +9555,7 @@ static boolean SetRequest_ApiAddScore(struct HttpRequest *request,
           level_nr,
           level_name,
           level_author,
+          level.use_step_counter,
           level.rate_time_over_score,
           player_name,
           player_uuid,
@@ -9677,12 +9683,16 @@ static int ApiAddScoreThread(void *data_raw)
   struct HttpRequest *request = checked_calloc(sizeof(struct HttpRequest));
   struct HttpResponse *response = checked_calloc(sizeof(struct HttpResponse));
 
+  program.api_thread_count++;
+
 #if defined(PLATFORM_EMSCRIPTEN)
   Emscripten_ApiAddScore_HttpRequest(request, data_raw);
 #else
   ApiAddScore_HttpRequest(request, response, data_raw);
 #endif
 
+  program.api_thread_count--;
+
   checked_free(request);
   checked_free(response);
 
@@ -10059,6 +10069,10 @@ static struct TokenInfo server_setup_tokens[] =
     TYPE_SWITCH,
     &setup.provide_uploading_tapes, TEST_PREFIX        "provide_uploading_tapes"
   },
+  {
+    TYPE_SWITCH,
+    &setup.ask_for_using_api_server,TEST_PREFIX        "ask_for_using_api_server"
+  },
 };
 
 static struct TokenInfo editor_setup_tokens[] =
@@ -10861,6 +10875,7 @@ static void setSetupInfoToDefaults_ServerSetup(struct SetupInfo *si)
   si->api_server_password = getStringCopy(UNDEFINED_PASSWORD);
   si->ask_for_uploading_tapes = TRUE;
   si->provide_uploading_tapes = TRUE;
+  si->ask_for_using_api_server = TRUE;
 }
 
 static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si)