X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fsound.c;h=9d894b3c283530171b1223ba1b4df2ad81a068f0;hb=HEAD;hp=2b1ccd873560fe89e5bdee24dc68601eefd25d5f;hpb=c42db18f39053cf2ec85943c37a20b8caa742d09;p=rocksndiamonds.git diff --git a/src/libgame/sound.c b/src/libgame/sound.c index 2b1ccd87..473850dd 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -587,6 +587,14 @@ static void *Load_WAV_or_MOD(char *filename) return NULL; } +static int compareMusicInfo(const void *object1, const void *object2) +{ + const MusicInfo *mi1 = *((MusicInfo **)object1); + const MusicInfo *mi2 = *((MusicInfo **)object2); + + return strcmp(mi1->source_filename, mi2->source_filename); +} + static void LoadCustomMusic_NoConf(void) { static boolean draw_init_text = TRUE; // only draw at startup @@ -664,6 +672,9 @@ static void LoadCustomMusic_NoConf(void) closeDirectory(dir); + // sort music files by filename + qsort(Music_NoConf, num_music_noconf, sizeof(MusicInfo *), compareMusicInfo); + draw_init_text = FALSE; } @@ -679,6 +690,11 @@ int getMusicListSize(void) music_info->num_dynamic_file_list_entries); } +int getMusicListSize_NoConf(void) +{ + return num_music_noconf; +} + struct FileInfo *getSoundListEntry(int pos) { int num_sounds = getSoundListSize();