X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=fefe33dfbd0dfa074578769eb7d865371ce4b9ee;hp=32c8f265dfdd84961a1762cfd72f8a7fa7f26962;hb=f1685723f2d920b7d7349c57e902c7adfaffdb1c;hpb=2c03953e712c427c94c02cdb1e15cd9e99e9e116 diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 32c8f265..fefe33df 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -422,6 +422,41 @@ char *getCustomSoundFilename(char *basename) return NULL; /* cannot find image file */ } +char *getCustomMusicDirectory(void) +{ + static char *directory = NULL; + + if (directory != NULL) + free(directory); + + /* 1st try: look for special artwork in current level series directory */ + directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY); + if (fileExists(directory)) + return directory; + + /* 2nd try: look for special artwork in private artwork directory */ + directory = getStringCopy(getUserMusicDir()); + if (fileExists(directory)) + return directory; + + /* 3rd try: look for special artwork in configured artwork directory */ + directory = getStringCopy(getSetupArtworkDir(artwork.mus_current)); + if (fileExists(directory)) + return directory; + + /* 4th try: look for default artwork in new default artwork directory */ + directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR)); + if (fileExists(directory)) + return directory; + + /* 5th try: look for default artwork in old default artwork directory */ + directory = getStringCopy(options.music_directory); + if (fileExists(directory)) + return directory; + + return NULL; /* cannot find image file */ +} + void InitTapeDirectory(char *level_subdir) { createDirectory(getUserDataDir(), "user data", PERMS_PRIVATE);