OSDN Git Service

[Fix] ダンジョン内クエストBGMに切り替わらない問題を修正
authortaotao54321 <taotao54321@gmail.com>
Wed, 27 Jan 2021 09:53:55 +0000 (18:53 +0900)
committertaotao54321 <taotao54321@gmail.com>
Wed, 27 Jan 2021 09:56:44 +0000 (18:56 +0900)
https://osdn.net/projects/hengband/ticket/41134

src/main/sound-of-music.c

index cfa0575..e508209 100644 (file)
@@ -1,4 +1,5 @@
 #include "main/sound-of-music.h"
+#include "dungeon/quest.h"
 #include "game-option/disturbance-options.h"
 #include "game-option/special-options.h"
 #include "main/music-definitions-table.h"
@@ -75,6 +76,22 @@ void select_floor_music(player_type *player_ptr)
             return;
     }
 
+    // ダンジョン内クエスト用BGMに切り替わらない問題の暫定的な修正
+    // (https://osdn.net/projects/hengband/ticket/41134)
+    //
+    // ワーグクエスト、およびランダムクエストが該当。
+    // これらに突入した際は inside_quest が更新されないようなので、
+    // quest_number() で改めてクエストIDを取得する。
+    //
+    // TODO: 根本的には inside_quest の更新処理を見直すべきではある。
+    {
+        QUEST_IDX id = quest_number(player_ptr, player_ptr->current_floor_ptr->dun_level);
+        if (id != 0) {
+            if (!play_music(TERM_XTRA_MUSIC_QUEST, id))
+                return;
+        }
+    }
+
     if (player_ptr->dungeon_idx) {
         if (player_ptr->feeling == 2) {
             if (!play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2))