{
struct TokenIntPtrInfo menu_config[] =
{
- { "menu.draw_xoffset", &menu.draw_xoffset[i] },
- { "menu.draw_yoffset", &menu.draw_yoffset[i] },
- { "menu.list_size", &menu.list_size[i] }
+ { "menu.draw_xoffset", &menu.draw_xoffset[i] },
+ { "menu.draw_yoffset", &menu.draw_yoffset[i] },
+ { "menu.list_size", &menu.list_size[i] },
+ { "menu.list_entry_size", &menu.list_entry_size[i] }
};
for (j = 0; j < ARRAY_SIZE(menu_config); j++)
{
{ "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] }
};
for (j = 0; j < ARRAY_SIZE(menu_config); j++)
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;
}
}
- 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);