rnd-20070825-1-src
[rocksndiamonds.git] / src / libgame / setup.c
index 7e621f434192736cce6fe13192d632a79421bb63..39165b06574461dbcfc22e8a97e709612c721c61 100644 (file)
@@ -501,16 +501,33 @@ char *getLevelSetInfoFilename()
 char *getLevelSetTitleMessageFilename(int nr, boolean initial)
 {
   static char *filename = NULL;
+#if 1
+  char *filename_from_artwork;
+#endif
   char basename[32];
 
   sprintf(basename, "%s_%d.txt",
          (initial ? "titlemessage_initial" : "titlemessage"), nr + 1);
 
-  checked_free(filename);
-  filename = getPath2(getCurrentLevelDir(), basename);
+#if 1
+  /* 1st try: look for message file in all relevant graphics directories */
+  if ((filename_from_artwork = getCustomImageFilename(basename)) != NULL)
+    return filename_from_artwork;
+#endif
 
-  if (fileExists(filename))
-    return filename;
+#if 1
+  /* forced custom graphics also override messages in level set directory */
+  if (!setup.override_level_graphics)
+#endif
+  {
+    checked_free(filename);
+
+    /* 2nd try: look for message file in current level set directory */
+    filename = getPath2(getCurrentLevelDir(), basename);
+
+    if (fileExists(filename))
+      return filename;
+  }
 
   return NULL;
 }
@@ -2920,8 +2937,10 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
                                          char *level_directory,
                                          char *directory_name)
 {
+#if 0
   static unsigned long progress_delay = 0;
   unsigned long progress_delay_value = 100;    /* (in milliseconds) */
+#endif
   char *directory_path = getPath2(level_directory, directory_name);
   char *filename = getPath2(directory_path, LEVELINFO_FILENAME);
   SetupFileHash *setup_file_hash;
@@ -3022,9 +3041,14 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
      leveldir_new->last_level : leveldir_new->first_level);
 
 #if 1
+#if 1
+  DrawInitTextExt(leveldir_new->name, 150, FC_YELLOW,
+                 leveldir_new->level_group);
+#else
   if (leveldir_new->level_group ||
       DelayReached(&progress_delay, progress_delay_value))
     DrawInitText(leveldir_new->name, 150, FC_YELLOW);
+#endif
 #else
   DrawInitText(leveldir_new->name, 150, FC_YELLOW);
 #endif
@@ -3471,8 +3495,10 @@ void LoadArtworkInfo()
 void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node,
                                  LevelDirTree *level_node)
 {
+#if 0
   static unsigned long progress_delay = 0;
   unsigned long progress_delay_value = 100;    /* (in milliseconds) */
+#endif
   int type = (*artwork_node)->type;
 
   /* recursively check all level directories for artwork sub-directories */
@@ -3518,6 +3544,9 @@ void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node,
     }
 
 #if 1
+    DrawInitTextExt(level_node->name, 150, FC_YELLOW,
+                   level_node->level_group);
+#else
     if (level_node->level_group ||
        DelayReached(&progress_delay, progress_delay_value))
       DrawInitText(level_node->name, 150, FC_YELLOW);