X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=79ed0aa7051ee186d7611ac7d95150b8f64bd8dc;hb=963345fd2614535471086111e64eded2cd9818e4;hp=fb6b4e76976952219a1015710389d65fe6dbb38a;hpb=e62173f0d73ba575738b04300f5408b2dfdc3188;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index fb6b4e76..79ed0aa7 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1743,6 +1743,9 @@ void DrawMainMenu(void) OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2); SyncEmscriptenFilesystem(); + + // needed once to upload tapes (after program start or after user change) + CheckUploadTapes(); } static void gotoTopLevelDir(void) @@ -9987,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); @@ -9996,7 +10011,7 @@ static boolean OfferUploadTapes(void) SaveSetup(); - return (num_tapes_uploaded > 0); + return TRUE; } void CheckUploadTapes(void) @@ -10004,6 +10019,9 @@ void CheckUploadTapes(void) if (!setup.ask_for_uploading_tapes) return; + // after asking for uploading all tapes once, do not ask again + setup.ask_for_uploading_tapes = FALSE; + if (directoryExists(getTapeDir(NULL))) { boolean tapes_uploaded = OfferUploadTapes(); @@ -10018,8 +10036,5 @@ void CheckUploadTapes(void) setup.provide_uploading_tapes = FALSE; } - // after asking for uploading all tapes once, do not ask again - setup.ask_for_uploading_tapes = FALSE; - SaveSetup(); }