rnd-20071012-1-src
[rocksndiamonds.git] / src / init.c
index c0afcfff25956f44b715ee1ae9934ed64aa2af04..5d862c6f3689a860c6e6f51ecd23335a123eba30 100644 (file)
@@ -5384,6 +5384,7 @@ static void InitArtworkConfig()
 static void InitMixer()
 {
   OpenAudio();
+
   StartMixer();
 }
 
@@ -5601,7 +5602,7 @@ static void InitLevelInfo()
   LoadLevelSetup_SeriesInfo();                 /* last played level info */
 }
 
-void InitLevelArtworkInfo()
+static void InitLevelArtworkInfo()
 {
   LoadLevelArtworkInfo();
 }
@@ -5610,8 +5611,30 @@ static void InitImages()
 {
   print_timestamp_init("InitImages");
 
+#if 0
+  printf("::: leveldir_current->identifier == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->identifier);
+  printf("::: leveldir_current->graphics_path == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_path);
+  printf("::: leveldir_current->graphics_set == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_set);
+  printf("::: getLevelArtworkSet(ARTWORK_TYPE_GRAPHICS) == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : LEVELDIR_ARTWORK_SET(leveldir_current, ARTWORK_TYPE_GRAPHICS));
+#endif
+
   setLevelArtworkDir(artwork.gfx_first);
 
+#if 0
+  printf("::: leveldir_current->identifier == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->identifier);
+  printf("::: leveldir_current->graphics_path == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_path);
+  printf("::: leveldir_current->graphics_set == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_set);
+  printf("::: getLevelArtworkSet(ARTWORK_TYPE_GRAPHICS) == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : LEVELDIR_ARTWORK_SET(leveldir_current, ARTWORK_TYPE_GRAPHICS));
+#endif
+
 #if 0
   printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n",
         leveldir_current->identifier,
@@ -5712,6 +5735,8 @@ static boolean CheckArtworkConfigForCustomElements(char *filename)
   SetupFileHash *setup_file_hash;
   boolean redefined_ce_found = FALSE;
 
+  /* !!! CACHE THIS BY USING HASH 'filename' => 'true/false' !!! */
+
   if ((setup_file_hash = loadSetupFileHash(filename)) != NULL)
   {
     BEGIN_HASH_ITERATION(setup_file_hash, itr)
@@ -5746,14 +5771,35 @@ static void InitOverrideArtwork()
     char *filename_base, *filename_local;
     boolean redefined_ce_found = FALSE;
 
+    setLevelArtworkDir(artwork.gfx_first);
+
+#if 0
+    printf("::: leveldir_current->identifier == '%s'\n",
+          leveldir_current == NULL ? "[NULL]" : leveldir_current->identifier);
+    printf("::: leveldir_current->graphics_path == '%s'\n",
+          leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_path);
+    printf("::: leveldir_current->graphics_set == '%s'\n",
+          leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_set);
+    printf("::: getLevelArtworkSet(ARTWORK_TYPE_GRAPHICS) == '%s'\n",
+          leveldir_current == NULL ? "[NULL]" : LEVELDIR_ARTWORK_SET(leveldir_current, ARTWORK_TYPE_GRAPHICS));
+#endif
+
     /* first look for special artwork configured in level series config */
     filename_base = getCustomArtworkLevelConfigFilename(ARTWORK_TYPE_GRAPHICS);
 
+#if 0
+    printf("::: filename_base == '%s'\n", filename_base);
+#endif
+
     if (fileExists(filename_base))
       redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_base);
 
     filename_local = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
 
+#if 0
+    printf("::: filename_local == '%s'\n", filename_local);
+#endif
+
     if (filename_local != NULL && !strEqual(filename_base, filename_local))
       redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_local);
 
@@ -6081,6 +6127,9 @@ void OpenAll()
   InitLevelArtworkInfo();
   print_timestamp_time("InitLevelArtworkInfo");
 
+  InitOverrideArtwork();       /* needs to know current level directory */
+  print_timestamp_time("InitOverrideArtwork");
+
   InitImages();                        /* needs to know current level directory */
   print_timestamp_time("InitImages");