From ec159919842c24519e50b6dd06209823c739970e Mon Sep 17 00:00:00 2001 From: Deskull Date: Wed, 12 Feb 2014 23:45:08 +0900 Subject: [PATCH] Fix select_floor_music(). --- src/externs.h | 2 +- src/util.c | 31 ++++++++++++++++++++----------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/externs.h b/src/externs.h index 5ac0f9744..9fc63eec3 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1331,7 +1331,7 @@ extern errr fd_write(int fd, cptr buf, huge n); extern errr fd_close(int fd); extern void flush(void); extern void bell(void); -extern void play_music(int type, int num); +extern errr play_music(int type, int num); extern void select_floor_music(void); extern void sound(int num); extern void move_cursor(int row, int col); diff --git a/src/util.c b/src/util.c index 47313d20d..c785afd3c 100644 --- a/src/util.c +++ b/src/util.c @@ -1711,13 +1711,13 @@ void sound(int val) /* * Hack -- Play a music */ -void play_music(int type, int val) +errr play_music(int type, int val) { /* No sound */ - if (!use_music) return; + if (!use_music) return 1; /* Make a sound (if allowed) */ - Term_xtra(type , val); + return Term_xtra(type , val); } /* @@ -1745,24 +1745,33 @@ void select_floor_music() } else if(p_ptr->inside_quest) { - play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST); + if(play_music(TERM_XTRA_MUSIC_QUEST, p_ptr->inside_quest)) + { + play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_QUEST); + } return; } else if(dungeon_type) { - if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2); - else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1); - else + if(play_music(TERM_XTRA_MUSIC_DUNGEON, dungeon_type)) { - if(dun_level < 40) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW); - else if(dun_level < 80) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED); - else play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_HIGH); + if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2); + else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1); + else + { + if(dun_level < 40) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW); + else if(dun_level < 80) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED); + else play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_HIGH); + } } return; } else if(p_ptr->town_num) { - play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_TOWN); + if(play_music(TERM_XTRA_MUSIC_TOWN, p_ptr->town_num)) + { + play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_TOWN); + } return; } else if(!dun_level) -- 2.11.0