X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=3f0186216a765e9d257aeba3212b58d67933e1ce;hb=84b4d1874b7dfed42ace079941a65baea0ac4ff6;hp=92a9466ca0053ae1eb96454d031ec07cabb9510c;hpb=5cfa9e64469aaad50920c9031daf877ca3093241;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 92a9466c..3f018621 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1693,6 +1693,18 @@ void DrawMainMenu(void) return; } + // needed if last screen was the playing screen, invoked from hall of fame + if (score_info_tape_play) + { + CloseDoor(DOOR_CLOSE_ALL); + + SetGameStatus(GAME_MODE_SCOREINFO); + + DrawScoreInfo(scores.last_entry_nr); + + return; + } + // leveldir_current may be invalid (level group, parent link, node copy) leveldir_current = getValidLevelSeries(leveldir_current, leveldir_last_valid); @@ -5479,6 +5491,7 @@ static void DrawScoreInfo_Content(int entry_nr) static void DrawScoreInfo(int entry_nr) { scores.last_entry_nr = entry_nr; + score_info_tape_play = FALSE; SetMainBackgroundImageIfDefined(IMG_BACKGROUND_SCOREINFO); @@ -5516,6 +5529,12 @@ static void HandleScoreInfo_SelectScore(int step, int direction) static void HandleScoreInfo_PlayTape(void) { + if (!PlayScoreTape(scores.last_entry_nr)) + { + DrawScoreInfo_Content(scores.last_entry_nr); + + FadeIn(REDRAW_FIELD); + } } void HandleScoreInfo(int mx, int my, int dx, int dy, int button)