X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fmonster-status.c;h=453fdcd3f0f27b3662ab121480eb5985c9264c38;hb=738fd652c9f50ec7faa3cfa11bb28790dda8922a;hp=7d3d31906548f57d8ee54c9b5c04d47130da7cbb;hpb=28c645f41c42c9ef2eff0479311ac7a2f69a2a76;p=hengband%2Fhengband.git diff --git a/src/monster-status.c b/src/monster-status.c index 7d3d31906..453fdcd3f 100644 --- a/src/monster-status.c +++ b/src/monster-status.c @@ -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);