rnd-20020907-1-src
[rocksndiamonds.git] / src / init.c
index cef28a3003695c33e83727c29f0e865fe26d322a..4c49a23762f59494ae018bca325f64fafc1ee85d 100644 (file)
@@ -55,6 +55,7 @@ static void InitGadgets(void);
 static void InitElementProperties(void);
 static void InitElementInfo(void);
 static void InitGraphicInfo(void);
+static void InitSoundInfo();
 static void Execute_Debug_Command(char *);
 
 void OpenAll(void)
@@ -175,17 +176,19 @@ void InitNetworkServer()
 
 static void InitImages()
 {
-  InitImageList(image_config, NUM_IMAGE_CONFIG_ENTRIES);
+  InitImageList(image_config, image_config_suffix, NUM_IMAGE_FILES);
 
   /* load custom images */
   ReloadCustomImages();
+
   InitGraphicInfo();
 }
 
 static void InitMixer()
 {
   OpenAudio();
-  InitSoundList(sound_config, NUM_SOUND_CONFIG_ENTRIES);
+
+  InitSoundList(sound_config, sound_config_suffix, NUM_SOUND_FILES);
 
   StartMixer();
 }
@@ -196,8 +199,7 @@ static void InitSound()
   InitReloadSounds(artwork.snd_current->identifier);
   InitReloadMusic(artwork.mus_current->identifier);
 
-  /* initialize sound effect lookup table for element actions */
-  InitGameSound();
+  InitSoundInfo();
 }
 
 static void InitTileClipmasks()
@@ -849,13 +851,15 @@ void InitElementInfo()
   }
 }
 
-void InitGraphicInfo()
+static void InitGraphicInfo()
 {
   int i;
 
-  /* always start with reliable default values */
+  image_files = getCurrentImageList();
+
   for(i=0; i<MAX_GRAPHICS; i++)
   {
+    /* always start with reliable default values */
     graphic_info[i].bitmap = NULL;
     graphic_info[i].src_x = 0;
     graphic_info[i].src_y = 0;
@@ -868,6 +872,14 @@ void InitGraphicInfo()
   }
 }
 
+static void InitSoundInfo()
+{
+  sound_files = getCurrentSoundList();
+
+  /* initialize sound effect lookup table for element actions */
+  InitGameSound();
+}
+
 void InitElementProperties()
 {
   int i, j;
@@ -2069,10 +2081,10 @@ void Execute_Debug_Command(char *command)
     printf("%s\n", getFormattedSetupEntry("sort_priority", "100"));
     printf("\n");
 
-    for (i=0; i<NUM_IMAGE_CONFIG_ENTRIES; i++)
+    for (i=0; image_config[i].token != NULL; i++)
       printf("# %s\n",
             getFormattedSetupEntry(image_config[i].token,
-                                   image_config[i].default_filename));
+                                   image_config[i].value));
   }
   else if (strcmp(command, "create soundsinfo.conf") == 0)
   {
@@ -2086,10 +2098,10 @@ void Execute_Debug_Command(char *command)
     printf("%s\n", getFormattedSetupEntry("sort_priority", "100"));
     printf("\n");
 
-    for (i=0; i<NUM_SOUND_CONFIG_ENTRIES; i++)
+    for (i=0; sound_config[i].token != NULL; i++)
       printf("# %s\n",
             getFormattedSetupEntry(sound_config[i].token,
-                                   sound_config[i].default_filename));
+                                   sound_config[i].value));
   }
   else if (strcmp(command, "create musicinfo.conf") == 0)
   {
@@ -2117,6 +2129,8 @@ void CloseAllAndExit(int exit_value)
   FreeAllMusic();
   CloseAudio();                /* called after freeing sounds (needed for SDL) */
 
+  FreeAllImages();
+
   FreeTileClipmasks();
   for(i=0; i<NUM_BITMAPS; i++)
     FreeBitmap(pix[i]);