X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=47777fa23d825d853309e856707f24e64023208a;hb=456850f38548906c013fb29dd03f2171021ee9ec;hp=0cb8a2b017ab8d05e10f0f757a353c17d4d158ab;hpb=9a428699f518bb0b4982e203f809963fd4ebe6da;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 0cb8a2b0..47777fa2 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4356,12 +4356,17 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos, // temporarily change active user to edited user user.nr = type_name_nr; - // load setup of edited user (unless creating user with current setup) - if (!create_user || - !Request("Use current setup values for the new player?", REQ_ASK)) - LoadSetup(); - else + if (create_user && + Request("Use current setup values for the new player?", REQ_ASK)) + { + // use current setup values for new user, but create new player UUID setup.player_uuid = getStringCopy(getUUID()); + } + else + { + // load setup for existing user (or start with defaults for new user) + LoadSetup(); + } } char *setup_filename = getSetupFilename(); @@ -5111,6 +5116,9 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); + + // needed once to offer uploading score tapes after changing user + CheckUploadTapes(); } } } @@ -9982,7 +9990,19 @@ static boolean OfferUploadTapes(void) int num_tapes_uploaded = UploadTapes(); char message[100]; - sprintf(message, "%d tapes uploaded!", num_tapes_uploaded); + if (num_tapes_uploaded < 0) + { + Request("Cannot upload tapes to score server!", REQ_CONFIRM); + + return FALSE; + } + + if (num_tapes_uploaded == 0) + sprintf(message, "No tapes uploaded!"); + else if (num_tapes_uploaded == 1) + sprintf(message, "1 tape uploaded!"); + else + sprintf(message, "%d tapes uploaded!", num_tapes_uploaded); Request(message, REQ_CONFIRM); @@ -9991,7 +10011,7 @@ static boolean OfferUploadTapes(void) SaveSetup(); - return (num_tapes_uploaded > 0); + return TRUE; } void CheckUploadTapes(void)