white space changes
[rocksndiamonds.git] / src / files.c
index 6a4c5f62623e4654fcd5441204bae12b8afc3771..889136ff675bfb83d9e5b25c28aea93c08cbcfe4 100644 (file)
                                         CONF_CONTENT_NUM_BYTES : 1)
 
 #define CONF_ELEMENT_BYTE_POS(i)       ((i) * CONF_ELEMENT_NUM_BYTES)
-#define CONF_ELEMENTS_ELEMENT(b,i)     ((b[CONF_ELEMENT_BYTE_POS(i)] << 8) |  \
+#define CONF_ELEMENTS_ELEMENT(b, i)    ((b[CONF_ELEMENT_BYTE_POS(i)] << 8) | \
                                        (b[CONF_ELEMENT_BYTE_POS(i) + 1]))
 
 #define CONF_CONTENT_ELEMENT_POS(c,x,y)        ((c) * CONF_CONTENT_NUM_ELEMENTS +    \
@@ -3713,6 +3713,7 @@ static void CopyNativeLevel_RND_to_EM(struct LevelInfo *level)
   cav->lenses_time             = level->lenses_time;
   cav->magnify_time            = level->magnify_time;
 
+  cav->wind_time = 9999;
   cav->wind_direction =
     map_direction_RND_to_EM(level->wind_direction_initial);
 
@@ -12109,7 +12110,7 @@ static void InitMenuDesignSettings_SpecialPostProcessing(void)
       vp_playfield->width = MIN(vp_playfield->width, vp_playfield->max_width);
 
     if (vp_playfield->max_height != -1)
-      vp_playfield->height = MIN(vp_playfield->height,vp_playfield->max_height);
+      vp_playfield->height = MIN(vp_playfield->height, vp_playfield->max_height);
 
     // adjust playfield position according to specified alignment
 
@@ -12478,7 +12479,9 @@ static void LoadMenuDesignSettingsFromFilename(char *filename)
     {
       { "menu.draw_xoffset.INFO",      &menu.draw_xoffset_info[i]      },
       { "menu.draw_yoffset.INFO",      &menu.draw_yoffset_info[i]      },
-      { "menu.list_size.INFO",         &menu.list_size_info[i]         }
+      { "menu.list_size.INFO",         &menu.list_size_info[i]         },
+      { "menu.list_entry_size.INFO",   &menu.list_entry_size_info[i]   },
+      { "menu.tile_size.INFO",         &menu.tile_size_info[i]         }
     };
 
     for (j = 0; j < ARRAY_SIZE(menu_config); j++)
@@ -12518,6 +12521,7 @@ static void LoadMenuDesignSettingsFromFilename(char *filename)
     struct TokenIntPtrInfo menu_config[] =
     {
       { "menu.left_spacing.INFO",      &menu.left_spacing_info[i]      },
+      { "menu.middle_spacing.INFO",    &menu.middle_spacing_info[i]    },
       { "menu.right_spacing.INFO",     &menu.right_spacing_info[i]     },
       { "menu.top_spacing.INFO",       &menu.top_spacing_info[i]       },
       { "menu.bottom_spacing.INFO",    &menu.bottom_spacing_info[i]    },
@@ -12933,16 +12937,29 @@ static boolean sound_info_listed(struct MusicFileInfo *list, char *basename)
   return music_info_listed_ext(list, basename, TRUE);
 }
 
+static boolean checkLevelSetHasMusic_NoConf(void)
+{
+  int i;
+
+  for (i = leveldir_current->first_level;
+       i <= leveldir_current->last_level; i++)
+    if (levelset.music[level_nr] == MUS_UNDEFINED)
+      return TRUE;
+
+  return FALSE;
+}
+
 void LoadMusicInfo(void)
 {
   char *music_directory = getCustomMusicDirectory_NoConf();
   int num_music = getMusicListSize();
   int num_music_noconf = 0;
   int num_sounds = getSoundListSize();
-  Directory *dir;
+  Directory *dir = NULL;
   DirectoryEntry *dir_entry;
   struct FileInfo *music, *sound;
   struct MusicFileInfo *next, **new;
+  boolean read_music_from_directory = TRUE;
   int i;
 
   while (music_file_info != NULL)
@@ -12991,14 +13008,26 @@ void LoadMusicInfo(void)
     }
   }
 
-  if ((dir = openDirectory(music_directory)) == NULL)
+  // if all levels have game music configured, do not read music from directory
+  if (!checkLevelSetHasMusic_NoConf())
+  {
+    read_music_from_directory = FALSE;
+  }
+  else if (music_directory == NULL)
+  {
+    Warn("cannot find music directory with unconfigured music");
+
+    read_music_from_directory = FALSE;
+  }
+  else if ((dir = openDirectory(music_directory)) == NULL)
   {
     Warn("cannot read music directory '%s'", music_directory);
 
-    return;
+    read_music_from_directory = FALSE;
   }
 
-  while ((dir_entry = readDirectory(dir)) != NULL)     // loop all entries
+  while (read_music_from_directory &&
+        (dir_entry = readDirectory(dir)) != NULL)      // loop all entries
   {
     char *basename = dir_entry->basename;
     boolean music_already_used = FALSE;
@@ -13036,7 +13065,8 @@ void LoadMusicInfo(void)
     num_music_noconf++;
   }
 
-  closeDirectory(dir);
+  if (dir != NULL)
+    closeDirectory(dir);
 
   for (i = 0; i < num_sounds; i++)
   {