X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=ccbd2ed5ce6b36bd27db430584f8e2d31ccf78c7;hb=c9c4509483fdd52fb18925662c295ba5610237ed;hp=88762de495db29775fd6b422502ce144fd9e5071;hpb=0105036fde3897cfe82618a09f440e4c973596f8;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 88762de4..ccbd2ed5 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -853,6 +853,37 @@ char *getLevelSetTitleMessageFilename(int nr, boolean initial) return NULL; // cannot find specified artwork file anywhere } +static char *getCreditsBasename(int nr) +{ + static char basename[32]; + + sprintf(basename, "credits_%d.txt", nr + 1); + + return basename; +} + +char *getCreditsFilename(int nr, boolean global) +{ + char *basename = getCreditsBasename(nr); + char *basepath = NULL; + static char *credits_subdir = NULL; + static char *filename = NULL; + + if (credits_subdir == NULL) + credits_subdir = getPath2(DOCS_DIRECTORY, CREDITS_DIRECTORY); + + checked_free(filename); + + // look for credits file in the game's base or current level set directory + basepath = (global ? options.base_directory : getCurrentLevelDir()); + + filename = getPath3(basepath, credits_subdir, basename); + if (fileExists(filename)) + return filename; + + return NULL; // cannot find credits file +} + static char *getCorrectedArtworkBasename(char *basename) { return basename;