X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=0a406540224696e012e1243fe9944407a62a4863;hb=refs%2Fheads%2Fmaster-next-major-release;hp=53659bddbe8a2840e8b514e7f878d5d5119d10ce;hpb=681df696173f472fe28e49b9e8e01b34dc34629b;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 53659bdd..fb63321b 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -823,26 +823,42 @@ char *getFilenameFromCurrentLevelDirUpward(char *basename) return filename; } -char *getHelpAnimFilename(void) +static char *getHelpFilename(char *basename) { static char *filename = NULL; checked_free(filename); - filename = getPath2(getCurrentLevelDir(), HELPANIM_FILENAME); + // 1st try: look for help filename in current level set directory + filename = getPath2(getCurrentLevelDir(), basename); + if (fileExists(filename)) + return filename; - return filename; -} + free(filename); -char *getHelpTextFilename(void) -{ - static char *filename = NULL; + // 2nd try: look for help filename in configured graphics set directory + filename = getPath2(getLevelArtworkDir(ARTWORK_TYPE_GRAPHICS), basename); + if (fileExists(filename)) + return filename; - checked_free(filename); + free(filename); - filename = getPath2(getCurrentLevelDir(), HELPTEXT_FILENAME); + // 3rd try: look for help filename in path from current to topmost level set directory + filename = getStringCopy(getFilenameFromCurrentLevelDirUpward(basename)); + if (fileExists(filename)) + return filename; - return filename; + return NULL; +} + +char *getHelpAnimFilename(void) +{ + return getHelpFilename(HELPANIM_FILENAME); +} + +char *getHelpTextFilename(void) +{ + return getHelpFilename(HELPTEXT_FILENAME); } static char *getLevelSetInfoBasename(int nr)