From 1884e05d42764cfd6c208dea51892892e1e5b8b1 Mon Sep 17 00:00:00 2001 From: Hourier Date: Fri, 21 Aug 2020 16:13:04 +0900 Subject: [PATCH] [Refactor] #40581 Added MD_NONE into monster_description_type --- src/monster-floor/quantum-effect.c | 95 +++++++++++++++------------------ src/monster/monster-description-types.h | 1 + 2 files changed, 44 insertions(+), 52 deletions(-) diff --git a/src/monster-floor/quantum-effect.c b/src/monster-floor/quantum-effect.c index 94ce3055b..72e150786 100644 --- a/src/monster-floor/quantum-effect.c +++ b/src/monster-floor/quantum-effect.c @@ -6,6 +6,7 @@ #include "monster-race/race-flags1.h" #include "monster-race/race-flags2.h" #include "monster/monster-describer.h" +#include "monster/monster-description-types.h" #include "monster/monster-info.h" #include "monster/smart-learn-types.h" #include "mspell/assign-monster-spell.h" @@ -22,23 +23,19 @@ */ static void vanish_nonunique(player_type *target_ptr, MONSTER_IDX m_idx, bool see_m) { - monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; - if (see_m) - { - GAME_TEXT m_name[MAX_NLEN]; - monster_desc(target_ptr, m_name, m_ptr, 0); - msg_format(_("%sは消え去った!", "%^s disappears!"), m_name); - } + monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; + if (see_m) { + GAME_TEXT m_name[MAX_NLEN]; + monster_desc(target_ptr, m_name, m_ptr, 0); + msg_format(_("%sは消え去った!", "%^s disappears!"), m_name); + } - monster_death(target_ptr, m_idx, FALSE); - delete_monster_idx(target_ptr, m_idx); - if (is_pet(m_ptr) && !(m_ptr->ml)) - { - msg_print(_("少しの間悲しい気分になった。", "You feel sad for a moment.")); - } + monster_death(target_ptr, m_idx, FALSE); + delete_monster_idx(target_ptr, m_idx); + if (is_pet(m_ptr) && !(m_ptr->ml)) + msg_print(_("少しの間悲しい気分になった。", "You feel sad for a moment.")); } - /*! * todo ユニークとプレーヤーとの間でしか効果が発生しない。ユニークとその他のモンスター間では何もしなくてよい? * @brief 量子生物ユニークの量子的効果 (ショート・テレポートまたは距離10のテレポート・アウェイ)を実行する @@ -54,34 +51,26 @@ static void vanish_nonunique(player_type *target_ptr, MONSTER_IDX m_idx, bool se */ static void produce_quantum_effect(player_type *target_ptr, MONSTER_IDX m_idx, bool see_m) { - monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; - bool coherent = los(target_ptr, m_ptr->fy, m_ptr->fx, target_ptr->y, target_ptr->x); - if (!see_m && !coherent) return; + monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; + bool coherent = los(target_ptr, m_ptr->fy, m_ptr->fx, target_ptr->y, target_ptr->x); + if (!see_m && !coherent) + return; - if (see_m) - { - GAME_TEXT m_name[MAX_NLEN]; - monster_desc(target_ptr, m_name, m_ptr, 0); - msg_format(_("%sは量子的効果を起こした!", "%^s produced a decoherence!"), m_name); - } - else - { - msg_print(_("量子的効果が起こった!", "A decoherence was produced!")); - } + if (see_m) { + GAME_TEXT m_name[MAX_NLEN]; + monster_desc(target_ptr, m_name, m_ptr, MD_NONE); + msg_format(_("%sは量子的効果を起こした!", "%^s produced a decoherence!"), m_name); + } else + msg_print(_("量子的効果が起こった!", "A decoherence was produced!")); - bool target = one_in_(2); - const int blink = 32 * 5 + 4; - if (target) - { - (void)monspell_to_monster(target_ptr, blink, m_ptr->fy, m_ptr->fx, m_idx, m_idx, TRUE); - } - else - { - teleport_player_away(m_idx, target_ptr, 10, TRUE); - } + bool target = one_in_(2); + const int blink = 32 * 5 + 4; + if (target) + (void)monspell_to_monster(target_ptr, blink, m_ptr->fy, m_ptr->fx, m_idx, m_idx, TRUE); + else + teleport_player_away(m_idx, target_ptr, 10, TRUE); } - /*! * @brief 量子生物の量子的効果を実行する * @param target_ptr プレーヤーへの参照ポインタ @@ -91,20 +80,22 @@ static void produce_quantum_effect(player_type *target_ptr, MONSTER_IDX m_idx, b */ bool process_quantum_effect(player_type *target_ptr, MONSTER_IDX m_idx, bool see_m) { - monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - if ((r_ptr->flags2 & RF2_QUANTUM) == 0) return FALSE; - if (!randint0(2)) return FALSE; - if (randint0((m_idx % 100) + 10)) return FALSE; + monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx]; + monster_race *r_ptr = &r_info[m_ptr->r_idx]; + if ((r_ptr->flags2 & RF2_QUANTUM) == 0) + return FALSE; + if (!randint0(2)) + return FALSE; + if (randint0((m_idx % 100) + 10)) + return FALSE; - bool can_disappear = (r_ptr->flags1 & RF1_UNIQUE) == 0; - can_disappear &= (r_ptr->flags1 & RF1_QUESTOR) == 0; - if (can_disappear) - { - vanish_nonunique(target_ptr, m_idx, see_m); - return TRUE; - } + bool can_disappear = (r_ptr->flags1 & RF1_UNIQUE) == 0; + can_disappear &= (r_ptr->flags1 & RF1_QUESTOR) == 0; + if (can_disappear) { + vanish_nonunique(target_ptr, m_idx, see_m); + return TRUE; + } - produce_quantum_effect(target_ptr, m_idx, see_m); - return FALSE; + produce_quantum_effect(target_ptr, m_idx, see_m); + return FALSE; } diff --git a/src/monster/monster-description-types.h b/src/monster/monster-description-types.h index fe245033e..9e8221f14 100644 --- a/src/monster/monster-description-types.h +++ b/src/monster/monster-description-types.h @@ -1,6 +1,7 @@ #pragma once typedef enum monsetr_description_type { + MD_NONE = 0x00000000, MD_OBJECTIVE = 0x00000001, /* Objective (or Reflexive) */ MD_POSSESSIVE = 0x00000002, /* Possessive (or Reflexive) */ MD_INDEF_HIDDEN = 0x00000004, /* Use indefinites for hidden monsters ("something") */ -- 2.11.0