X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=20f5102594962e230d669b28ed2e551e99f9153b;hb=fa4f857a268adfe4aa1e29f2449fff8b1c2fbf0e;hp=8e51f5ad801cd1edd8bfe89bb42de8bc8d71dbcd;hpb=224535bfe9ef9bfae63168c8ed99c2b70d2f44b1;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 8e51f5ad..20f51025 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); @@ -9335,12 +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_name = getEscapedJSON(player_name_raw); + char *player_uuid = getEscapedJSON(player_uuid_raw); snprintf(request->body, MAX_HTTP_BODY_SIZE, "{\n" @@ -9356,6 +9368,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request, " \"level_author\": \"%s\",\n" " \"rate_time_over_score\": \"%d\",\n" " \"player_name\": \"%s\",\n" + " \"player_uuid\": \"%s\",\n" " \"score\": \"%d\",\n" " \"time\": \"%d\",\n" " \"tape_basename\": \"%s\",\n" @@ -9373,6 +9386,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request, level_author, level.rate_time_over_score, player_name, + player_uuid, score_entry->score, score_entry->time, score_entry->tape_basename, @@ -9386,6 +9400,7 @@ static void UploadScoreToServerExt(struct HttpRequest *request, checked_free(level_name); checked_free(level_author); checked_free(player_name); + checked_free(player_uuid); ConvertHttpRequestBodyToServerEncoding(request); @@ -9513,10 +9528,6 @@ static struct TokenInfo global_setup_tokens[] = TYPE_STRING, &setup.player_uuid, "player_uuid" }, - { - TYPE_STRING, - &setup.system_uuid, "system_uuid" - }, { TYPE_SWITCH, &setup.multiple_users, "multiple_users" @@ -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" @@ -10328,9 +10343,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) int i; si->player_name = getStringCopy(getDefaultUserName(user.nr)); - si->player_uuid = NULL; // (will be set later) - si->system_uuid = NULL; // (will be set later) si->multiple_users = TRUE; @@ -10398,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 @@ -10878,19 +10892,13 @@ static void LoadSetup_SpecialPostProcessing(void) setup.scroll_delay_value = MIN(MAX(MIN_SCROLL_DELAY, setup.scroll_delay_value), MAX_SCROLL_DELAY); - if (setup.player_uuid == NULL || - setup.system_uuid == NULL) + if (setup.player_uuid == NULL) { - if (setup.player_uuid == NULL) - setup.player_uuid = getStringCopy(GetPlayerUUID()); - - if (setup.system_uuid == NULL) - setup.system_uuid = getStringCopy(GetSystemUUID()); + // player UUID does not yet exist in setup file + setup.player_uuid = getStringCopy(getUUID()); SaveSetup(); } - - SetSystemUUID(setup.system_uuid); } void LoadSetup(void) @@ -11023,8 +11031,7 @@ void SaveSetup(void) for (i = 0; i < ARRAY_SIZE(global_setup_tokens); i++) { // just to make things nicer :) - if (global_setup_tokens[i].value == &setup.player_uuid || - global_setup_tokens[i].value == &setup.multiple_users || + if (global_setup_tokens[i].value == &setup.multiple_users || global_setup_tokens[i].value == &setup.sound || global_setup_tokens[i].value == &setup.graphics_set || global_setup_tokens[i].value == &setup.volume_simple ||