X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=f30c1d4cb4b91a58a91b24b535cb64a699e1a68a;hp=2124343dccdc0fa54f4dec302ec163e2d971dfe5;hb=b13dc8e30a0c07bea53bf168ae6d1017394d3c22;hpb=fffaec4e69e54c74cf5eea689191e81b8c19b85a diff --git a/src/libgame/sound.c b/src/libgame/sound.c index 2124343d..f30c1d4c 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -1721,23 +1721,39 @@ static void *Load_WAV(char *filename) return snd_info; } -void InitSoundList(struct FileInfo *file_list, int num_list_entries) +struct FileInfo *getCurrentSoundList() { - if (sound_info == NULL) - sound_info = checked_calloc(sizeof(struct ArtworkListInfo)); + return sound_info->file_list; +} - if (sound_info->artwork_list == NULL) - sound_info->artwork_list = - checked_calloc(num_list_entries * sizeof(SoundInfo *)); +void InitSoundList(struct ConfigInfo *config_list, char *config_suffix_list[], + int num_file_list_entries) +{ + int i; + + sound_info = checked_calloc(sizeof(struct ArtworkListInfo)); sound_info->type = ARTWORK_TYPE_SOUNDS; - sound_info->num_list_entries = num_list_entries; - sound_info->file_list = file_list; + + sound_info->num_file_list_entries = num_file_list_entries; + sound_info->num_suffix_list_entries = 0; + for (i=0; config_suffix_list[i] != NULL; i++) + sound_info->num_suffix_list_entries++; + + sound_info->file_list = + getFileListFromConfigList(config_list, config_suffix_list, + num_file_list_entries); + sound_info->suffix_list = config_suffix_list; + + sound_info->artwork_list = + checked_calloc(num_file_list_entries * sizeof(SoundInfo *)); + sound_info->content_list = NULL; + sound_info->load_artwork = Load_WAV; sound_info->free_artwork = FreeSound; - num_sounds = sound_info->num_list_entries; + num_sounds = sound_info->num_file_list_entries; Sound = (SoundInfo **)sound_info->artwork_list; }