OSDN Git Service

[Fix] #39587 misc_english_usage_patch.txt に従い英文校正 / Proofreading English in complianc...
[hengband/hengband.git] / src / combat / melee1.c
index d1c18ba..ed39c6a 100644 (file)
@@ -1005,7 +1005,7 @@ static int monster_critical(DICE_NUMBER dice, DICE_SID sides, HIT_POINT dam)
  * Always miss 5% of the time, Always hit 5% of the time.
  * Otherwise, match monster power against player armor.
  */
-static int check_hit(int power, DEPTH level, int stun)
+static int check_hit(player_type *target_ptr, int power, DEPTH level, int stun)
 {
        int i, k, ac;
 
@@ -1014,8 +1014,8 @@ static int check_hit(int power, DEPTH level, int stun)
        if (k < 10) return (k < 5);
        i = (power + (level * 3));
 
-       ac = p_ptr->ac + p_ptr->to_a;
-       if (p_ptr->special_attack & ATTACK_SUIKEN) ac += (p_ptr->lev * 2);
+       ac = target_ptr->ac + target_ptr->to_a;
+       if (target_ptr->special_attack & ATTACK_SUIKEN) ac += (target_ptr->lev * 2);
 
        if ((i > 0) && (randint1(i) > ((ac * 3) / 4))) return (TRUE);
        return (FALSE);
@@ -1099,27 +1099,26 @@ static concptr desc_moan[] =
 * @param message オーラダメージを受けた際のメッセージ
 * @return なし
 */
-static void touch_zap_player_aux(monster_type *m_ptr, bool immune, int flags_offset, int r_flags_offset, u32b aura_flag,
-       HIT_POINT(*dam_func)(HIT_POINT dam, concptr kb_str, int monspell, bool aura), concptr message)
+static void touch_zap_player_aux(monster_type *m_ptr, player_type *touched_ptr, bool immune, int flags_offset, int r_flags_offset, u32b aura_flag,
+       HIT_POINT(*dam_func)(player_type *creature_type, HIT_POINT dam, concptr kb_str, int monspell, bool aura), concptr message)
 {
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
 
-       if ((atoffset(BIT_FLAGS, r_ptr, flags_offset) & aura_flag) && !immune)
-       {
-               GAME_TEXT mon_name[MAX_NLEN];
-               int aura_damage = damroll(1 + (r_ptr->level / 26), 1 + (r_ptr->level / 17));
-
-               monster_desc(mon_name, m_ptr, MD_WRONGDOER_NAME);
-               msg_print(message);
-               dam_func(aura_damage, mon_name, -1, TRUE);
+       if (!(atoffset(BIT_FLAGS, r_ptr, flags_offset) & aura_flag) || immune) return;
+       
+       GAME_TEXT mon_name[MAX_NLEN];
+       int aura_damage = damroll(1 + (r_ptr->level / 26), 1 + (r_ptr->level / 17));
 
-               if (is_original_ap_and_seen(m_ptr))
-               {
-                       atoffset(BIT_FLAGS, r_ptr, r_flags_offset) |= aura_flag;
-               }
+       monster_desc(mon_name, m_ptr, MD_WRONGDOER_NAME);
+       msg_print(message);
+       dam_func(touched_ptr, aura_damage, mon_name, -1, TRUE);
 
-               handle_stuff();
+       if (is_original_ap_and_seen(m_ptr))
+       {
+               atoffset(BIT_FLAGS, r_ptr, r_flags_offset) |= aura_flag;
        }
+
+       handle_stuff(touched_ptr);
 }
 
 /*!
@@ -1130,11 +1129,11 @@ static void touch_zap_player_aux(monster_type *m_ptr, bool immune, int flags_off
 */
 static void touch_zap_player(monster_type *m_ptr, player_type *touched_ptr)
 {
-       touch_zap_player_aux(m_ptr, touched_ptr->immune_fire, offsetof(monster_race, flags2), offsetof(monster_race, r_flags2), RF2_AURA_FIRE,
+       touch_zap_player_aux(m_ptr, touched_ptr, touched_ptr->immune_fire, offsetof(monster_race, flags2), offsetof(monster_race, r_flags2), RF2_AURA_FIRE,
                fire_dam, _("突然とても熱くなった!", "You are suddenly very hot!"));
-       touch_zap_player_aux(m_ptr, touched_ptr->immune_cold, offsetof(monster_race, flags3), offsetof(monster_race, r_flags3), RF3_AURA_COLD,
+       touch_zap_player_aux(m_ptr, touched_ptr, touched_ptr->immune_cold, offsetof(monster_race, flags3), offsetof(monster_race, r_flags3), RF3_AURA_COLD,
                cold_dam, _("突然とても寒くなった!", "You are suddenly very cold!"));
-       touch_zap_player_aux(m_ptr, touched_ptr->immune_elec, offsetof(monster_race, flags2), offsetof(monster_race, r_flags2), RF2_AURA_ELEC,
+       touch_zap_player_aux(m_ptr, touched_ptr, touched_ptr->immune_elec, offsetof(monster_race, flags2), offsetof(monster_race, r_flags2), RF2_AURA_ELEC,
                elec_dam, _("電撃をくらった!", "You get zapped!"));
 }
 
@@ -1238,7 +1237,7 @@ static void natural_attack(MONSTER_IDX m_idx, int attack, bool *fear, bool *mdea
                switch (attack)
                {
                case MUT2_SCOR_TAIL:
-                       project(0, 0, m_ptr->fy, m_ptr->fx, k, GF_POIS, PROJECT_KILL, -1);
+                       project(p_ptr, 0, 0, m_ptr->fy, m_ptr->fx, k, GF_POIS, PROJECT_KILL, -1);
                        *mdeath = (m_ptr->r_idx == 0);
                        break;
                case MUT2_HORNS:
@@ -1977,7 +1976,7 @@ static void py_attack_aux(player_type *attacker_ptr, POSITION y, POSITION x, boo
                                if (!resists_tele)
                                {
                                        msg_format(_("%^sは消えた!", "%^s disappears!"), m_name);
-                                       teleport_away(g_ptr->m_idx, 50, TELEPORT_PASSIVE);
+                                       teleport_away(attacker_ptr, g_ptr->m_idx, 50, TELEPORT_PASSIVE);
                                        num = num_blow + 1; /* Can't hit it anymore! */
                                        *mdeath = TRUE;
                                }
@@ -2024,7 +2023,7 @@ static void py_attack_aux(player_type *attacker_ptr, POSITION y, POSITION x, boo
                                        target_ptr->hold_o_idx = q_ptr->next_o_idx;
                                        q_ptr->next_o_idx = 0;
                                        msg_format(_("%sを奪った。", "You snatched %s."), o_name);
-                                       inven_carry(q_ptr);
+                                       inven_carry(attacker_ptr, q_ptr);
                                }
                        }
                }
@@ -2127,7 +2126,7 @@ static void py_attack_aux(player_type *attacker_ptr, POSITION y, POSITION x, boo
                                if (k < 0) k = 0;
 
                                take_hit(attacker_ptr, DAMAGE_FORCE, k, _("死の大鎌", "Death scythe"), -1);
-                               handle_stuff();
+                               handle_stuff(attacker_ptr);
                        }
                        else
                        {
@@ -2135,6 +2134,7 @@ static void py_attack_aux(player_type *attacker_ptr, POSITION y, POSITION x, boo
                                msg_format(_("ミス! %sにかわされた。", "You miss %s."), m_name);
                        }
                }
+
                backstab = FALSE;
                fuiuchi = FALSE;
        }
@@ -2399,13 +2399,13 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
 
        if (target_ptr->special_defense & KATA_IAI)
        {
-               msg_format(_("相手が襲いかかる前に素早く武器を振るった。", "You took sen, draw and cut in one motion before %s move."), m_name);
+               msg_format(_("相手が襲いかかる前に素早く武器を振るった。", "You took sen, draw and cut in one motion before %s moved."), m_name);
                if (py_attack(target_ptr, m_ptr->fy, m_ptr->fx, HISSATSU_IAI)) return TRUE;
        }
 
        if ((target_ptr->special_defense & NINJA_KAWARIMI) && (randint0(55) < (target_ptr->lev*3/5+20)))
        {
-               if (kawarimi(TRUE)) return TRUE;
+               if (kawarimi(target_ptr, TRUE)) return TRUE;
        }
 
        /* Assume no blink */
@@ -2454,7 +2454,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                ac = target_ptr->ac + target_ptr->to_a;
 
                /* Monster hits player */
-               if (!effect || check_hit(power, rlev, MON_STUNNED(m_ptr)))
+               if (!effect || check_hit(target_ptr, power, rlev, MON_STUNNED(m_ptr)))
                {
                        /* Always disturbing */
                        disturb(target_ptr, TRUE, TRUE);
@@ -3014,7 +3014,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                                msg_format("%sour %s (%c) was stolen!", ((o_ptr->number > 1) ? "One of y" : "Y"), o_name, index_to_label(i));
 #endif
                                                chg_virtue(target_ptr, V_SACRIFICE, 1);
-                                               o_idx = o_pop();
+                                               o_idx = o_pop(target_ptr->current_floor_ptr);
 
                                                /* Success */
                                                if (o_idx)
@@ -3050,8 +3050,8 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                                }
 
                                                /* Steal the items */
-                                               inven_item_increase(i, -1);
-                                               inven_item_optimize(i);
+                                               inven_item_increase(target_ptr, i, -1);
+                                               inven_item_optimize(target_ptr, i);
 
                                                obvious = TRUE;
 
@@ -3091,8 +3091,8 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
 #endif
 
                                                /* Steal the items */
-                                               inven_item_increase(i, -1);
-                                               inven_item_optimize(i);
+                                               inven_item_increase(target_ptr, i, -1);
+                                               inven_item_optimize(target_ptr, i);
 
                                                obvious = TRUE;
 
@@ -3134,7 +3134,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                        if (explode) break;
                                        obvious = TRUE;
                                        msg_print(_("酸を浴びせられた!", "You are covered in acid!"));
-                                       get_damage += acid_dam(damage, ddesc, -1, FALSE);
+                                       get_damage += acid_dam(target_ptr, damage, ddesc, -1, FALSE);
                                        update_creature(target_ptr);
                                        update_smart_learn(m_idx, DRS_ACID);
                                        break;
@@ -3145,7 +3145,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                        if (explode) break;
                                        obvious = TRUE;
                                        msg_print(_("電撃を浴びせられた!", "You are struck by electricity!"));
-                                       get_damage += elec_dam(damage, ddesc, -1, FALSE);
+                                       get_damage += elec_dam(target_ptr, damage, ddesc, -1, FALSE);
                                        update_smart_learn(m_idx, DRS_ELEC);
                                        break;
                                }
@@ -3155,7 +3155,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                        if (explode) break;
                                        obvious = TRUE;
                                        msg_print(_("全身が炎に包まれた!", "You are enveloped in flames!"));
-                                       get_damage += fire_dam(damage, ddesc, -1, FALSE);
+                                       get_damage += fire_dam(target_ptr, damage, ddesc, -1, FALSE);
                                        update_smart_learn(m_idx, DRS_FIRE);
                                        break;
                                }
@@ -3165,7 +3165,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                        if (explode) break;
                                        obvious = TRUE;
                                        msg_print(_("全身が冷気で覆われた!", "You are covered with frost!"));
-                                       get_damage += cold_dam(damage, ddesc, -1, FALSE);
+                                       get_damage += cold_dam(target_ptr, damage, ddesc, -1, FALSE);
                                        update_smart_learn(m_idx, DRS_COLD);
                                        break;
                                }
@@ -3837,7 +3837,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
 
                                        if (is_mirror_grid(&p_ptr->current_floor_ptr->grid_array[target_ptr->y][target_ptr->x]))
                                        {
-                                               teleport_player(10, 0L);
+                                               teleport_player(target_ptr, 10, 0L);
                                        }
                                }
 
@@ -3912,7 +3912,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                                /* Modify the damage */
                                                dam = mon_damage_mod(m_ptr, dam, FALSE);
 
-                                               msg_format(_("影のオーラが%^sに反撃した!", "Enveloped shadows attack %^s."), m_name);
+                                               msg_format(_("影のオーラが%^sに反撃した!", "Enveloping shadows attack %^s."), m_name);
                                                if (mon_take_hit(m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
                                                {
                                                        blinked = FALSE;
@@ -3934,7 +3934,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                                                        {
                                                                o_armed_ptr = &target_ptr->inventory_list[typ[j][0]];
                                                                if ((o_armed_ptr->k_idx) && object_is_cursed(o_armed_ptr) && object_is_armour(o_armed_ptr))
-                                                                       project(0, 0, m_ptr->fy, m_ptr->fx, (target_ptr->lev * 2), typ[j][1], flg, -1);
+                                                                       project(target_ptr, 0, 0, m_ptr->fy, m_ptr->fx, (target_ptr->lev * 2), typ[j][1], flg, -1);
                                                        }
                                                }
                                        }
@@ -4015,7 +4015,6 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                        }
                }
 
