moved getting different solution tape filenames to separate functions
authorHolger Schemel <info@artsoft.org>
Mon, 23 Aug 2021 10:14:24 +0000 (12:14 +0200)
committerHolger Schemel <info@artsoft.org>
Mon, 23 Aug 2021 10:14:24 +0000 (12:14 +0200)
src/libgame/setup.c
src/libgame/setup.h

index 4bbfba2018fd085a60ee8753c4966f66208182c3..48f967c3b03ee2ff5688501294efc178d3174e25 100644 (file)
@@ -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;
index 0b7a862838f1a5cdff864923d6e39aa845076584..056e0bbb26a87c5b454f810eb979385debf059c5 100644 (file)
@@ -264,6 +264,8 @@ char *setLevelArtworkDir(TreeInfo *);
 char *getProgramMainDataPath(char *, char *);
 char *getProgramConfigFilename(char *);
 char *getTapeFilename(int);
+char *getDefaultSolutionTapeFilename(int);
+char *getSokobanSolutionTapeFilename(int);
 char *getSolutionTapeFilename(int);
 char *getScoreFilename(int);
 char *getScoreCacheFilename(int);