fixed bug with displaying the wrong level number in the game panel
authorHolger Schemel <info@artsoft.org>
Sat, 8 Sep 2018 22:07:47 +0000 (00:07 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 8 Sep 2018 22:17:02 +0000 (00:17 +0200)
When introducing a global levelset identifier and level number (see
commit b7fe72dc), the level number to be displayed on the game panel
was updated in the main menu and for network games, but not when
selecting another level from the main menu or when automatically
playing the next level after solving a level (and skipping the main
menu before starting the next level), which results in displaying the
wrong level number in the game panel in many cases.

This was fixed now by updating the level number when loading the level
from the level file (moving the function to update the level number to
be displayed from the main menu to the function to load the level).

src/files.c
src/screens.c

index 21bede9..266ef70 100644 (file)
@@ -6648,6 +6648,8 @@ static void LoadLevel_LoadAndInit(struct LevelFileInfo *lfi_network_template)
 
 void LoadLevel(int nr)
 {
+  SetLevelSetInfo(leveldir_current->identifier, nr);
+
   setLevelFileInfo(&level.file_info, nr);
 
   LoadLevel_LoadAndInit(NULL);
index 4ee8179..337bd56 100644 (file)
@@ -1591,8 +1591,6 @@ void DrawMainMenu()
 
   init_last = init;                    /* switch to new busy animation */
 
-  SetLevelSetInfo(leveldir_current->identifier, level_nr);
-
   /* needed if last screen (level choice) changed graphics, sounds or music */
   ReloadCustomArtwork(0);