-
                /* Analyze "visible" monsters only */
                if (is_original_ap_and_seen(m_ptr) && !do_silly_attack)
                {
@@ -4042,12 +4041,12 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
 
                if (target_ptr->special_defense & NINJA_KAWARIMI)
                {
-                       if (kawarimi(FALSE)) return TRUE;
+                       if (kawarimi(target_ptr, FALSE)) return TRUE;
                }
        }
 
        /* Hex - revenge damage stored */
-       revenge_store(get_damage);
+       revenge_store(target_ptr, get_damage);
 
        if ((target_ptr->tim_eyeeye || hex_spelling(HEX_EYE_FOR_EYE))
                && get_damage > 0 && !target_ptr->is_dead)
@@ -4062,7 +4061,7 @@ bool make_attack_normal(player_type *target_ptr, 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);
+               project(target_ptr, 0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
                if (target_ptr->tim_eyeeye) set_tim_eyeeye(target_ptr, target_ptr->tim_eyeeye-5, TRUE);
        }
 
@@ -4072,7 +4071,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
                monster_desc(m_target_name, m_ptr, 0);
 
                target_ptr->csp -= 7;
-               msg_format(_("%^sに反撃した!", "Your counterattack to %s!"), m_target_name);
+               msg_format(_("%^sに反撃した!", "Your counterattacked to %s!"), m_target_name);
                py_attack(target_ptr, m_ptr->fy, m_ptr->fx, HISSATSU_COUNTER);
                fear = FALSE;
                target_ptr->redraw |= (PR_MANA);
