X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=48f967c3b03ee2ff5688501294efc178d3174e25;hp=4bbfba2018fd085a60ee8753c4966f66208182c3;hb=05ee9c39039a7329aa0e8ff747e30526c8c61260;hpb=2cfee1e01acbf98c4ff8bb0f9fc04b7b5605751f diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 4bbfba20..48f967c3 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -582,7 +582,7 @@ char *getTapeFilename(int nr) return filename; } -char *getSolutionTapeFilename(int nr) +char *getDefaultSolutionTapeFilename(int nr) { static char *filename = NULL; char basename[MAX_FILENAME_LEN]; @@ -592,17 +592,32 @@ char *getSolutionTapeFilename(int nr) sprintf(basename, "%03d.%s", nr, TAPEFILE_EXTENSION); filename = getPath2(getSolutionTapeDir(), basename); - if (!fileExists(filename)) - { - static char *filename_sln = NULL; + return filename; +} + +char *getSokobanSolutionTapeFilename(int nr) +{ + static char *filename = NULL; + char basename[MAX_FILENAME_LEN]; + + checked_free(filename); + + sprintf(basename, "%03d.sln", nr); + filename = getPath2(getSolutionTapeDir(), basename); + + return filename; +} - checked_free(filename_sln); +char *getSolutionTapeFilename(int nr) +{ + char *filename = getDefaultSolutionTapeFilename(nr); - sprintf(basename, "%03d.sln", nr); - filename_sln = getPath2(getSolutionTapeDir(), basename); + if (!fileExists(filename)) + { + char *filename2 = getSokobanSolutionTapeFilename(nr); - if (fileExists(filename_sln)) - return filename_sln; + if (fileExists(filename2)) + return filename2; } return filename;