OSDN Git Service

[Refactor] #38997 chg_virtue() に player_type * 引数を追加.
[hengband/hengband.git] / src / melee1.c
index 1f34aa6..5eeeab2 100644 (file)
@@ -1460,7 +1460,7 @@ static void py_attack_aux(POSITION y, POSITION x, bool *fear, bool *mdeath, s16b
                        if ((have_flag(flgs, TR_CHAOTIC)) && one_in_(2))
                        {
                                if (one_in_(10))
-                                       chg_virtue(V_CHANCE, 1);
+                                       chg_virtue(p_ptr, V_CHANCE, 1);
 
                                if (randint1(5) < 3)
                                {
@@ -2147,7 +2147,7 @@ static void py_attack_aux(POSITION y, POSITION x, bool *fear, bool *mdeath, s16b
        {
                if (one_in_(4))
                {
-                       chg_virtue(V_UNLIFE, 1);
+                       chg_virtue(p_ptr, V_UNLIFE, 1);
                }
        }
        /* Mega-Hack -- apply earthquake brand */
@@ -2226,19 +2226,19 @@ bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode)
                if (stormbringer)
                {
                        msg_format(_("黒い刃は強欲に%sを攻撃した!", "Your black blade greedily attacks %s!"), m_name);
-                       chg_virtue(V_INDIVIDUALISM, 1);
-                       chg_virtue(V_HONOUR, -1);
-                       chg_virtue(V_JUSTICE, -1);
-                       chg_virtue(V_COMPASSION, -1);
+                       chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
+                       chg_virtue(p_ptr, V_HONOUR, -1);
+                       chg_virtue(p_ptr, V_JUSTICE, -1);
+                       chg_virtue(p_ptr, V_COMPASSION, -1);
                }
                else if (p_ptr->pclass != CLASS_BERSERKER)
                {
                        if (get_check(_("本当に攻撃しますか?", "Really hit it? ")))
                        {
-                               chg_virtue(V_INDIVIDUALISM, 1);
-                               chg_virtue(V_HONOUR, -1);
-                               chg_virtue(V_JUSTICE, -1);
-                               chg_virtue(V_COMPASSION, -1);
+                               chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
+                               chg_virtue(p_ptr, V_HONOUR, -1);
+                               chg_virtue(p_ptr, V_JUSTICE, -1);
+                               chg_virtue(p_ptr, V_COMPASSION, -1);
                        }
                        else
                        {
@@ -2265,8 +2265,8 @@ bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode)
 
        if (MON_CSLEEP(m_ptr)) /* It is not honorable etc to attack helpless victims */
        {
-               if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_COMPASSION, -1);
-               if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_HONOUR, -1);
+               if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_COMPASSION, -1);
+               if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_HONOUR, -1);
        }
 
        if (p_ptr->migite && p_ptr->hidarite)
@@ -2343,7 +2343,7 @@ bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode)
 
        if ((p_ptr->special_defense & KATA_IAI) && ((mode != HISSATSU_IAI) || mdeath))
        {
-               set_action(ACTION_NONE);
+               set_action(p_ptr, ACTION_NONE);
        }
 
        return mdeath;