@@ -4081,20 +4080,20 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
        /* Blink away */
        if (blinked && alive && !target_ptr->is_dead)
        {
-               if (teleport_barrier(m_idx))
+               if (teleport_barrier(target_ptr, m_idx))
                {
                        msg_print(_("泥棒は笑って逃げ...ようとしたがバリアに防がれた。", "The thief flees laughing...? But magic barrier obstructs it."));
                }
                else
                {
                        msg_print(_("泥棒は笑って逃げた!", "The thief flees laughing!"));
-                       teleport_away(m_idx, MAX_SIGHT * 2 + 5, 0L);
+                       teleport_away(target_ptr, m_idx, MAX_SIGHT * 2 + 5, 0L);
                }
        }
 
 
        /* Always notice cause of death */
-       if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->inside_arena)
+       if (target_ptr->is_dead && (r_ptr->r_deaths < MAX_SHORT) && !target_ptr->current_floor_ptr->inside_arena)
        {
                r_ptr->r_deaths++;
        }
@@ -4540,19 +4539,19 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
                                /* Do damage if not exploding */
                                if (!explode)
                                {
-                                       project(m_idx, 0, t_ptr->fy, t_ptr->fx,
+                                       project(subject_ptr, m_idx, 0, t_ptr->fy, t_ptr->fx,
                                                damage, pt, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                }
 
                                switch (effect_type)
                                {
                                case BLOW_EFFECT_TYPE_FEAR:
-                                       project(m_idx, 0, t_ptr->fy, t_ptr->fx,
+                                       project(subject_ptr, m_idx, 0, t_ptr->fy, t_ptr->fx,
                                                damage, GF_TURN_ALL, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                        break;
 
                                case BLOW_EFFECT_TYPE_SLEEP:
-                                       project(m_idx, 0, t_ptr->fy, t_ptr->fx,
+                                       project(subject_ptr, m_idx, 0, t_ptr->fy, t_ptr->fx,
                                                r_ptr->level, GF_OLD_SLEEP, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                        break;
 
@@ -4592,7 +4591,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
                                                                msg_format(_("%^sは突然熱くなった!", "%^s is suddenly very hot!"), m_name);
                                                        }
                                                        if (m_ptr->ml && is_original_ap_and_seen(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_FIRE;
-                                                       project(t_idx, 0, m_ptr->fy, m_ptr->fx,
+                                                       project(subject_ptr, t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll(1 + ((tr_ptr->level) / 26),
                                                                        1 + ((tr_ptr->level) / 17)),
                                                                GF_FIRE, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
@@ -4613,7 +4612,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
                                                                msg_format(_("%^sは突然寒くなった!", "%^s is suddenly very cold!"), m_name);
                                                        }
                                                        if (m_ptr->ml && is_original_ap_and_seen(t_ptr)) tr_ptr->r_flags3 |= RF3_AURA_COLD;
-                                                       project(t_idx, 0, m_ptr->fy, m_ptr->fx,
+                                                       project(subject_ptr, t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll(1 + ((tr_ptr->level) / 26),
                                                                        1 + ((tr_ptr->level) / 17)),
                                                                GF_COLD, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
@@ -4634,7 +4633,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
                                                                msg_format(_("%^sは電撃を食らった!", "%^s gets zapped!"), m_name);
                                                        }
                                                        if (m_ptr->ml && is_original_ap_and_seen(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_ELEC;
-                                                       project(t_idx, 0, m_ptr->fy, m_ptr->fx,
+                                                       project(subject_ptr, t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll(1 + ((tr_ptr->level) / 26),
                                                                        1 + ((tr_ptr->level) / 17)),
                                                                GF_ELEC, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
@@ -4713,7 +4712,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
        /* Blink away */
        if (blinked && m_ptr->r_idx)
        {
-               if (teleport_barrier(m_idx))
+               if (teleport_barrier(subject_ptr, m_idx))
                {
                        if (see_m)
                        {
@@ -4735,7 +4734,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX
                                subject_ptr->current_floor_ptr->monster_noise = TRUE;
                        }
 
-                       teleport_away(m_idx, MAX_SIGHT * 2 + 5, 0L);
+                       teleport_away(subject_ptr, m_idx, MAX_SIGHT * 2 + 5, 0L);
                }
        }
 
@@ -4922,7 +4921,7 @@ void mon_take_hit_mon(MONSTER_IDX m_idx, HIT_POINT dam, bool *dead, bool *fear,
                if (m_ptr->hp > m_ptr->maxhp / 3) dam = (dam + 1) / 2;
                if (rakuba(p_ptr, (dam > 200) ? 200 : dam, FALSE))
                {
-                       msg_format(_("%^sに振り落とされた!", "You have thrown off from %s!"), m_name);
+                       msg_format(_("%^sに振り落とされた!", "You have been thrown off from %s!"), m_name);
                }
        }