OSDN Git Service

[Refactor] #38997 CHECK_MULTISHADOW() マクロに player_type * 引数を追加.
authordeskull <deskull@users.sourceforge.jp>
Mon, 8 Jul 2019 13:46:28 +0000 (22:46 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Mon, 8 Jul 2019 13:48:05 +0000 (22:48 +0900)
src/melee1.c
src/player-damage.c
src/player-damage.h
src/spells1.c
src/trap.c

index fba82b7..fc36b6c 100644 (file)
@@ -2792,7 +2792,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                case RBE_SUPERHURT:     /* AC軽減あり / Player armor reduces total damage */
                                {
-                                       if (((randint1(rlev*2+300) > (ac+200)) || one_in_(13)) && !CHECK_MULTISHADOW())
+                                       if (((randint1(rlev*2+300) > (ac+200)) || one_in_(13)) && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                int tmp_damage = damage - (damage * ((ac < 150) ? ac : 150) / 250);
                                                msg_print(_("痛恨の一撃!", "It was a critical hit!"));
@@ -2815,7 +2815,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (explode) break;
 
                                        /* Take "poison" effect */
-                                       if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()) && !CHECK_MULTISHADOW())
+                                       if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()) && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                if (set_poisoned(p_ptr, p_ptr->poisoned + randint1(rlev) + 5))
                                                {
@@ -2836,7 +2836,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (explode) break;
 
                                        /* Allow complete resist */
-                                       if (!p_ptr->resist_disen && !CHECK_MULTISHADOW())
+                                       if (!p_ptr->resist_disen && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                /* Apply disenchantment */
                                                if (apply_disenchant(0))
@@ -2859,7 +2859,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Find an item */
                                        for (k = 0; k < 10; k++)
@@ -2916,7 +2916,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        /* Confused monsters cannot steal successfully. -LM-*/
                                        if (MON_CONFUSED(m_ptr)) break;
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        obvious = TRUE;
 
@@ -2976,12 +2976,10 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        /* Confused monsters cannot steal successfully. -LM-*/
                                        if (MON_CONFUSED(m_ptr)) break;
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Saving throw (unless paralyzed) based on dex and level */
-                                       if (!p_ptr->paralyzed &&
-                                           (randint0(100) < (adj_dex_safe[p_ptr->stat_ind[A_DEX]] +
-                                                             p_ptr->lev)))
+                                       if (!p_ptr->paralyzed && (randint0(100) < (adj_dex_safe[p_ptr->stat_ind[A_DEX]] + p_ptr->lev)))
                                        {
                                                /* Saving throw message */
                                                msg_print(_("しかしあわててザックを取り返した!", "You grab hold of your backpack!"));
@@ -3069,7 +3067,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Steal some food */
                                        for (k = 0; k < 10; k++)
@@ -3109,7 +3107,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        o_ptr = &p_ptr->inventory_list[INVEN_LITE];
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Drain fuel */
                                        if ((o_ptr->xtra4 > 0) && (!object_is_fixed_artifact(o_ptr)))
@@ -3177,7 +3175,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Increase "blind" */
-                                       if (!p_ptr->resist_blind && !CHECK_MULTISHADOW())
+                                       if (!p_ptr->resist_blind && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                if (set_blind(p_ptr, p_ptr->blind + 10 + randint1(rlev)))
                                                {
@@ -3204,7 +3202,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Increase "confused" */
-                                       if (!p_ptr->resist_conf && !CHECK_MULTISHADOW())
+                                       if (!p_ptr->resist_conf && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                if (set_confused(p_ptr, p_ptr->confused + 3 + randint1(rlev)))
                                                {
@@ -3225,7 +3223,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Increase "afraid" */
-                                       if (CHECK_MULTISHADOW())
+                                       if (CHECK_MULTISHADOW(p_ptr))
                                        {
                                                /* Do nothing */
                                        }
@@ -3260,7 +3258,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Increase "paralyzed" */
-                                       if (CHECK_MULTISHADOW())
+                                       if (CHECK_MULTISHADOW(p_ptr))
                                        {
                                                /* Do nothing */
                                        }
@@ -3295,7 +3293,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_STR)) obvious = TRUE;
 
                                        break;
@@ -3305,7 +3303,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_INT)) obvious = TRUE;
 
                                        break;
@@ -3315,7 +3313,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_WIS)) obvious = TRUE;
 
                                        break;
@@ -3325,7 +3323,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_DEX)) obvious = TRUE;
 
                                        break;
