OSDN Git Service

Fix select_floor_music().
authorDeskull <deskull@users.sourceforge.jp>
Wed, 12 Feb 2014 14:45:08 +0000 (23:45 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Wed, 12 Feb 2014 14:45:08 +0000 (23:45 +0900)
src/externs.h
src/util.c

index 5ac0f97..9fc63ee 100644 (file)
@@ -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);
index 47313d2..c785afd 100644 (file)
@@ -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)