X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=14aacba0b5119f3e297a32258c1c6cfe24b4ed09;hb=c38b8938950533926b72af227c38513fe665a8f6;hp=e44d2dcd14c2471667367191b6b89401d33dc42a;hpb=467fb3a191a20318590ac5681e21bcfefb0eb2ad;p=rocksndiamonds.git diff --git a/src/libgame/sound.c b/src/libgame/sound.c index e44d2dcd..14aacba0 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -1721,23 +1721,40 @@ static void *Load_WAV(char *filename) return snd_info; } -void InitSoundList(struct ArtworkConfigInfo *config_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, + struct ConfigInfo *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->config_list = config_list; - sound_info->file_list = NULL; + + sound_info->num_file_list_entries = num_file_list_entries; + sound_info->num_suffix_list_entries = 0; + for (i=0; config_suffix_list[i].token != 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; }