OSDN Git Service

[FIx] 未鑑定の罠感知のロッド等を使用して罠が感知されたときに未感知エリアにならない #611
authoriks <iks3@users.noreply.github.com>
Tue, 23 Mar 2021 14:52:10 +0000 (23:52 +0900)
committeriks <iks3@users.noreply.github.com>
Tue, 23 Mar 2021 14:54:52 +0000 (23:54 +0900)
src/spell-kind/spells-detection.cpp

index 6dbd3d5..fda2f8d 100644 (file)
@@ -76,19 +76,23 @@ static bool detect_feat_flag(player_type *caster_ptr, POSITION range, int flag,
  * @param range 効果範囲
  * @param known 感知外範囲を超える警告フラグを立てる場合TRUEを返す
  * @return 効力があった場合TRUEを返す
+ * @detail
+ * 吟遊詩人による感知についてはFALSEを返す
  */
 bool detect_traps(player_type *caster_ptr, POSITION range, bool known)
 {
     bool detect = detect_feat_flag(caster_ptr, range, FF_TRAP, known);
+    if (!known && detect)
+        detect_feat_flag(caster_ptr, range, FF_TRAP, true);
 
-    if (known)
+    if (known || detect)
         caster_ptr->dtrap = TRUE;
 
     if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 0)
         detect = FALSE;
-    if (detect) {
+
+    if (detect)
         msg_print(_("トラップの存在を感じとった!", "You sense the presence of traps!"));
-    }
 
     return detect;
 }