added functions to get credits filename (not used yet)
authorHolger Schemel <info@artsoft.org>
Mon, 28 Mar 2022 17:42:42 +0000 (19:42 +0200)
committerHolger Schemel <info@artsoft.org>
Mon, 28 Mar 2022 17:42:42 +0000 (19:42 +0200)
src/libgame/setup.c
src/libgame/setup.h
src/libgame/system.h

index 88762de495db29775fd6b422502ce144fd9e5071..ccbd2ed5ce6b36bd27db430584f8e2d31ccf78c7 100644 (file)
@@ -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;
index 36df605ed67b63983b9bf95d3f995321be9f87e2..69a9175e71c82b8b9bee8c7bc72929f99a871fe1 100644 (file)
@@ -279,6 +279,7 @@ char *getHelpAnimFilename(void);
 char *getHelpTextFilename(void);
 char *getLevelSetInfoFilename(void);
 char *getLevelSetTitleMessageFilename(int, boolean);
+char *getCreditsFilename(int, boolean);
 char *getImageFilename(char *);
 char *getCustomImageFilename(char *);
 char *getCustomSoundFilename(char *);
index d3ec73c19792a9c7704dcd0dfa297419d7baa823..8c79f19d692c9a85d6b255b6da3f5f3ffe78f8cd 100644 (file)
 #define SCORES_DIRECTORY       "scores"
 #define DOCS_DIRECTORY         "docs"
 #define ELEMENTS_DIRECTORY     "elements"
+#define CREDITS_DIRECTORY      "credits"
 #define CACHE_DIRECTORY                "cache"
 #define CONF_DIRECTORY         "conf"
 #define NETWORK_DIRECTORY      "network"