@@ -2817,7 +2817,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        /* Take "poison" effect */
                                        if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()) && !CHECK_MULTISHADOW())
                                        {
-                                               if (set_poisoned(p_ptr->poisoned + randint1(rlev) + 5))
+                                               if (set_poisoned(p_ptr, p_ptr->poisoned + randint1(rlev) + 5))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -2948,13 +2948,13 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                                {
                                                        msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
                                                        msg_format(_("$%ld のお金が盗まれた!", "%ld coins were stolen!"), (long)gold);
-                                                       chg_virtue(V_SACRIFICE, 1);
+                                                       chg_virtue(p_ptr, V_SACRIFICE, 1);
                                                }
                                                else
                                                {
                                                        msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
                                                        msg_print(_("お金が全部盗まれた!", "All of your coins were stolen!"));
-                                                       chg_virtue(V_SACRIFICE, 2);
+                                                       chg_virtue(p_ptr, V_SACRIFICE, 2);
                                                }
 
                                                /* Redraw gold */
@@ -3014,7 +3014,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 #else
                                                msg_format("%sour %s (%c) was stolen!", ((o_ptr->number > 1) ? "One of y" : "Y"), o_name, index_to_label(i));
 #endif
-                                               chg_virtue(V_SACRIFICE, 1);
+                                               chg_virtue(p_ptr, V_SACRIFICE, 1);
                                                o_idx = o_pop();
 
                                                /* Success */
@@ -3206,7 +3206,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        /* Increase "confused" */
                                        if (!p_ptr->resist_conf && !CHECK_MULTISHADOW())
                                        {
-                                               if (set_confused(p_ptr->confused + 3 + randint1(rlev)))
+                                               if (set_confused(p_ptr, p_ptr->confused + 3 + randint1(rlev)))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -3241,7 +3241,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        }
                                        else
                                        {
-                                               if (set_afraid(p_ptr->afraid + 3 + randint1(rlev)))
+                                               if (set_afraid(p_ptr, p_ptr->afraid + 3 + randint1(rlev)))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -3278,7 +3278,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        {
                                                if (!p_ptr->paralyzed)
                                                {
-                                                       if (set_paralyzed(3 + randint1(rlev)))
+                                                       if (set_paralyzed(p_ptr, 3 + randint1(rlev)))
                                                        {
                                                                obvious = TRUE;
                                                        }
@@ -3396,7 +3396,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
 
-                                       (void)drain_exp(d, d / 10, 95);
+                                       (void)drain_exp(p_ptr, d, d / 10, 95);
                                        break;
                                }
 
@@ -3410,7 +3410,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
 
-                                       (void)drain_exp(d, d / 10, 90);
+                                       (void)drain_exp(p_ptr, d, d / 10, 90);
                                        break;
                                }
 
@@ -3424,7 +3424,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
 
-                                       (void)drain_exp(d, d / 10, 75);
+                                       (void)drain_exp(p_ptr, d, d / 10, 75);
                                        break;
                                }
 
@@ -3438,7 +3438,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
 
-                                       (void)drain_exp(d, d / 10, 50);
+                                       (void)drain_exp(p_ptr, d, d / 10, 50);
                                        break;
                                }
 
@@ -3451,7 +3451,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        /* Take "poison" effect */
                                        if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()))
                                        {
-                                               if (set_poisoned(p_ptr->poisoned + randint1(rlev) + 5))
+                                               if (set_poisoned(p_ptr, p_ptr->poisoned + randint1(rlev) + 5))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -3482,7 +3482,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                                        {
                                                                if (p_ptr->prace == RACE_ANDROID) break;
                                                                msg_print(_("人生が逆戻りした気がする。", "You feel life has clocked back."));
-                                                               lose_exp(100 + (p_ptr->exp / 100) * MON_DRAIN_LIFE);
+                                                               lose_exp(p_ptr, 100 + (p_ptr->exp / 100) * MON_DRAIN_LIFE);
                                                                break;
                                                        }
 
@@ -3546,7 +3546,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
 
-                                       resist_drain = !drain_exp(d, d / 10, 50);
+                                       resist_drain = !drain_exp(p_ptr, d, d / 10, 50);
 
                                        /* Heal the attacker? */
                                        if (p_ptr->mimic_form)
@@ -3633,7 +3633,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        }
                                        else
                                        {
-                                               if (set_slow((p_ptr->slow + 4 + randint0(rlev / 10)), FALSE))
+                                               if (set_slow(p_ptr, (p_ptr->slow + 4 + randint0(rlev / 10)), FALSE))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -3654,7 +3654,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        }
                                        else
                                        {
-                                               if (set_stun(p_ptr->stun + 10 + randint1(r_ptr->level / 4)))
+                                               if (set_stun(p_ptr, p_ptr->stun + 10 + randint1(r_ptr->level / 4)))
                                                {
                                                        obvious = TRUE;
                                                }
@@ -3702,7 +3702,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                }
 
                                /* Apply the cut */
-                               if (cut_plus) (void)set_cut(p_ptr->cut + cut_plus);
+                               if (cut_plus) (void)set_cut(p_ptr,p_ptr->cut + cut_plus);
                        }
 
                        /* Handle stun */
@@ -3727,7 +3727,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                }
 
                                /* Apply the stun */
-                               if (stun_plus) (void)set_stun(p_ptr->stun + stun_plus);
+                               if (stun_plus) (void)set_stun(p_ptr, p_ptr->stun + stun_plus);
                        }
 
                        if (explode)
@@ -4064,7 +4064,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
 #endif
                project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
-               if (p_ptr->tim_eyeeye) set_tim_eyeeye(p_ptr->tim_eyeeye-5, TRUE);
+               if (p_ptr->tim_eyeeye) set_tim_eyeeye(p_ptr, p_ptr->tim_eyeeye-5, TRUE);
        }
 
        if ((p_ptr->counter || (p_ptr->special_defense & KATA_MUSOU)) && alive && !p_ptr->is_dead && m_ptr->ml && (p_ptr->csp > 7))
@@ -4108,7 +4108,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
        if (p_ptr->special_defense & KATA_IAI)
        {
-               set_action(ACTION_NONE);
+               set_action(p_ptr, ACTION_NONE);
        }
 
        /* Assume we attacked */