OSDN Git Service

[Refactor] #38862 Moved floor*.c to floor/
[hengband/hengband.git] / src / monster-status.c
index 7d3d319..453fdcd 100644 (file)
@@ -1,17 +1,21 @@
 #include "angband.h"
-#include "core.h"
+#include "core/stuff-handler.h"
 #include "util.h"
+#include "main/sound-definitions-table.h"
 
 #include "creature.h"
-#include "cmd-dump.h"
-#include "dungeon.h"
-#include "floor.h"
+#include "io/write-diary.h"
+#include "autopick/autopick-pref-processor.h"
+#include "cmd/cmd-draw.h"
+#include "cmd/cmd-dump.h"
+#include "dungeon/dungeon.h"
+#include "floor/floor.h"
 #include "grid.h"
 #include "monster.h"
 #include "monster-status.h"
 #include "monster-spell.h"
 #include "monster-process.h"
-#include "spells.h"
+#include "spell/spells2.h"
 #include "spells-summon.h"
 #include "monsterrace-hook.h"
 #include "object-curse.h"
@@ -20,8 +24,8 @@
 #include "files.h"
 #include "player-effects.h"
 #include "player-personality.h"
-#include "view-mainwindow.h"
-#include "world.h"
+#include "view/display-main-window.h"
+#include "world/world.h"
 #include "report.h"
 #include "melee.h"
 
@@ -645,7 +649,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                if (!set_monster_csleep(target_ptr, m_idx, MON_CSLEEP(m_ptr) - d))
                {
                        /* Notice the "not waking up" */
-                       if (is_original_ap_and_seen(m_ptr))
+                       if (is_original_ap_and_seen(target_ptr, m_ptr))
                        {
                                /* Hack -- Count the ignores */
                                if (r_ptr->r_ignore < MAX_UCHAR) r_ptr->r_ignore++;
@@ -658,11 +662,11 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                if (m_ptr->ml)
                {
                        GAME_TEXT m_name[MAX_NLEN];
-                       monster_desc(m_name, m_ptr, 0);
+                       monster_desc(target_ptr, m_name, m_ptr, 0);
                        msg_format(_("%^sが目を覚ました。", "%^s wakes up."), m_name);
                }
 
-               if (is_original_ap_and_seen(m_ptr))
+               if (is_original_ap_and_seen(target_ptr, m_ptr))
                {
                        /* Hack -- Count the wakings */
                        if (r_ptr->r_wake < MAX_UCHAR) r_ptr->r_wake++;
@@ -678,7 +682,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                        if (is_seen(m_ptr))
                        {
                                GAME_TEXT m_name[MAX_NLEN];
-                               monster_desc(m_name, m_ptr, 0);
+                               monster_desc(target_ptr, m_name, m_ptr, 0);
                                msg_format(_("%^sはもう加速されていない。", "%^s is no longer fast."), m_name);
                        }
                }
@@ -692,7 +696,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                        if (is_seen(m_ptr))
                        {
                                GAME_TEXT m_name[MAX_NLEN];
-                               monster_desc(m_name, m_ptr, 0);
+                               monster_desc(target_ptr, m_name, m_ptr, 0);
                                msg_format(_("%^sはもう減速されていない。", "%^s is no longer slow."), m_name);
                        }
                }
@@ -710,7 +714,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                        if (is_seen(m_ptr))
                        {
                                GAME_TEXT m_name[MAX_NLEN];
-                               monster_desc(m_name, m_ptr, 0);
+                               monster_desc(target_ptr, m_name, m_ptr, 0);
                                msg_format(_("%^sは朦朧状態から立ち直った。", "%^s is no longer stunned."), m_name);
                        }
                }
@@ -727,7 +731,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                if (is_seen(m_ptr))
                {
                        GAME_TEXT m_name[MAX_NLEN];
-                       monster_desc(m_name, m_ptr, 0);
+                       monster_desc(target_ptr, m_name, m_ptr, 0);
                        msg_format(_("%^sは混乱から立ち直った。", "%^s is no longer confused."), m_name);
                }
 
@@ -746,13 +750,12 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                        GAME_TEXT m_name[MAX_NLEN];
 #ifdef JP
 #else
-
                        char m_poss[80];
 
                        /* Acquire the monster possessive */
-                       monster_desc(m_poss, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE);
+                       monster_desc(target_ptr, m_poss, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE);
 #endif
-                       monster_desc(m_name, m_ptr, 0);
+                       monster_desc(target_ptr, m_name, m_ptr, 0);
 #ifdef JP
                        msg_format("%^sは勇気を取り戻した。", m_name);
 #else
@@ -772,7 +775,7 @@ static void process_monsters_mtimed_aux(player_type *target_ptr, MONSTER_IDX m_i
                if (is_seen(m_ptr))
                {
                        GAME_TEXT m_name[MAX_NLEN];
-                       monster_desc(m_name, m_ptr, 0);
+                       monster_desc(target_ptr, m_name, m_ptr, 0);
                        msg_format(_("%^sはもう無敵でない。", "%^s is no longer invulnerable."), m_name);
                }
 
@@ -818,7 +821,7 @@ void dispel_monster_status(player_type *target_ptr, MONSTER_IDX m_idx)
        monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx];
        GAME_TEXT m_name[MAX_NLEN];
 
