X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=a716f5eaf7d1941623ed04d66823ff637cbe8774;hb=2c611010f9bd58f6b2d61ed6e4d5c5730a191a7e;hp=9cf65da03fffe6811ed530840199bdae0cfac9dc;hpb=b55729ffeba9da45b5ae83abfd3460a5c0609e94;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 9cf65da0..a716f5ea 100644 --- a/src/screens.c +++ b/src/screens.c @@ -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,