OSDN Git Service

[Refactor] #38997 detect_*() にplayer_type * 引数を追加 / Added player_type * argument...
authorHourier <hourier@users.sourceforge.jp>
Mon, 6 Jan 2020 11:42:01 +0000 (20:42 +0900)
committerHourier <hourier@users.sourceforge.jp>
Mon, 6 Jan 2020 11:42:01 +0000 (20:42 +0900)
21 files changed:
src/cmd/cmd-activate.c
src/cmd/cmd-quaff.c
src/cmd/cmd-read.c
src/cmd/cmd-usestaff.c
src/cmd/cmd-zaprod.c
src/mind.c
src/mutation.c
src/racial.c
src/realm-arcane.c
src/realm-crusade.c
src/realm-daemon.c
src/realm-death.c
src/realm-hissatsu.c
src/realm-life.c
src/realm-nature.c
src/realm-song.c
src/realm-sorcery.c
src/realm-trump.c
src/spells.h
src/spells2.c
src/wizard2.c

index d3fb307..a46841c 100644 (file)
@@ -1453,14 +1453,14 @@ bool activate_artifact(player_type *user_ptr, object_type *o_ptr)
        {
                msg_print(_("白く明るく輝いている...", "It glows bright white..."));
                msg_print(_("心にイメージが浮かんできた...", "An image forms in your mind..."));
-               detect_all(DETECT_RAD_DEFAULT);
+               detect_all(user_ptr, DETECT_RAD_DEFAULT);
                break;
        }
 
        case ACT_DETECT_XTRA:
        {
                msg_print(_("明るく輝いている...", "It glows brightly..."));
-               detect_all(DETECT_RAD_DEFAULT);
+               detect_all(user_ptr, DETECT_RAD_DEFAULT);
                probing(user_ptr);
                identify_fully(FALSE);
                break;
@@ -1560,8 +1560,8 @@ bool activate_artifact(player_type *user_ptr, object_type *o_ptr)
                take_hit(user_ptr, DAMAGE_LOSELIFE, damroll(3, 8), _("審判の宝石", "the Jewel of Judgement"), -1);
 
                (void)detect_traps(user_ptr, DETECT_RAD_DEFAULT, TRUE);
-               (void)detect_doors(DETECT_RAD_DEFAULT);
-               (void)detect_stairs(DETECT_RAD_DEFAULT);
+               (void)detect_doors(user_ptr, DETECT_RAD_DEFAULT);
+               (void)detect_stairs(user_ptr, DETECT_RAD_DEFAULT);
 
                if (get_check(_("帰還の力を使いますか?", "Activate recall? ")))
                {
@@ -1670,8 +1670,8 @@ bool activate_artifact(player_type *user_ptr, object_type *o_ptr)
 
        case ACT_DETECT_ALL_MONS:
        {
-               (void)detect_monsters_invis(255);
-               (void)detect_monsters_normal(255);
+               (void)detect_monsters_invis(user_ptr, 255);
+               (void)detect_monsters_normal(user_ptr, 255);
                break;
        }
 
index 2d15f45..b73ce99 100644 (file)
@@ -34,6 +34,7 @@
 /*!
  * @brief 薬を飲むコマンドのサブルーチン /
  * Quaff a potion (from the pack or the floor)
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param item 飲む薬オブジェクトの所持品ID
  * @return なし
  */
@@ -394,11 +395,11 @@ void exe_quaff_potion(player_type *creature_ptr, INVENTORY_IDX item)
                        (void)do_inc_stat(creature_ptr, A_INT);
                        (void)do_inc_stat(creature_ptr, A_WIS);
                        (void)detect_traps(creature_ptr, DETECT_RAD_DEFAULT, TRUE);
-                       (void)detect_doors(DETECT_RAD_DEFAULT);
-                       (void)detect_stairs(DETECT_RAD_DEFAULT);
-                       (void)detect_treasure(DETECT_RAD_DEFAULT);
+                       (void)detect_doors(creature_ptr, DETECT_RAD_DEFAULT);
+                       (void)detect_stairs(creature_ptr, DETECT_RAD_DEFAULT);
+                       (void)detect_treasure(creature_ptr, DETECT_RAD_DEFAULT);
                        (void)detect_objects_gold(creature_ptr, DETECT_RAD_DEFAULT);
-                       (void)detect_objects_normal(DETECT_RAD_DEFAULT);
+                       (void)detect_objects_normal(creature_ptr, DETECT_RAD_DEFAULT);
                        identify_pack(creature_ptr);
                        self_knowledge(creature_ptr);
                        ident = TRUE;
index b73317a..75215ff 100644 (file)
@@ -37,6 +37,7 @@
 /*!
  * @brief 巻物を読むコマンドのサブルーチン
  * Read a scroll (from the pack or floor).
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param item 読むオブジェクトの所持品ID
  * @param known 判明済ならばTRUE
  * @return なし
@@ -289,14 +290,14 @@ void exe_read(player_type *creature_ptr, INVENTORY_IDX item, bool known)
 
                case SV_SCROLL_DETECT_GOLD:
                {
-                       if (detect_treasure(DETECT_RAD_DEFAULT)) ident = TRUE;
+                       if (detect_treasure(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
                        if (detect_objects_gold(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
                        break;
                }
 
                case SV_SCROLL_DETECT_ITEM:
                {
-                       if (detect_objects_normal(DETECT_RAD_DEFAULT)) ident = TRUE;
+                       if (detect_objects_normal(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
                        break;
                }
 
@@ -308,14 +309,14 @@ void exe_read(player_type *creature_ptr, INVENTORY_IDX item, bool known)
 
                case SV_SCROLL_DETECT_DOOR:
                {
-                       if (detect_doors(DETECT_RAD_DEFAULT)) ident = TRUE;
-                       if (detect_stairs(DETECT_RAD_DEFAULT)) ident = TRUE;
+                       if (detect_doors(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
+                       if (detect_stairs(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
                        break;
                }
 
                case SV_SCROLL_DETECT_INVIS:
                {
-                       if (detect_monsters_invis(DETECT_RAD_DEFAULT)) ident = TRUE;
+                       if (detect_monsters_invis(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
                        break;
                }
 
index dcd06f6..adc789d 100644 (file)
@@ -21,6 +21,7 @@
 
 /*!
 * @brief 杖の効果を発動する
+* @param creature_ptr プレーヤーへの参照ポインタ
 * @param sval オブジェクトのsval
 * @param use_charge 使用回数を消費したかどうかを返す参照ポインタ
 * @param powerful 強力発動上の処理ならばTRUE
@@ -121,14 +122,14 @@ int staff_effect(player_type *creature_ptr, OBJECT_SUBTYPE_VALUE sval, bool *use
 
                case SV_STAFF_DETECT_GOLD:
                {
-                       if (detect_treasure(detect_rad)) ident = TRUE;
+                       if (detect_treasure(creature_ptr, detect_rad)) ident = TRUE;
                        if (detect_objects_gold(creature_ptr, detect_rad)) ident = TRUE;
                        break;
                }
 
                case SV_STAFF_DETECT_ITEM:
                {
-                       if (detect_objects_normal(detect_rad)) ident = TRUE;
+                       if (detect_objects_normal(creature_ptr, detect_rad)) ident = TRUE;
                        break;
                }
 
@@ -140,20 +141,20 @@ int staff_effect(player_type *creature_ptr, OBJECT_SUBTYPE_VALUE sval, bool *use
 
                case SV_STAFF_DETECT_DOOR:
                {
-                       if (detect_doors(detect_rad)) ident = TRUE;
-                       if (detect_stairs(detect_rad)) ident = TRUE;
+                       if (detect_doors(creature_ptr, detect_rad)) ident = TRUE;
+                       if (detect_stairs(creature_ptr, detect_rad)) ident = TRUE;
                        break;
                }
 
                case SV_STAFF_DETECT_INVIS:
                {
-                       if (detect_monsters_invis(detect_rad)) ident = TRUE;
+                       if (detect_monsters_invis(creature_ptr, detect_rad)) ident = TRUE;
                        break;
                }
 
                case SV_STAFF_DETECT_EVIL:
                {
-                       if (detect_monsters_evil(detect_rad)) ident = TRUE;
+                       if (detect_monsters_evil(creature_ptr, detect_rad)) ident = TRUE;
                        break;
                }
 
index f8bf942..80a1d9f 100644 (file)
@@ -18,6 +18,7 @@
 
 /*!
  * @brief ロッドの効果を発動する
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param sval オブジェクトのsval
  * @param dir 発動目標の方向ID
  * @param use_charge チャージを消費したかどうかを返す参照ポインタ
@@ -46,8 +47,8 @@ int rod_effect(player_type *creature_ptr, OBJECT_SUBTYPE_VALUE sval, DIRECTION d
 
        case SV_ROD_DETECT_DOOR:
        {
-               if (detect_doors(detect_rad)) ident = TRUE;
-               if (detect_stairs(detect_rad)) ident = TRUE;
+               if (detect_doors(creature_ptr, detect_rad)) ident = TRUE;
+               if (detect_stairs(creature_ptr, detect_rad)) ident = TRUE;
                break;
        }
 
@@ -85,7 +86,7 @@ int rod_effect(player_type *creature_ptr, OBJECT_SUBTYPE_VALUE sval, DIRECTION d
 
        case SV_ROD_DETECTION:
        {
-               detect_all(detect_rad);
+               detect_all(creature_ptr, detect_rad);
                ident = TRUE;
                break;
        }
index 1741582..5e57904 100644 (file)
@@ -1046,16 +1046,16 @@ static bool cast_mindcrafter_spell(player_type *caster_ptr, int spell)
 
                if (plev < 30)
                {
-                       b = detect_monsters_normal(DETECT_RAD_DEFAULT);
-                       if (plev > 14) b |= detect_monsters_invis(DETECT_RAD_DEFAULT);
+                       b = detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
+                       if (plev > 14) b |= detect_monsters_invis(caster_ptr, DETECT_RAD_DEFAULT);
                        if (plev > 4)  {
                                b |= detect_traps(caster_ptr, DETECT_RAD_DEFAULT, TRUE);
-                               b |= detect_doors(DETECT_RAD_DEFAULT);
+                               b |= detect_doors(caster_ptr, DETECT_RAD_DEFAULT);
                        }
                }
                else
                {
-                       b = detect_all(DETECT_RAD_DEFAULT);
+                       b = detect_all(caster_ptr, DETECT_RAD_DEFAULT);
                }
 
                if ((plev > 24) && (plev < 40))
@@ -1325,8 +1325,8 @@ static bool cast_mirror_spell(player_type *caster_ptr, int spell)
                /* mirror of seeing */
        case 0:
                tmp = is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x]) ? 4 : 0;