@@ -3335,7 +3333,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_CON)) obvious = TRUE;
 
                                        break;
@@ -3345,7 +3343,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
                                        if (do_dec_stat(p_ptr, A_CHR)) obvious = TRUE;
 
                                        break;
@@ -3355,7 +3353,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Damage (stats) */
                                        if (do_dec_stat(p_ptr, A_STR)) obvious = TRUE;
@@ -3394,7 +3392,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        (void)drain_exp(p_ptr, d, d / 10, 95);
                                        break;
@@ -3408,7 +3406,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        (void)drain_exp(p_ptr, d, d / 10, 90);
                                        break;
@@ -3422,7 +3420,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        (void)drain_exp(p_ptr, d, d / 10, 75);
                                        break;
@@ -3436,7 +3434,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        (void)drain_exp(p_ptr, d, d / 10, 50);
                                        break;
@@ -3446,7 +3444,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        /* Take "poison" effect */
                                        if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()))
@@ -3474,7 +3472,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                case RBE_TIME:
                                {
                                        if (explode) break;
-                                       if (!p_ptr->resist_time && !CHECK_MULTISHADOW())
+                                       if (!p_ptr->resist_time && !CHECK_MULTISHADOW(p_ptr))
                                        {
                                                switch (randint1(10))
                                                {
@@ -3544,7 +3542,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
 
                                        get_damage += take_hit(p_ptr, DAMAGE_ATTACK, damage, ddesc, -1);
 
-                                       if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
+                                       if (p_ptr->is_dead || CHECK_MULTISHADOW(p_ptr)) break;
 
                                        resist_drain = !drain_exp(p_ptr, d, d / 10, 50);
 
@@ -3597,7 +3595,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                {
                                        obvious = TRUE;
 
-                                       if (CHECK_MULTISHADOW())
+                                       if (CHECK_MULTISHADOW(p_ptr))
                                        {
                                                msg_print(_("攻撃は幻影に命中し、あなたには届かなかった。", "The attack hits Shadow, you are unharmed!"));
                                        }
@@ -3627,7 +3625,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Decrease speed */
-                                       if (CHECK_MULTISHADOW())
+                                       if (CHECK_MULTISHADOW(p_ptr))
                                        {
                                                /* Do nothing */
                                        }
@@ -3648,7 +3646,7 @@ bool make_attack_normal(MONSTER_IDX m_idx)
                                        if (p_ptr->is_dead) break;
 
                                        /* Decrease speed */
-                                       if (p_ptr->resist_sound || CHECK_MULTISHADOW())
+                                       if (p_ptr->resist_sound || CHECK_MULTISHADOW(p_ptr))
                                        {
                                                /* Do nothing */
                                        }
index e270dfb..dc43763 100644 (file)
@@ -47,7 +47,7 @@ int inven_damage(inven_func typ, int perc)
        object_type *o_ptr;
        GAME_TEXT o_name[MAX_NLEN];
 
-       if (CHECK_MULTISHADOW()) return 0;
+       if (CHECK_MULTISHADOW(p_ptr)) return 0;
 
        if (p_ptr->inside_arena) return 0;
 
@@ -211,7 +211,7 @@ HIT_POINT acid_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
        if (p_ptr->resist_acid) dam = (dam + 2) / 3;
        if (double_resist) dam = (dam + 2) / 3;
 
-       if (aura || !CHECK_MULTISHADOW())
+       if (aura || !CHECK_MULTISHADOW(p_ptr))
        {
                if ((!(double_resist || p_ptr->resist_acid)) &&
                        one_in_(HURT_CHANCE))
@@ -261,7 +261,7 @@ HIT_POINT elec_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
        if (p_ptr->resist_elec) dam = (dam + 2) / 3;
        if (double_resist) dam = (dam + 2) / 3;
 
-       if (aura || !CHECK_MULTISHADOW())
+       if (aura || !CHECK_MULTISHADOW(p_ptr))
        {
                if ((!(double_resist || p_ptr->resist_elec)) &&
                        one_in_(HURT_CHANCE))
@@ -309,7 +309,7 @@ HIT_POINT fire_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
        if (p_ptr->resist_fire) dam = (dam + 2) / 3;
        if (double_resist) dam = (dam + 2) / 3;
 
-       if (aura || !CHECK_MULTISHADOW())
+       if (aura || !CHECK_MULTISHADOW(p_ptr))
        {
                if ((!(double_resist || p_ptr->resist_fire)) &&
                        one_in_(HURT_CHANCE))
@@ -356,7 +356,7 @@ HIT_POINT cold_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
        if (p_ptr->resist_cold) dam = (dam + 2) / 3;
        if (double_resist) dam = (dam + 2) / 3;
 
-       if (aura || !CHECK_MULTISHADOW())
+       if (aura || !CHECK_MULTISHADOW(p_ptr))
        {
                if ((!(double_resist || p_ptr->resist_cold)) &&
                        one_in_(HURT_CHANCE))
@@ -428,7 +428,7 @@ int take_hit(player_type *creature_ptr, int damage_type, HIT_POINT damage, concp
                        }
                }
 
-               if (CHECK_MULTISHADOW())
+               if (CHECK_MULTISHADOW(p_ptr))
                {
                        if (damage_type == DAMAGE_FORCE)
                        {
index 440f4ea..e59ab62 100644 (file)
@@ -1,7 +1,7 @@
 #pragma once
 
 /* Multishadow effects is determined by current_world_ptr->game_turn */
-#define CHECK_MULTISHADOW() (p_ptr->multishadow && (current_world_ptr->game_turn & 1))
+#define CHECK_MULTISHADOW(CRE_PTR) ((CRE_PTR)->multishadow && (current_world_ptr->game_turn & 1))
 
 #define DAMAGE_FORCE    1
 #define DAMAGE_GENO     2
index e4e24c0..050b2ba 100644 (file)
@@ -1730,7 +1730,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                                        "%^ss corrupted mind backlashes your attack!")), m_name);
 
                                                /* Saving throw */
-                                               if ((randint0(100 + r_ptr->level / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                                               if ((randint0(100 + r_ptr->level / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                                                {
                                                        msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                                }
@@ -1739,7 +1739,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                        /* Injure +/- confusion */
                                                        monster_desc(killer, m_ptr, MD_WRONGDOER_NAME);
                                                        take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, -1);  /* has already been /3 */
-                                                       if (one_in_(4) && !CHECK_MULTISHADOW())
+                                                       if (one_in_(4) && !CHECK_MULTISHADOW(p_ptr))
                                                        {
                                                                switch (randint1(4))
                                                                {
@@ -1820,7 +1820,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                        (seen ? "%^s's corrupted mind backlashes your attack!" : 
                                                                        "%^ss corrupted mind backlashes your attack!")), m_name);
                                                /* Saving throw */
-                                               if ((randint0(100 + r_ptr->level / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                                               if ((randint0(100 + r_ptr->level / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                                                {
                                                        msg_print(_("あなたは効力を跳ね返した!", "You resist the effects!"));
                                                }
@@ -1828,7 +1828,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                {
                                                        /* Injure + mana drain */
                                                        monster_desc(killer, m_ptr, MD_WRONGDOER_NAME);
-                                                       if (!CHECK_MULTISHADOW())
+                                                       if (!CHECK_MULTISHADOW(p_ptr))
                                                        {
                                                                msg_print(_("超能力パワーを吸いとられた!", "Your psychic energy is drained!"));
                                                                p_ptr->csp -= damroll(5, dam) / 2;
@@ -4158,14 +4158,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        if (p_ptr->resist_pois) dam = (dam + 2) / 3;
                        if (double_resist) dam = (dam + 2) / 3;
 
-                       if ((!(double_resist || p_ptr->resist_pois)) && one_in_(HURT_CHANCE) && !CHECK_MULTISHADOW())
+                       if ((!(double_resist || p_ptr->resist_pois)) && one_in_(HURT_CHANCE) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                do_dec_stat(p_ptr, A_CON);
                        }
 
                        get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
 
-                       if (!(double_resist || p_ptr->resist_pois) && !CHECK_MULTISHADOW())
+                       if (!(double_resist || p_ptr->resist_pois) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                set_poisoned(p_ptr, p_ptr->poisoned + randint0(dam) + 10);
                        }
@@ -4181,7 +4181,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        if (p_ptr->resist_pois) dam = (2 * dam + 2) / 5;
                        if (double_resist) dam = (2 * dam + 2) / 5;
                        get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
-                       if (!(double_resist || p_ptr->resist_pois) && !CHECK_MULTISHADOW())
+                       if (!(double_resist || p_ptr->resist_pois) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                set_poisoned(p_ptr, p_ptr->poisoned + randint0(dam) + 10);
 
@@ -4253,7 +4253,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        if (fuzzy) msg_print(_("何かとても熱いもので攻撃された!", "You are hit by something *HOT*!"));
                        get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
 
-                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW())
+                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW(p_ptr))
                        {
                                int plus_stun = (randint1((dam > 40) ? 35 : (dam * 3 / 4 + 5)));
                                (void)set_stun(p_ptr, p_ptr->stun + plus_stun);
@@ -4278,9 +4278,9 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                        dam *= 6; dam /= (randint1(4) + 7);
                                }
                        }
-                       else if (!CHECK_MULTISHADOW()) drain_exp(p_ptr, 200 + (p_ptr->exp / 100), 200 + (p_ptr->exp / 1000), 75);
+                       else if (!CHECK_MULTISHADOW(p_ptr)) drain_exp(p_ptr, 200 + (p_ptr->exp / 100), 200 + (p_ptr->exp / 1000), 75);
 
-                       if (PRACE_IS_(p_ptr, RACE_SPECTRE) && !CHECK_MULTISHADOW())
+                       if (PRACE_IS_(p_ptr, RACE_SPECTRE) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("気分がよくなった。", "You feel invigorated!"));
                                hp_player(p_ptr, dam / 4);
@@ -4298,7 +4298,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                case GF_WATER:
                {
                        if (fuzzy) msg_print(_("何か湿ったもので攻撃された!", "You are hit by something wet!"));
-                       if (!CHECK_MULTISHADOW())
+                       if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                if (!p_ptr->resist_sound && !p_ptr->resist_water)
                                {
@@ -4330,7 +4330,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                dam *= 6; dam /= (randint1(4) + 7);
                        }
 
-                       if (!CHECK_MULTISHADOW())
+                       if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                if (!p_ptr->resist_conf)
                                {
@@ -4369,7 +4369,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 6; dam /= (randint1(4) + 7);
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_cut(p_ptr,p_ptr->cut + dam);
                        }
@@ -4391,7 +4391,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 5; dam /= (randint1(4) + 7);
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                int plus_stun = (randint1((dam > 90) ? 35 : (dam / 3 + 5)));
                                (void)set_stun(p_ptr, p_ptr->stun + plus_stun);
@@ -4414,7 +4414,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 5; dam /= (randint1(4) + 7);
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_confused(p_ptr, p_ptr->confused + randint1(20) + 10);
                        }
@@ -4430,7 +4430,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 6; dam /= (randint1(4) + 7);
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)apply_disenchant(0);
                        }
@@ -4446,7 +4446,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 6; dam /= (randint1(4) + 7);
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                apply_nexus(m_ptr);
                        }
@@ -4458,7 +4458,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                case GF_FORCE:
                {
                        if (fuzzy) msg_print(_("運動エネルギーで攻撃された!", "You are hit by kinetic force!"));
-                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW())
+                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_stun(p_ptr, p_ptr->stun + randint1(20));
                        }
@@ -4471,7 +4471,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                case GF_ROCKET:
                {
                        if (fuzzy) msg_print(_("爆発があった!", "There is an explosion!"));
-                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW())
+                       if (!p_ptr->resist_sound && !CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_stun(p_ptr, p_ptr->stun + randint1(20));
                        }
@@ -4480,7 +4480,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam /= 2;
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_cut(p_ptr,p_ptr->cut + (dam / 2));
                        }
@@ -4498,7 +4498,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                case GF_INERTIAL:
                {
                        if (fuzzy) msg_print(_("何か遅いもので攻撃された!", "You are hit by something slow!"));
-                       if (!CHECK_MULTISHADOW()) (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
+                       if (!CHECK_MULTISHADOW(p_ptr)) (void)set_slow(p_ptr, p_ptr->slow + randint0(4) + 4, FALSE);
                        get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
@@ -4511,14 +4511,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                dam *= 4; dam /= (randint1(4) + 7);
                        }
-                       else if (!blind && !p_ptr->resist_blind && !CHECK_MULTISHADOW())
+                       else if (!blind && !p_ptr->resist_blind && !CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_blind(p_ptr, p_ptr->blind + randint1(5) + 2);
                        }
 
                        if (PRACE_IS_(p_ptr, RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE))
                        {
-                               if (!CHECK_MULTISHADOW()) msg_print(_("光で肉体が焦がされた!", "The light scorches your flesh!"));
+                               if (!CHECK_MULTISHADOW(p_ptr)) msg_print(_("光で肉体が焦がされた!", "The light scorches your flesh!"));
                                dam *= 2;
                        }
                        else if (PRACE_IS_(p_ptr, RACE_S_FAIRY))
@@ -4529,7 +4529,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        if (p_ptr->wraith_form) dam *= 2;
                        get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
 
-                       if (p_ptr->wraith_form && !CHECK_MULTISHADOW())
+                       if (p_ptr->wraith_form && !CHECK_MULTISHADOW(p_ptr))
                        {
                                p_ptr->wraith_form = 0;
                                msg_print(_("閃光のため非物質的な影の存在でいられなくなった。",
@@ -4553,7 +4553,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
 
                                if (PRACE_IS_(p_ptr, RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE) || p_ptr->wraith_form) dam = 0;
                        }
-                       else if (!blind && !p_ptr->resist_blind && !CHECK_MULTISHADOW())
+                       else if (!blind && !p_ptr->resist_blind && !CHECK_MULTISHADOW(p_ptr))
                        {
                                (void)set_blind(p_ptr, p_ptr->blind + randint1(5) + 2);
                        }
@@ -4571,7 +4571,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                dam /= (randint1(4) + 7);
                                msg_print(_("時間が通り過ぎていく気がする。", "You feel as if time is passing you by."));
                        }
-                       else if (!CHECK_MULTISHADOW())
+                       else if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                switch (randint1(10))
                                {
@@ -4630,7 +4630,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        if (fuzzy) msg_print(_("何か重いもので攻撃された!", "You are hit by something heavy!"));
                                msg_print(_("周辺の重力がゆがんだ。", "Gravity warps around you."));
 
-                       if (!CHECK_MULTISHADOW())
+                       if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                teleport_player(5, TELEPORT_PASSIVE);
                                if (!p_ptr->levitation)
@@ -4743,7 +4743,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                {
                        if (fuzzy) msg_print(_("何か鋭く冷たいもので攻撃された!", "You are hit by something sharp and cold!"));
                        get_damage = cold_dam(dam, killer, monspell, FALSE);
-                       if (!CHECK_MULTISHADOW())
+                       if (!CHECK_MULTISHADOW(p_ptr))
                        {
                                if (!p_ptr->resist_shard)
                                {
@@ -4804,7 +4804,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* Drain mana */
                case GF_DRAIN_MANA:
                {
-                       if (CHECK_MULTISHADOW())
+                       if (CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("攻撃は幻影に命中し、あなたには届かなかった。", "The attack hits Shadow, you are unharmed!"));
                        }
@@ -4863,14 +4863,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* Mind blast */
                case GF_MIND_BLAST:
                {
-                       if ((randint0(100 + rlev / 2) < MAX(5, p_ptr->skill_sav)) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < MAX(5, p_ptr->skill_sav)) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW())
+                               if (!CHECK_MULTISHADOW(p_ptr))
                                {
                                        msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psyonic energy."));
 
@@ -4901,14 +4901,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* Brain smash */
                case GF_BRAIN_SMASH:
                {
-                       if ((randint0(100 + rlev / 2) < MAX(5, p_ptr->skill_sav)) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < MAX(5, p_ptr->skill_sav)) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW())
+                               if (!CHECK_MULTISHADOW(p_ptr))
                                {
                                        msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psyonic energy."));
 
@@ -4922,7 +4922,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                }
 
                                get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
-                               if (!CHECK_MULTISHADOW())
+                               if (!CHECK_MULTISHADOW(p_ptr))
                                {
                                        if (!p_ptr->resist_blind)
                                        {
@@ -4955,14 +4955,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* cause 1 */
                case GF_CAUSE_1:
                {
-                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW()) curse_equipment(15, 0);
+                               if (!CHECK_MULTISHADOW(p_ptr)) curse_equipment(15, 0);
                                get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                        }
                        break;
@@ -4971,14 +4971,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* cause 2 */
                case GF_CAUSE_2:
                {
-                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW()) curse_equipment(25, MIN(rlev / 2 - 15, 5));
+                               if (!CHECK_MULTISHADOW(p_ptr)) curse_equipment(25, MIN(rlev / 2 - 15, 5));
                                get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                        }
                        break;
@@ -4987,14 +4987,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* cause 3 */
                case GF_CAUSE_3:
                {
-                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW()) curse_equipment(33, MIN(rlev / 2 - 15, 15));
+                               if (!CHECK_MULTISHADOW(p_ptr)) curse_equipment(33, MIN(rlev / 2 - 15, 15));
                                get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
                        }
                        break;
@@ -5003,7 +5003,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* cause 4 */
                case GF_CAUSE_4:
                {
-                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !(m_ptr->r_idx == MON_KENSHIROU) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev / 2) < p_ptr->skill_sav) && !(m_ptr->r_idx == MON_KENSHIROU) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし秘孔を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
@@ -5011,7 +5011,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        else
                        {
                                get_damage = take_hit(p_ptr, DAMAGE_ATTACK, dam, killer, monspell);
-                               if (!CHECK_MULTISHADOW()) (void)set_cut(p_ptr,p_ptr->cut + damroll(10, 10));
+                               if (!CHECK_MULTISHADOW(p_ptr)) (void)set_cut(p_ptr,p_ptr->cut + damroll(10, 10));
                        }
                        break;
                }
@@ -5019,14 +5019,14 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                /* Hand of Doom */
                case GF_HAND_DOOM:
                {
-                       if ((randint0(100 + rlev/2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW())
+                       if ((randint0(100 + rlev/2) < p_ptr->skill_sav) && !CHECK_MULTISHADOW(p_ptr))
                        {
                                msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
                                learn_spell(monspell);
                        }
                        else
                        {
-                               if (!CHECK_MULTISHADOW())
+                               if (!CHECK_MULTISHADOW(p_ptr))
                                {
                                        msg_print(_("あなたは命が薄まっていくように感じた!", "You feel your life fade away!"));
                                        curse_equipment(40, 20);
index 0a4063a..04e5081 100644 (file)
@@ -335,7 +335,7 @@ static bool hit_trap_dart(void)
        {
                msg_print(_("小さなダーツが飛んできて刺さった!", "A small dart hits you!"));
                take_hit(p_ptr, DAMAGE_ATTACK, damroll(1, 4), _("ダーツの罠", "a dart trap"), -1);
-               if (!CHECK_MULTISHADOW()) hit = TRUE;
+               if (!CHECK_MULTISHADOW(p_ptr)) hit = TRUE;
        }
        else
        {