OSDN Git Service

[Refactor] #38997 curse_equipment() にplayer_type * 引数を追加 / Added player_type * argume...
authorHourier <hourier@users.sourceforge.jp>
Mon, 13 Jan 2020 13:05:30 +0000 (22:05 +0900)
committerHourier <hourier@users.sourceforge.jp>
Mon, 13 Jan 2020 13:05:30 +0000 (22:05 +0900)
src/monster-status.c
src/object-curse.c
src/object-curse.h
src/spells1.c

index 9f26c4c..85eb59d 100644 (file)
@@ -1169,7 +1169,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                        int count = 0;
 
                        msg_format(_("%^sは恐ろしい血の呪いをあなたにかけた!", "%^s puts a terrible blood curse on you!"), m_name);
-                       curse_equipment(100, 50);
+                       curse_equipment(target_ptr, 100, 50);
 
                        do
                        {
index 7191d9b..9897f49 100644 (file)
@@ -38,17 +38,18 @@ BIT_FLAGS get_curse(int power, object_type *o_ptr)
 
 /*!
  * @brief 装備への呪い付加判定と付加処理
+ * @param owner_ptr プレーヤーへの参照ポインタ
  * @param chance 呪いの基本確率
  * @param heavy_chance さらに重い呪いとなる確率
  * @return なし
  */
-void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance)
+void curse_equipment(player_type *owner_ptr, PERCENTAGE chance, PERCENTAGE heavy_chance)
 {
        bool changed = FALSE;
        int curse_power = 0;
        BIT_FLAGS new_curse;
        BIT_FLAGS oflgs[TR_FLAG_SIZE];
-       object_type *o_ptr = &p_ptr->inventory_list[INVEN_RARM + randint0(12)];
+       object_type *o_ptr = &owner_ptr->inventory_list[INVEN_RARM + randint0(12)];
        GAME_TEXT o_name[MAX_NLEN];
 
        if (randint1(100) > chance) return;
@@ -97,6 +98,6 @@ void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance)
                msg_format(_("悪意に満ちた黒いオーラが%sをとりまいた...", "There is a malignant black aura surrounding %s..."), o_name);
                o_ptr->feeling = FEEL_NONE;
        }
-       p_ptr->update |= (PU_BONUS);
+       owner_ptr->update |= (PU_BONUS);
 }
 
index fb2b0b2..7fcd47b 100644 (file)
@@ -1,2 +1,2 @@
 extern BIT_FLAGS get_curse(int power, object_type *o_ptr);
-extern void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance);
+extern void curse_equipment(player_type *owner_ptr, PERCENTAGE chance, PERCENTAGE heavy_chance);
index a9a553f..1920506 100644 (file)
@@ -4965,7 +4965,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name
                }
                else
                {
-                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(15, 0);
+                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 15, 0);
                        get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                }
                break;
@@ -4981,7 +4981,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name
                }
                else
                {
-                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(25, MIN(rlev / 2 - 15, 5));
+                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 25, MIN(rlev / 2 - 15, 5));
                        get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                }
                break;
@@ -4997,7 +4997,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name
                }
                else
                {
-                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(33, MIN(rlev / 2 - 15, 15));
+                       if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 33, MIN(rlev / 2 - 15, 15));
                        get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                }
                break;
@@ -5032,7 +5032,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name
                        if (!CHECK_MULTISHADOW(target_ptr))
                        {
                                msg_print(_("あなたは命が薄まっていくように感じた!", "You feel your life fade away!"));
-                               curse_equipment(40, 20);
+                               curse_equipment(target_ptr, 40, 20);
                        }
 
                        get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, m_name, monspell);