X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=32c8f265dfdd84961a1762cfd72f8a7fa7f26962;hp=a5e2e0617aff9c4fbb386d87795f0f90a9715726;hb=2c03953e712c427c94c02cdb1e15cd9e99e9e116;hpb=5361c043c5668c9801b4682e0691d34ec428545f diff --git a/src/libgame/setup.c b/src/libgame/setup.c index a5e2e061..32c8f265 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -387,6 +387,41 @@ char *getCustomImageFilename(char *basename) return NULL; /* cannot find image file */ } +char *getCustomSoundFilename(char *basename) +{ + static char *filename = NULL; + + if (filename != NULL) + free(filename); + + /* 1st try: look for special artwork in current level series directory */ + filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename); + if (fileExists(filename)) + return filename; + + /* 2nd try: look for special artwork in private artwork directory */ + filename = getPath2(getUserSoundsDir(), basename); + if (fileExists(filename)) + return filename; + + /* 3rd try: look for special artwork in configured artwork directory */ + filename = getPath2(getSetupArtworkDir(artwork.snd_current), basename); + if (fileExists(filename)) + return filename; + + /* 4th try: look for default artwork in new default artwork directory */ + filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename); + if (fileExists(filename)) + return filename; + + /* 5th try: look for default artwork in old default artwork directory */ + filename = getPath2(options.sounds_directory, basename); + if (fileExists(filename)) + return filename; + + return NULL; /* cannot find image file */ +} + void InitTapeDirectory(char *level_subdir) { createDirectory(getUserDataDir(), "user data", PERMS_PRIVATE);