X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=c14d8396c8306ed4a44f43df3a526bab91feb35d;hb=e6f748f5628abdd08d3d55e879de5b0d495a4a08;hp=f486dba01745e9fc418ecd6bf29942b90145f159;hpb=c8a6ab54243a4f0b45ae03e6acbf55b15fb4338f;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index f486dba0..c14d8396 100644 --- a/src/files.c +++ b/src/files.c @@ -9026,8 +9026,8 @@ void SaveScore(int nr) SaveScoreToFilename(filename); } -static void ExecuteAsThread(SDL_ThreadFunction function, char *name, void *data, - char *error) +void ExecuteAsThread(SDL_ThreadFunction function, char *name, void *data, + char *error) { SDL_Thread *thread = SDL_CreateThread(function, name, data); @@ -9040,7 +9040,7 @@ static void ExecuteAsThread(SDL_ThreadFunction function, char *name, void *data, Delay(1); } -static char *getPasswordJSON(char *password) +char *getPasswordJSON(char *password) { static char password_json[MAX_FILENAME_LEN] = ""; static boolean initialized = FALSE; @@ -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); @@ -9243,7 +9245,7 @@ static void LoadServerScoreFromCache(int nr) void LoadServerScore(int nr, boolean download_score) { - if (!setup.api_server) + if (!setup.use_api_server) return; // always start with reliable default values @@ -9253,7 +9255,7 @@ void LoadServerScore(int nr, boolean download_score) // (this should prevent reading it while the thread is writing to it) LoadServerScoreFromCache(nr); - if (download_score && runtime.api_server) + if (download_score && runtime.use_api_server) { // 2nd step: download server scores from score server to cache file // (as thread, as it might time out if the server is not reachable) @@ -9335,18 +9337,28 @@ 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" "%s" " \"game_version\": \"%s\",\n" + " \"batch_time\": \"%d\",\n" " \"levelset_identifier\": \"%s\",\n" " \"levelset_name\": \"%s\",\n" " \"levelset_author\": \"%s\",\n" @@ -9365,6 +9377,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request, "}\n", getPasswordJSON(setup.api_server_password), getProgramRealVersionString(), + (int)global.autoplay_time, levelset_identifier, levelset_name, levelset_author, @@ -9466,7 +9479,7 @@ static void UploadScoreToServerAsThread(int nr, char *score_tape_filename) void SaveServerScore(int nr) { - if (!runtime.api_server) + if (!runtime.use_api_server) return; UploadScoreToServerAsThread(nr, NULL); @@ -9474,7 +9487,7 @@ void SaveServerScore(int nr) void SaveServerScoreFromFile(int nr, char *score_tape_filename) { - if (!runtime.api_server) + if (!runtime.use_api_server) return; UploadScoreToServerAsThread(nr, score_tape_filename); @@ -9489,7 +9502,7 @@ void LoadLocalAndServerScore(int nr, boolean download_score) // restore last added local score entry (before merging server scores) scores.last_added = scores.last_added_local = last_added_local; - if (setup.api_server && !setup.only_show_local_scores) + if (setup.use_api_server && !setup.only_show_local_scores) { // load server scores from cache file and trigger update from server LoadServerScore(nr, download_score); @@ -9747,7 +9760,7 @@ static struct TokenInfo global_setup_tokens[] = }, { TYPE_SWITCH, - &setup.api_server, "api_server" + &setup.use_api_server, "use_api_server" }, { TYPE_STRING, @@ -9757,6 +9770,14 @@ 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_SWITCH, + &setup.provide_uploading_tapes, "provide_uploading_tapes" + }, { TYPE_STRING, &setup.touch.control_type, "touch.control_type" @@ -10393,9 +10414,11 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->network_player_nr = 0; // first player si->network_server_hostname = getStringCopy(STR_NETWORK_AUTO_DETECT); - si->api_server = TRUE; + si->use_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->provide_uploading_tapes = TRUE; si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT); si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT; // percent @@ -11020,7 +11043,7 @@ void SaveSetup(void) global_setup_tokens[i].value == &setup.graphics_set || global_setup_tokens[i].value == &setup.volume_simple || global_setup_tokens[i].value == &setup.network_mode || - global_setup_tokens[i].value == &setup.api_server || + global_setup_tokens[i].value == &setup.use_api_server || global_setup_tokens[i].value == &setup.touch.control_type || global_setup_tokens[i].value == &setup.touch.grid_xsize[0] || global_setup_tokens[i].value == &setup.touch.grid_xsize[1])