From 5c091db8a4557dee246b52374e7a7d9cd1af599e Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Wed, 11 May 2022 13:46:48 +0200 Subject: [PATCH] added flag to continue from hall of fame when pressing "return" key --- src/files.c | 1 + src/main.h | 1 + src/screens.c | 14 ++++++-------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/files.c b/src/files.c index 919b7f85..f0ed1e41 100644 --- a/src/files.c +++ b/src/files.c @@ -8694,6 +8694,7 @@ static void setScoreInfoToDefaultsExt(struct ScoreInfo *scores) // - last_level_nr // - last_entry_nr // - continue_playing + // - continue_on_return } static void setScoreInfoToDefaults(void) diff --git a/src/main.h b/src/main.h index cff7ff79..4d566eae 100644 --- a/src/main.h +++ b/src/main.h @@ -3129,6 +3129,7 @@ struct ScoreInfo boolean tape_downloaded; boolean force_last_added; boolean continue_playing; + boolean continue_on_return; struct ScoreEntry entry[MAX_SCORE_ENTRIES]; }; diff --git a/src/screens.c b/src/screens.c index e2308b4d..ed086dc3 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4806,10 +4806,10 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, } #endif - // any mouse click or direction input stops playing the next level - if ((mx || my || dx || dy) && scores.continue_playing) + // any mouse click or cursor key stops leaving scores by "Return" key + if ((mx || my || dx || dy) && scores.continue_on_return) { - scores.continue_playing = FALSE; + scores.continue_on_return = FALSE; level_nr = scores.last_level_nr; LoadLevel(level_nr); } @@ -5092,16 +5092,13 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, } else if (game_status == GAME_MODE_SCORES) { - if (setup.auto_play_next_level && setup.increment_levels && - scores.last_level_nr < leveldir_current->last_level && - scores.continue_playing && - !network_playing) + if (scores.continue_playing && scores.continue_on_return) { StartGameActions(network.enabled, setup.autorecord, level.random_seed); return; } - else if (!scores.continue_playing) + else if (!scores.continue_on_return) { SetGameStatus(GAME_MODE_SCOREINFO); @@ -5304,6 +5301,7 @@ static void DrawHallOfFame_setScoreEntries(void) void DrawHallOfFame(int nr) { scores.last_level_nr = nr; + scores.continue_on_return = (game_status_last_screen == GAME_MODE_PLAYING); // (this is needed when called from GameEnd() after winning a game) KeyboardAutoRepeatOn(); -- 2.34.1