X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=54c03fde2eaf02edcd7df9b68fd47447c33f2c38;hb=c2ae499bb6f4796659b255868521d269aa173a97;hp=27d35a301e254902e17a69034545a30c6c5dd53e;hpb=49c4528a5e489746ecf9fb4347aa6dcdca5de699;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 27d35a30..54c03fde 100644 --- a/src/screens.c +++ b/src/screens.c @@ -283,6 +283,7 @@ static void MapScreenTreeGadgets(TreeInfo *); static void UpdateScreenMenuGadgets(int, boolean); static boolean OfferUploadTapes(void); +static void execOfferUploadTapes(void); static struct GadgetInfo *screen_gadget[NUM_SCREEN_GADGETS]; @@ -5568,6 +5569,9 @@ static void execSetupGame(void) execSetupGame_setNetworkServerText(); + if (!setup.provide_uploading_tapes) + setHideSetupEntry(execOfferUploadTapes); + setup_mode = SETUP_MODE_GAME; DrawSetupScreen(); @@ -6875,7 +6879,7 @@ static struct TokenInfo setup_info_game[] = { TYPE_PLAYER, &setup.network_player_nr,"Preferred Network Player:" }, { TYPE_TEXT_INPUT, execGadgetNetworkServer, "Network Server Hostname:" }, { TYPE_STRING, &network_server_text, "" }, - { TYPE_SWITCH, &setup.api_server, "Use Highscore Server:" }, + { TYPE_SWITCH, &setup.use_api_server, "Use Highscore Server:" }, { TYPE_SWITCH, &setup.only_show_local_scores, "Only Show Local Scores:" }, { TYPE_ENTER_LIST, execOfferUploadTapes, "Upload All Tapes to Server" }, { TYPE_SWITCH, &setup.multiple_users, "Multiple Users/Teams:" }, @@ -7481,8 +7485,8 @@ static void changeSetupValue(int screen_pos, int setup_info_pos_raw, int dx) ToggleNetworkModeIfNeeded(); // API server mode may have changed at this point - if (si->value == &setup.api_server) - runtime.api_server = setup.api_server; + if (si->value == &setup.use_api_server) + runtime.use_api_server = setup.use_api_server; // game speed list may have changed at this point if (si->value == &setup.game_speed_extended) @@ -9879,6 +9883,11 @@ static boolean OfferUploadTapes(void) Request(message, REQ_CONFIRM); + // after all tapes have been uploaded, remove entry from setup menu + setup.provide_uploading_tapes = FALSE; + + SaveSetup(); + return (num_tapes_uploaded > 0); } @@ -9895,7 +9904,13 @@ void CheckUploadTapes(void) Request("You can upload your tapes from the setup menu later!", REQ_CONFIRM); } + else + { + // if tapes directory does not exist yet, never offer uploading all tapes + setup.provide_uploading_tapes = FALSE; + } + // after asking for uploading all tapes once, do not ask again setup.ask_for_uploading_tapes = FALSE; SaveSetup();