added (and set) identifier and level number to global levelset structure
authorHolger Schemel <info@artsoft.org>
Thu, 30 Aug 2018 19:46:11 +0000 (21:46 +0200)
committerHolger Schemel <info@artsoft.org>
Thu, 30 Aug 2018 19:49:31 +0000 (21:49 +0200)
src/init.c
src/libgame/system.h
src/network.c
src/screens.c
src/tools.c
src/tools.h

index ad660e355bcbd3de0c063866c75838e40af502e7..6db427ff5333ec44191426f5346ee4c32258df1e 100644 (file)
@@ -5489,6 +5489,8 @@ static void InitLevelInfo()
     if (leveldir_current == NULL)
       leveldir_current = getFirstValidTreeInfoEntry(leveldir_first);
   }
+
+  SetLevelSetInfo(leveldir_current->identifier, level_nr);
 }
 
 static void InitLevelArtworkInfo()
index 76169efa6bf0345e6e90f64fc63d827fdee5c7b5..29a98017dd832c63435c16297498f3018ecd5868 100644 (file)
@@ -1569,6 +1569,9 @@ struct MouseActionInfo
 struct LevelSetInfo
 {
   int music[MAX_LEVELS];
+
+  char *identifier;
+  int level_nr;
 };
 
 struct LevelStats
index 574809781e92dcbbb4cf5a75c78b34f65dc5f220..bf12567b4bbc5836fa0b5502a96cfd3dbd5dfb5e 100644 (file)
@@ -694,6 +694,8 @@ static void Handle_OP_START_PLAYING()
     level_nr = new_level_nr;
   }
 
+  SetLevelSetInfo(new_leveldir_identifier, new_level_nr);
+
   /* needed if level set of network game changed graphics, sounds or music */
   ReloadCustomArtwork(0);
 
index 337bd5652fafbfb5934c884626da4f9618646d05..4ee8179d68dc4a564f6349415908df02d2f802a6 100644 (file)
@@ -1591,6 +1591,8 @@ 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);
 
index db2e193a86e80c45197cc96773c87ce532c51b24..e6f09e1c330d32f0f48fdb992fa0fa9448c8d25a 100644 (file)
@@ -9391,6 +9391,13 @@ void ResetFontStatus()
   SetFontStatus(-1);
 }
 
+void SetLevelSetInfo(char *identifier, int level_nr)
+{
+  setString(&levelset.identifier, identifier);
+
+  levelset.level_nr = level_nr;
+}
+
 boolean CheckIfPlayfieldViewportHasChanged()
 {
   // if game status has not changed, playfield viewport has not changed either
index a5e348a698888c0c22a9de1cf213cf5d9a57d67b..b67f23b0f3f65ca37e30b959406684a610323e59 100644 (file)
@@ -278,6 +278,8 @@ void SetGameStatus(int);
 void SetFontStatus(int);
 void ResetFontStatus();
 
+void SetLevelSetInfo(char *, int);
+
 void ToggleFullscreenOrChangeWindowScalingIfNeeded();
 void ChangeViewportPropertiesIfNeeded();