changed custom artwork list to tree structure similar to level sets
[rocksndiamonds.git] / src / screens.c
index 84b890f6e9bb6c0d05e2d519a36ba4ed89e91f15..a716f5eaf7d1941623ed04d66823ff637cbe8774 100644 (file)
@@ -1634,7 +1634,11 @@ void DrawMainMenu(void)
     leveldir_current = getFirstValidTreeInfoEntry(leveldir_last_valid);
 
   if (leveldir_current != leveldir_last_valid)
+  {
+    UpdateLastPlayedLevels_TreeInfo();
+
     levelset_has_changed = TRUE;
+  }
 
   // store valid level series information
   leveldir_last_valid = leveldir_current;
@@ -6325,6 +6329,23 @@ static void execSetupTouch(void)
 
 static void execSetupArtwork(void)
 {
+  static ArtworkDirTree *gfx_last_valid = NULL;
+  static ArtworkDirTree *snd_last_valid = NULL;
+  static ArtworkDirTree *mus_last_valid = NULL;
+
+  // current artwork directory may be invalid (level group, parent link)
+  if (!validLevelSeries(artwork.gfx_current))
+    artwork.gfx_current = getFirstValidTreeInfoEntry(gfx_last_valid);
+  if (!validLevelSeries(artwork.snd_current))
+    artwork.snd_current = getFirstValidTreeInfoEntry(snd_last_valid);
+  if (!validLevelSeries(artwork.mus_current))
+    artwork.mus_current = getFirstValidTreeInfoEntry(mus_last_valid);
+
+  // store valid artwork directory information
+  gfx_last_valid = artwork.gfx_current;
+  snd_last_valid = artwork.snd_current;
+  mus_last_valid = artwork.mus_current;
+
 #if 0
   Debug("screens:execSetupArtwork", "'%s', '%s', '%s'",
        artwork.gfx_current->subdir,
@@ -6671,6 +6692,7 @@ static struct TokenInfo setup_info_game[] =
   { 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.count_score_after_game,"Count Score After Game:" },
   { TYPE_SWITCH,       &setup.show_scores_after_game,"Show Scores After Game:" },
   { TYPE_YES_NO,       &setup.ask_on_game_over, "Ask on Game Over:"    },
   { TYPE_SWITCH,       &setup.autorecord,      "Auto-Record Tapes:"    },