-               if (plev + tmp > 4)detect_monsters_normal(DETECT_RAD_DEFAULT);
-               if (plev + tmp > 18)detect_monsters_invis(DETECT_RAD_DEFAULT);
+               if (plev + tmp > 4)detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
+               if (plev + tmp > 18)detect_monsters_invis(caster_ptr, DETECT_RAD_DEFAULT);
                if (plev + tmp > 28)set_tim_esp(caster_ptr, (TIME_EFFECT)plev, FALSE);
                if (plev + tmp > 38)map_area(caster_ptr, DETECT_RAD_MAP);
                if (tmp == 0 && plev < 5) {
@@ -1471,7 +1471,7 @@ static bool cast_berserk_spell(player_type *caster_ptr, int spell)
        switch (spell)
        {
        case 0:
-               detect_monsters_mind(DETECT_RAD_DEFAULT);
+               detect_monsters_mind(caster_ptr, DETECT_RAD_DEFAULT);
                break;
        case 1:
        {
@@ -1532,6 +1532,7 @@ static bool cast_berserk_spell(player_type *caster_ptr, int spell)
 /*!
  * @brief 忍術の発動 /
  * do_cmd_cast calls this function if the player's class is 'ninja'.
+ * @param caster_ptr プレーヤーへの参照ポインタ
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
@@ -1552,16 +1553,16 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
                {
                        wiz_lite(caster_ptr, TRUE);
                }
-               detect_monsters_normal(DETECT_RAD_DEFAULT);
+               detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
                if (plev > 4)
                {
                        detect_traps(caster_ptr, DETECT_RAD_DEFAULT, TRUE);
-                       detect_doors(DETECT_RAD_DEFAULT);
-                       detect_stairs(DETECT_RAD_DEFAULT);
+                       detect_doors(caster_ptr, DETECT_RAD_DEFAULT);
+                       detect_stairs(caster_ptr, DETECT_RAD_DEFAULT);
                }
                if (plev > 14)
                {
-                       detect_objects_normal(DETECT_RAD_DEFAULT);
+                       detect_objects_normal(caster_ptr, DETECT_RAD_DEFAULT);
                }
                break;
        case 2:
index 24c89b4..6eed30e 100644 (file)
@@ -2083,6 +2083,7 @@ int calc_mutant_regenerate_mod(player_type *creature_ptr)
 
 /*!
  * @brief 突然変異のレイシャル効果実装
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param power 発動させる突然変異レイシャルのID
  * @return レイシャルを実行した場合TRUE、キャンセルした場合FALSEを返す
  */
@@ -2141,12 +2142,12 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
 
                case MUT1_SMELL_MET:
                        stop_mouth(creature_ptr);
-                       (void)detect_treasure(DETECT_RAD_DEFAULT);
+                       (void)detect_treasure(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case MUT1_SMELL_MON:
                        stop_mouth(creature_ptr);
-                       (void)detect_monsters_normal(DETECT_RAD_DEFAULT);
+                       (void)detect_monsters_normal(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case MUT1_BLINK:
index 9de05e6..3f0ee44 100644 (file)
@@ -380,6 +380,7 @@ static int racial_aux(player_type *creature_ptr, power_desc_type *pd_ptr)
 
 /*!
  * @brief レイシャル・パワー発動処理
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param command 発動するレイシャルのID
  * @return 処理を実際に実行した場合はTRUE、キャンセルした場合FALSEを返す。
  */
@@ -650,8 +651,8 @@ static bool exe_racial_power(player_type *creature_ptr, s32b command)
                case RACE_DWARF:
                        msg_print(_("周囲を調べた。", "You examine your surroundings."));
                        (void)detect_traps(creature_ptr, DETECT_RAD_DEFAULT, TRUE);
-                       (void)detect_doors(DETECT_RAD_DEFAULT);
-                       (void)detect_stairs(DETECT_RAD_DEFAULT);
+                       (void)detect_doors(creature_ptr, DETECT_RAD_DEFAULT);
+                       (void)detect_stairs(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case RACE_HOBBIT:
@@ -739,8 +740,8 @@ static bool exe_racial_power(player_type *creature_ptr, s32b command)
                case RACE_NIBELUNG:
                        msg_print(_("周囲を調査した。", "You examine your surroundings."));
                        (void)detect_traps(creature_ptr, DETECT_RAD_DEFAULT, TRUE);
-                       (void)detect_doors(DETECT_RAD_DEFAULT);
-                       (void)detect_stairs(DETECT_RAD_DEFAULT);
+                       (void)detect_doors(creature_ptr, DETECT_RAD_DEFAULT);
+                       (void)detect_stairs(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case RACE_DARK_ELF:
index 7375077..52b343e 100644 (file)
@@ -15,6 +15,7 @@
 
 /*!
 * @brief 秘術領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -75,7 +76,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_monsters_invis(rad);
+                               detect_monsters_invis(caster_ptr, rad);
                        }
                }
                break;
@@ -91,7 +92,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_monsters_normal(rad);
+                               detect_monsters_normal(caster_ptr, rad);
                        }
                }
                break;
@@ -169,8 +170,8 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
                        if (cast)
                        {
                                detect_traps(caster_ptr, rad, TRUE);
-                               detect_doors(rad);
-                               detect_stairs(rad);
+                               detect_doors(caster_ptr, rad);
+                               detect_stairs(caster_ptr, rad);
                        }
                }
                break;
@@ -198,7 +199,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_treasure(rad);
+                               detect_treasure(caster_ptr, rad);
                                detect_objects_gold(caster_ptr, rad);
                        }
                }
@@ -215,7 +216,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_objects_magic(rad);
+                               detect_objects_magic(caster_ptr, rad);
                        }
                }
                break;
@@ -231,7 +232,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_objects_normal(rad);
+                               detect_objects_normal(caster_ptr, rad);
                        }
                }
                break;
@@ -510,7 +511,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_all(rad);
+                               detect_all(caster_ptr, rad);
                        }
                }
                break;
index 05155db..f594428 100644 (file)
@@ -17,6 +17,7 @@
 
 /*!
 * @brief 破邪領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -56,7 +57,7 @@ concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mod
                        if (info) return info_radius(rad);
                        if (cast)
                        {
-                               detect_monsters_evil(rad);
+                               detect_monsters_evil(caster_ptr, rad);
                        }
                }
                break;
index 94796ea..1f780da 100644 (file)
@@ -16,6 +16,7 @@
 
 /*!
 * @brief 悪魔領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -62,7 +63,7 @@ concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_monsters_nonliving(rad);
+                               detect_monsters_nonliving(caster_ptr, rad);
                        }
                }
                break;
index d5bdff3..1aca17f 100644 (file)
@@ -14,6 +14,7 @@
 
 /*!
 * @brief 暗黒領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -41,7 +42,7 @@ concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               detect_monsters_nonliving(rad);
+                               detect_monsters_nonliving(caster_ptr, rad);
                        }
                }
                break;
@@ -101,7 +102,7 @@ concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               detect_monsters_evil(rad);
+                               detect_monsters_evil(caster_ptr, rad);
                        }
                }
                break;
index 37a8c9e..2331bbd 100644 (file)
@@ -24,6 +24,7 @@
 
 /*!
 * @brief 剣術の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 剣術ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -135,7 +136,7 @@ concptr do_hissatsu_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mo
 
                if (cast)
                {
-                       detect_monsters_mind(DETECT_RAD_DEFAULT);
+                       detect_monsters_mind(caster_ptr, DETECT_RAD_DEFAULT);
                }
                break;
 
index 2d2ba9a..723b775 100644 (file)
@@ -10,6 +10,7 @@
 
 /*!
 * @brief 生命領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -97,8 +98,8 @@ concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                detect_traps(caster_ptr, rad, TRUE);
-                               detect_doors(rad);
-                               detect_stairs(rad);
+                               detect_doors(caster_ptr, rad);
+                               detect_stairs(caster_ptr, rad);
                        }
                }
                break;
@@ -389,7 +390,7 @@ concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               detect_all(rad);
+                               detect_all(caster_ptr, rad);
                        }
                }
                break;
index a0175f9..aa8e5dd 100644 (file)
@@ -16,6 +16,7 @@
 
 /*!
 * @brief 自然領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -43,7 +44,7 @@ concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
 
                        if (cast)
                        {
-                               detect_monsters_normal(rad);
+                               detect_monsters_normal(caster_ptr, rad);
                        }
                }
                break;
@@ -82,8 +83,8 @@ concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
                        if (cast)
                        {
                                detect_traps(caster_ptr, rad, TRUE);
-                               detect_doors(rad);
-                               detect_stairs(rad);
+                               detect_doors(caster_ptr, rad);
+                               detect_stairs(caster_ptr, rad);
                        }
                }
                break;
@@ -240,9 +241,9 @@ concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode
                        {
                                map_area(caster_ptr, rad1);
                                detect_traps(caster_ptr, rad2, TRUE);
-                               detect_doors(rad2);
-                               detect_stairs(rad2);
-                               detect_monsters_normal(rad2);
+                               detect_doors(caster_ptr, rad2);
+                               detect_stairs(caster_ptr, rad2);
+                               detect_monsters_normal(caster_ptr, rad2);
                        }
                }
                break;
index 977e516..c420949 100644 (file)
@@ -35,6 +35,7 @@ static void start_singing(player_type *caster_ptr, SPELL_IDX spell, MAGIC_NUM1 s
 
 /*!
 * @brief 歌の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 歌ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
@@ -295,22 +296,22 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
                                        /* There are too many hidden treasure.  So... */
                                        /* detect_treasure(rad); */
                                        detect_objects_gold(caster_ptr, rad);
-                                       detect_objects_normal(rad);
+                                       detect_objects_normal(caster_ptr, rad);
 
                                        if (plev > 24 && count < 11)
                                                SINGING_COUNT(caster_ptr) = count + 1;
                                }
                                if (count >= 3)
                                {
-                                       detect_monsters_invis(rad);
-                                       detect_monsters_normal(rad);
+                                       detect_monsters_invis(caster_ptr, rad);
+                                       detect_monsters_normal(caster_ptr, rad);
 
                                        if (plev > 19 && count < A_MAX)
                                                SINGING_COUNT(caster_ptr) = count + 1;
                                }
                                detect_traps(caster_ptr, rad, TRUE);
-                               detect_doors(rad);
-                               detect_stairs(rad);
+                               detect_doors(caster_ptr, rad);
+                               detect_stairs(caster_ptr, rad);
 
                                if (plev > 14 && count < 3)
                                        SINGING_COUNT(caster_ptr) = count + 1;
index d05c820..d3af297 100644 (file)
@@ -13,6 +13,7 @@
 
 /*!
 * @brief 仙術領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -40,7 +41,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mod
 
                        if (cast)
                        {
-                               detect_monsters_normal(rad);
+                               detect_monsters_normal(caster_ptr, rad);
                        }
                }
                break;
@@ -73,8 +74,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mod
                        if (cast)
                        {
                                detect_traps(caster_ptr, rad, TRUE);
-                               detect_doors(rad);
-                               detect_stairs(rad);
+                               detect_doors(caster_ptr, rad);
+                               detect_stairs(caster_ptr, rad);
                        }
                }
                break;
@@ -274,7 +275,7 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mod
 
                        if (cast)
                        {
-                               detect_all(rad);
+                               detect_all(caster_ptr, rad);
                        }
                }
                break;
@@ -302,8 +303,8 @@ concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mod
 
                        if (cast)
                        {
-                               detect_objects_normal(rad);
-                               detect_treasure(rad);
+                               detect_objects_normal(caster_ptr, rad);
+                               detect_treasure(caster_ptr, rad);
                                detect_objects_gold(caster_ptr, rad);
                        }
                }
index c3ae2e4..69837d8 100644 (file)
@@ -14,6 +14,7 @@
 
 /*!
 * @brief トランプ領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
 * @param spell 魔法ID
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
@@ -485,7 +486,7 @@ concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               detect_all(rad);
+                               detect_all(caster_ptr, rad);
                        }
                }
                break;
index faf7f11..bf509be 100644 (file)
@@ -157,20 +157,20 @@ extern concptr spell_category_name(OBJECT_TYPE_VALUE tval);
 
 /* spells2.c */
 extern bool detect_traps(player_type *caster_ptr, POSITION range, bool known);
-extern bool detect_doors(POSITION range);
-extern bool detect_stairs(POSITION range);
-extern bool detect_treasure(POSITION range);
+extern bool detect_doors(player_type *caster_ptr, POSITION range);
+extern bool detect_stairs(player_type *caster_ptr, POSITION range);
+extern bool detect_treasure(player_type *caster_ptr, POSITION range);
 extern bool detect_objects_gold(player_type *caster_ptr, POSITION range);
-extern bool detect_objects_normal(POSITION range);
-extern bool detect_objects_magic(POSITION range);
-extern bool detect_monsters_normal(POSITION range);
-extern bool detect_monsters_invis(POSITION range);
-extern bool detect_monsters_evil(POSITION range);
-extern bool detect_monsters_xxx(POSITION range, u32b match_flag);
-extern bool detect_monsters_string(POSITION range, concptr);
-extern bool detect_monsters_nonliving(POSITION range);
-extern bool detect_monsters_mind(POSITION range);
-extern bool detect_all(POSITION range);
+extern bool detect_objects_normal(player_type *caster_ptr, POSITION range);
+extern bool detect_objects_magic(player_type *caster_ptr, POSITION range);
+extern bool detect_monsters_normal(player_type *caster_ptr, POSITION range);
+extern bool detect_monsters_invis(player_type *caster_ptr, POSITION range);
+extern bool detect_monsters_evil(player_type *caster_ptr, POSITION range);
+extern bool detect_monsters_xxx(player_type *caster_ptr, POSITION range, u32b match_flag);
+extern bool detect_monsters_string(player_type *caster_ptr, POSITION range, concptr);
+extern bool detect_monsters_nonliving(player_type *caster_ptr, POSITION range);
+extern bool detect_monsters_mind(player_type *caster_ptr, POSITION range);
+extern bool detect_all(player_type *caster_ptr, POSITION range);
 extern bool wall_stone(void);
 extern bool speed_monsters(void);
 extern bool slow_monsters(int power);
index 3aa43fd..43ec8f4 100644 (file)
@@ -139,11 +139,11 @@ bool detect_traps(player_type *caster_ptr, POSITION range, bool known)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_doors(POSITION range)
+bool detect_doors(player_type *caster_ptr, POSITION range)
 {
-       bool detect = detect_feat_flag(p_ptr, range, FF_DOOR, TRUE);
+       bool detect = detect_feat_flag(caster_ptr, range, FF_DOOR, TRUE);
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 0) detect = FALSE;
        if (detect)
        {
                msg_print(_("ドアの存在を感じとった!", "You sense the presence of doors!"));
@@ -159,11 +159,11 @@ bool detect_doors(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_stairs(POSITION range)
+bool detect_stairs(player_type *caster_ptr, POSITION range)
 {
-       bool detect = detect_feat_flag(p_ptr, range, FF_STAIRS, TRUE);
+       bool detect = detect_feat_flag(caster_ptr, range, FF_STAIRS, TRUE);
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 0) detect = FALSE;
        if (detect)
        {
                msg_print(_("階段の存在を感じとった!", "You sense the presence of stairs!"));
@@ -179,11 +179,11 @@ bool detect_stairs(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_treasure(POSITION range)
+bool detect_treasure(player_type *caster_ptr, POSITION range)
 {
-       bool detect = detect_feat_flag(p_ptr, range, FF_HAS_GOLD, TRUE);
+       bool detect = detect_feat_flag(caster_ptr, range, FF_HAS_GOLD, TRUE);
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 6) detect = FALSE;
        if (detect)
        {
                msg_print(_("埋蔵された財宝の存在を感じとった!", "You sense the presence of buried treasure!"));
@@ -195,6 +195,7 @@ bool detect_treasure(POSITION range)
 
 /*!
  * @brief プレイヤー周辺のアイテム財宝を感知する / Detect all "gold" objects on the current panel
+ * @param caster_ptr プレーヤーへの参照ポインタ
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
@@ -237,7 +238,7 @@ bool detect_objects_gold(player_type *caster_ptr, POSITION range)
                msg_print(_("財宝の存在を感じとった!", "You sense the presence of treasure!"));
        }
 
-       if (detect_monsters_string(range, "$"))
+       if (detect_monsters_string(caster_ptr, range, "$"))
        {
                detect = TRUE;
        }
@@ -252,7 +253,7 @@ bool detect_objects_gold(player_type *caster_ptr, POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_objects_normal(POSITION range)
+bool detect_objects_normal(player_type *caster_ptr, POSITION range)
 {
        OBJECT_IDX i;
        POSITION y, x;
@@ -260,12 +261,12 @@ bool detect_objects_normal(POSITION range)
 
        bool detect = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
 
        /* Scan objects */
-       for (i = 1; i < p_ptr->current_floor_ptr->o_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->o_max; i++)
        {
-               object_type *o_ptr = &p_ptr->current_floor_ptr->o_list[i];
+               object_type *o_ptr = &caster_ptr->current_floor_ptr->o_list[i];
 
                if (!OBJECT_IS_VALID(o_ptr)) continue;
                if (OBJECT_IS_HELD_MONSTER(o_ptr)) continue;
@@ -274,7 +275,7 @@ bool detect_objects_normal(POSITION range)
                x = o_ptr->ix;
 
                /* Only detect nearby objects */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range2) continue;
 
                /* Detect "real" objects */
                if (o_ptr->tval != TV_GOLD)
@@ -285,13 +286,13 @@ bool detect_objects_normal(POSITION range)
                }
        }
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 6) detect = FALSE;
        if (detect)
        {
                msg_print(_("アイテムの存在を感じとった!", "You sense the presence of objects!"));
        }
 
-       if (detect_monsters_string(range, "!=?|/`"))
+       if (detect_monsters_string(caster_ptr, range, "!=?|/`"))
        {
                detect = TRUE;
        }
@@ -314,7 +315,7 @@ bool detect_objects_normal(POSITION range)
  * It can probably be argued that this function is now too powerful.
  * </pre>
  */
-bool detect_objects_magic(POSITION range)
+bool detect_objects_magic(player_type *caster_ptr, POSITION range)
 {
        OBJECT_TYPE_VALUE tv;
        OBJECT_IDX i;
@@ -322,12 +323,12 @@ bool detect_objects_magic(POSITION range)
 
        bool detect = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
        /* Scan all objects */
-       for (i = 1; i < p_ptr->current_floor_ptr->o_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->o_max; i++)
        {
-               object_type *o_ptr = &p_ptr->current_floor_ptr->o_list[i];
+               object_type *o_ptr = &caster_ptr->current_floor_ptr->o_list[i];
 
                if (!OBJECT_IS_VALID(o_ptr)) continue;
                if (OBJECT_IS_HELD_MONSTER(o_ptr)) continue;
@@ -336,7 +337,7 @@ bool detect_objects_magic(POSITION range)
                x = o_ptr->ix;
 
                /* Only detect nearby objects */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Examine the tval */
                tv = o_ptr->tval;
@@ -389,17 +390,17 @@ bool detect_objects_magic(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_normal(POSITION range)
+bool detect_monsters_normal(player_type *caster_ptr, POSITION range)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
                if (!monster_is_valid(m_ptr)) continue;
 
@@ -407,21 +408,21 @@ bool detect_monsters_normal(POSITION range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect all non-invisible monsters */
-               if (!(r_ptr->flags2 & RF2_INVISIBLE) || p_ptr->see_inv)
+               if (!(r_ptr->flags2 & RF2_INVISIBLE) || caster_ptr->see_inv)
                {
                        /* Repair visibility later */
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 3) flag = FALSE;
        if (flag)
        {
                msg_print(_("モンスターの存在を感じとった!", "You sense the presence of monsters!"));
@@ -437,17 +438,17 @@ bool detect_monsters_normal(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_invis(POSITION range)
+bool detect_monsters_invis(player_type *caster_ptr, POSITION range)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
 
                if (!monster_is_valid(m_ptr)) continue;
@@ -456,27 +457,27 @@ bool detect_monsters_invis(POSITION range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect invisible monsters */
                if (r_ptr->flags2 & RF2_INVISIBLE)
                {
                        /* Update monster recall window */
-                       if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                       if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                        {
-                               p_ptr->window |= (PW_MONSTER);
+                               caster_ptr->window |= (PW_MONSTER);
                        }
 
                        /* Repair visibility later */
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 3) flag = FALSE;
        if (flag)
        {
                msg_print(_("透明な生物の存在を感じとった!", "You sense the presence of invisible creatures!"));
@@ -491,17 +492,17 @@ bool detect_monsters_invis(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_evil(POSITION range)
+bool detect_monsters_evil(player_type *caster_ptr, POSITION range)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
                if (!monster_is_valid(m_ptr)) continue;
 
@@ -509,7 +510,7 @@ bool detect_monsters_evil(POSITION range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect evil monsters */
                if (r_ptr->flags3 & RF3_EVIL)
@@ -520,9 +521,9 @@ bool detect_monsters_evil(POSITION range)
                                r_ptr->r_flags3 |= (RF3_EVIL);
 
                                /* Update monster recall window */
-                               if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                               if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                                {
-                                       p_ptr->window |= (PW_MONSTER);
+                                       caster_ptr->window |= (PW_MONSTER);
                                }
                        }
 
@@ -530,7 +531,7 @@ bool detect_monsters_evil(POSITION range)
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
@@ -549,39 +550,39 @@ bool detect_monsters_evil(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_nonliving(POSITION range)
+bool detect_monsters_nonliving(player_type *caster_ptr, POSITION range)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                if (!monster_is_valid(m_ptr)) continue;
 
                y = m_ptr->fy;
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect non-living monsters */
                if (!monster_living(m_ptr->r_idx))
                {
                        /* Update monster recall window */
-                       if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                       if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                        {
-                               p_ptr->window |= (PW_MONSTER);
+                               caster_ptr->window |= (PW_MONSTER);
                        }
 
                        /* Repair visibility later */
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
@@ -600,17 +601,17 @@ bool detect_monsters_nonliving(POSITION range)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_mind(POSITION range)
+bool detect_monsters_mind(player_type *caster_ptr, POSITION range)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
                if (!monster_is_valid(m_ptr)) continue;
 
@@ -618,22 +619,22 @@ bool detect_monsters_mind(POSITION range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect non-living monsters */
                if (!(r_ptr->flags2 & RF2_EMPTY_MIND))
                {
                        /* Update monster recall window */
-                       if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                       if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                        {
-                               p_ptr->window |= (PW_MONSTER);
+                               caster_ptr->window |= (PW_MONSTER);
                        }
 
                        /* Repair visibility later */
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
@@ -654,17 +655,17 @@ bool detect_monsters_mind(POSITION range)
  * @param Match 対応シンボルの混じったモンスター文字列(複数指定化)
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_string(POSITION range, concptr Match)
+bool detect_monsters_string(player_type *caster_ptr, POSITION range, concptr Match)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
                if (!monster_is_valid(m_ptr)) continue;
 
@@ -672,27 +673,27 @@ bool detect_monsters_string(POSITION range, concptr Match)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect monsters with the same symbol */
                if (my_strchr(Match, r_ptr->d_char))
                {
                        /* Update monster recall window */
-                       if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                       if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                        {
-                               p_ptr->window |= (PW_MONSTER);
+                               caster_ptr->window |= (PW_MONSTER);
                        }
 
                        /* Repair visibility later */
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
 
-       if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+       if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 3) flag = FALSE;
        if (flag)
        {
                msg_print(_("モンスターの存在を感じとった!", "You sense the presence of monsters!"));
@@ -708,18 +709,18 @@ bool detect_monsters_string(POSITION range, concptr Match)
  * @param match_flag 感知フラグ
  * @return 効力があった場合TRUEを返す
  */
-bool detect_monsters_xxx(POSITION range, u32b match_flag)
+bool detect_monsters_xxx(player_type *caster_ptr, POSITION range, u32b match_flag)
 {
        MONSTER_IDX i;
        POSITION y, x;
        bool flag = FALSE;
        concptr desc_monsters = _("変なモンスター", "weird monsters");
 
-       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
+       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range /= 3;
 
-       for (i = 1; i < p_ptr->current_floor_ptr->m_max; i++)
+       for (i = 1; i < caster_ptr->current_floor_ptr->m_max; i++)
        {
-               monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[i];
+               monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
                monster_race *r_ptr = &r_info[m_ptr->r_idx];
                if (!monster_is_valid(m_ptr)) continue;
 
@@ -727,7 +728,7 @@ bool detect_monsters_xxx(POSITION range, u32b match_flag)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
+               if (distance(caster_ptr->y, caster_ptr->x, y, x) > range) continue;
 
                /* Detect evil monsters */
                if (r_ptr->flags3 & (match_flag))
@@ -738,9 +739,9 @@ bool detect_monsters_xxx(POSITION range, u32b match_flag)
                                r_ptr->r_flags3 |= (match_flag);
 
                                /* Update monster recall window */
-                               if (p_ptr->monster_race_idx == m_ptr->r_idx)
+                               if (caster_ptr->monster_race_idx == m_ptr->r_idx)
                                {
-                                       p_ptr->window |= (PW_MONSTER);
+                                       caster_ptr->window |= (PW_MONSTER);
                                }
                        }
 
@@ -748,7 +749,7 @@ bool detect_monsters_xxx(POSITION range, u32b match_flag)
                        repair_monsters = TRUE;
 
                        m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
-                       update_monster(p_ptr, i, FALSE);
+                       update_monster(caster_ptr, i, FALSE);
                        flag = TRUE;
                }
        }
@@ -779,22 +780,22 @@ bool detect_monsters_xxx(POSITION range, u32b match_flag)
  * @param range 効果範囲
  * @return 効力があった場合TRUEを返す
  */
-bool detect_all(POSITION range)
+bool detect_all(player_type *caster_ptr, POSITION range)
 {
        bool detect = FALSE;
 
        /* Detect everything */
-       if (detect_traps(p_ptr, range, TRUE)) detect = TRUE;
-       if (detect_doors(range)) detect = TRUE;
-       if (detect_stairs(range)) detect = TRUE;
+       if (detect_traps(caster_ptr, range, TRUE)) detect = TRUE;
+       if (detect_doors(caster_ptr, range)) detect = TRUE;
+       if (detect_stairs(caster_ptr, range)) detect = TRUE;
 
        /* There are too many hidden treasure.  So... */
        /* if (detect_treasure(range)) detect = TRUE; */
 
-       if (detect_objects_gold(p_ptr, range)) detect = TRUE;
-       if (detect_objects_normal(range)) detect = TRUE;
-       if (detect_monsters_invis(range)) detect = TRUE;
-       if (detect_monsters_normal(range)) detect = TRUE;
+       if (detect_objects_gold(caster_ptr, range)) detect = TRUE;
+       if (detect_objects_normal(caster_ptr, range)) detect = TRUE;
+       if (detect_monsters_invis(caster_ptr, range)) detect = TRUE;
+       if (detect_monsters_normal(caster_ptr, range)) detect = TRUE;
        return (detect);
 }
 
index f19627a..c09d884 100644 (file)
@@ -1706,6 +1706,7 @@ static void do_cmd_dump_options(void)
  * @brief デバッグコマンドを選択する処理のメインルーチン /
  * Ask for and parse a "debug command"
  * The "command_arg" may have been set.
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @return なし
  */
 void do_cmd_debug(player_type *creature_ptr)
@@ -1764,7 +1765,7 @@ void do_cmd_debug(player_type *creature_ptr)
 
                /* Detect everything */
        case 'd':
-               detect_all(DETECT_RAD_ALL * 3);
+               detect_all(creature_ptr, DETECT_RAD_ALL * 3);
                break;
 
                /* Dimension_door */