-       monster_desc(m_name, m_ptr, 0);
+       monster_desc(target_ptr, m_name, m_ptr, 0);
        if (set_monster_invulner(target_ptr, m_idx, 0, TRUE))
        {
                if (m_ptr->ml) msg_format(_("%sはもう無敵ではない。", "%^s is no longer invulnerable."), m_name);
@@ -853,7 +856,7 @@ bool set_monster_timewalk(player_type *target_ptr, int num, MONSTER_IDX who, boo
        if (vs_player)
        {
                GAME_TEXT m_name[MAX_NLEN];
-               monster_desc(m_name, m_ptr, 0);
+               monster_desc(target_ptr, m_name, m_ptr, 0);
 
                if (who == 1)
                        msg_format(_("「『ザ・ワールド』!時は止まった!」", "%s yells 'The World! Time has stopped!'"), m_name);
@@ -941,7 +944,7 @@ void monster_gain_exp(player_type *target_ptr, MONSTER_IDX m_idx, MONRACE_IDX s_
        /* Hack -- Reduce the racial counter of previous monster */
        real_r_ptr(m_ptr)->cur_num--;
 
-       monster_desc(m_name, m_ptr, 0);
+       monster_desc(target_ptr, m_name, m_ptr, 0);
        m_ptr->r_idx = r_ptr->next_r_idx;
 
        /* Count the monsters on the level */
@@ -971,7 +974,7 @@ void monster_gain_exp(player_type *target_ptr, MONSTER_IDX m_idx, MONRACE_IDX s_
        m_ptr->dealt_damage = 0;
 
        /* Extract the monster base speed */
-       m_ptr->mspeed = get_mspeed(r_ptr);
+       m_ptr->mspeed = get_mspeed(target_ptr, r_ptr);
 
        /* Sub-alignment of a monster */
        if (!is_pet(m_ptr) && !(r_ptr->flags3 & (RF3_EVIL | RF3_GOOD)))
@@ -1012,7 +1015,7 @@ void monster_gain_exp(player_type *target_ptr, MONSTER_IDX m_idx, MONRACE_IDX s_
        }
 
        update_monster(target_ptr, m_idx, FALSE);
-       lite_spot(m_ptr->fy, m_ptr->fx);
+       lite_spot(target_ptr, m_ptr->fy, m_ptr->fx);
 
        if (m_idx == target_ptr->riding) target_ptr->update |= PU_BONUS;
 }
@@ -1161,7 +1164,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                        monster_race_track(target_ptr, m_ptr->ap_r_idx);
                }
 
-               monster_desc(m_name, m_ptr, MD_TRUE_NAME);
+               monster_desc(target_ptr, m_name, m_ptr, MD_TRUE_NAME);
 
                /* Don't kill Amberites */
                if ((r_ptr->flags3 & RF3_AMBERITE) && one_in_(2))
@@ -1190,7 +1193,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
 #ifdef WORLD_SCORE
                        if (m_ptr->r_idx == MON_SERPENT)
                        {
-                               screen_dump = make_screen_dump(target_ptr);
+                               screen_dump = make_screen_dump(target_ptr, process_autopick_file_command);
                        }
 #endif
                }
@@ -1322,7 +1325,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                else if (!m_ptr->ml)
                {
 #ifdef JP
-                       if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+                       if (IS_ECHIZEN(target_ptr))
                                msg_format("せっかくだから%sを殺した。", m_name);
                        else
                                msg_format("%sを殺した。", m_name);
@@ -1348,7 +1351,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                        else
                        {
 #ifdef JP
-                               if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+                               if (IS_ECHIZEN(target_ptr))
                                        msg_format("せっかくだから%sを倒した。", m_name);
                                else
                                        msg_format("%sを倒した。", m_name);
@@ -1362,7 +1365,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                else
                {
 #ifdef JP
-                       if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+                       if (IS_ECHIZEN(target_ptr))
                                msg_format("せっかくだから%sを葬り去った。", m_name);
                        else
                                msg_format("%sを葬り去った。", m_name);
@@ -1384,7 +1387,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                }
 
                /* Generate treasure */
-               monster_death(m_idx, TRUE);
+               monster_death(target_ptr, m_idx, TRUE);
 
                /* Mega hack : replace IKETA to BIKETAL */
                if ((m_ptr->r_idx == MON_IKETA) && !(target_ptr->current_floor_ptr->inside_arena || target_ptr->phase_out))
@@ -1393,15 +1396,15 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                        POSITION dummy_x = m_ptr->fx;
                        BIT_FLAGS mode = 0L;
                        if (is_pet(m_ptr)) mode |= PM_FORCE_PET;
-                       delete_monster_idx(m_idx);
-                       if (summon_named_creature(0, dummy_y, dummy_x, MON_BIKETAL, mode))
+                       delete_monster_idx(target_ptr, m_idx);
+                       if (summon_named_creature(target_ptr, 0, dummy_y, dummy_x, MON_BIKETAL, mode))
                        {
                                msg_print(_("「ハァッハッハッハ!!私がバイケタルだ!!」", "Uwa-hahaha!  *I* am Biketal!"));
                        }
                }
                else
                {
-                       delete_monster_idx(m_idx);
+                       delete_monster_idx(target_ptr, m_idx);
                }
 
                get_exp_from_mon(target_ptr, (long)exp_mon.max_maxhp * 2, &exp_mon);
@@ -1413,8 +1416,6 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                return TRUE;
        }
 
-#ifdef ALLOW_FEAR
-
        /* Mega-Hack -- Pain cancels fear */
        if (MON_MONFEAR(m_ptr) && (dam > 0))
        {
@@ -1448,12 +1449,11 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo
                }
        }
 
-#endif
-
        /* Not dead yet */
        return FALSE;
 }
 
+
 bool monster_is_valid(monster_type *m_ptr)
 {
        return (m_ptr->r_idx != 0);