X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=d545ef304fbc1c979e6abaebb62902f806e0e163;hb=951e6d0a5b07999e3c919b1c689c71c108e45411;hp=2b4539f990d2aa12547abbadc627ca7e7e9874c0;hpb=c5f483ea6c651aba3f9834ee47ba94e2c1bf9055;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 2b4539f9..d545ef30 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1087,7 +1087,7 @@ static boolean visibleTextPos(struct TextPosInfo *pos) static void InitializeMainControls() { - boolean local_team_mode = (!options.network && setup.team_mode); + boolean local_team_mode = (!network.enabled && setup.team_mode); int i; /* set main control text values to dynamically determined values */ @@ -2073,7 +2073,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) SetGameStatus(GAME_MODE_SCORES); - DrawHallOfFame(-1); + DrawHallOfFame(level_nr, -1); } else if (pos == MAIN_CONTROL_EDITOR) { @@ -2101,7 +2101,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) } else if (pos == MAIN_CONTROL_GAME) { - StartGameActions(options.network, setup.autorecord, level.random_seed); + StartGameActions(network.enabled, setup.autorecord, level.random_seed); } else if (pos == MAIN_CONTROL_SETUP) { @@ -4498,7 +4498,7 @@ void HandleChooseLevelNr(int mx, int my, int dx, int dy, int button) HandleChooseTree(mx, my, dx, dy, button, &level_number_current); } -void DrawHallOfFame(int highlight_position) +void DrawHallOfFame(int level_nr, int highlight_position) { int fade_mask = REDRAW_FIELD; @@ -4619,25 +4619,23 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button) drawHallOfFameList(first_entry, highlight_position); } } - else if (button == MB_MENU_LEAVE) - { - PlaySound(SND_MENU_ITEM_SELECTING); - - FadeSound(SND_BACKGROUND_SCORES); - - SetGameStatus(GAME_MODE_MAIN); - - DrawMainMenu(); - } - else if (button == MB_MENU_CHOICE) + else if (button == MB_MENU_LEAVE || button == MB_MENU_CHOICE) { PlaySound(SND_MENU_ITEM_SELECTING); FadeSound(SND_BACKGROUND_SCORES); - SetGameStatus(GAME_MODE_MAIN); + if (game_status_last_screen != GAME_MODE_PLAYING || + !setup.auto_play_next_level || !setup.increment_levels) + { + SetGameStatus(GAME_MODE_MAIN); - DrawMainMenu(); + DrawMainMenu(); + } + else + { + StartGameActions(network.enabled, setup.autorecord, level.random_seed); + } } if (game_status == GAME_MODE_SCORES) @@ -5888,6 +5886,8 @@ static struct TokenInfo setup_info_game[] = { TYPE_SWITCH, &setup.handicap, "Handicap:" }, { TYPE_SWITCH, &setup.skip_levels, "Skip Unsolved Levels:" }, { TYPE_SWITCH, &setup.increment_levels,"Increment Solved Levels:" }, + { TYPE_SWITCH, &setup.auto_play_next_level,"Auto-play Next Level:" }, + { TYPE_SWITCH, &setup.skip_scores_after_game,"Skip Scores After Game:" }, { TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" }, { TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" }, { TYPE_STRING, &game_speed_text, "" }, @@ -6446,7 +6446,7 @@ static void changeSetupValue(int screen_pos, int setup_info_pos_raw, int dx) if (si->value == &setup.network_mode && setup.network_mode && - !options.network) + !network.enabled) Request("Please restart game to enable network games!", REQ_CONFIRM); }