OSDN Git Service

[Refactor] #2204 HIT_POINTエイリアスをintに揃えた
[hengbandforosx/hengbandosx.git] / src / monster / monster-describer.cpp
index fffcdc9..a3b45e1 100644 (file)
@@ -1,45 +1,44 @@
 #include "monster/monster-describer.h"
 #include "io/files-util.h"
+#include "locale/english.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
 #include "monster/monster-description-types.h"
 #include "monster/monster-flag-types.h"
 #include "monster/monster-info.h"
 #include "system/floor-type-definition.h"
+#include "system/monster-race-definition.h"
+#include "system/monster-type-definition.h"
+#include "system/player-type-definition.h"
 #include "util/quarks.h"
 #include "util/string-processor.h"
 #include "view/display-messages.h"
-#ifdef JP
-#else
-#include "locale/english.h"
-#endif
 
 /*!
  * @brief モンスターの呼称を作成する / Build a string describing a monster in some way.
  * @param desc 記述出力先の文字列参照ポインタ
  * @param m_ptr モンスターの参照ポインタ
  * @param mode 呼称オプション
- * @return なし
  */
-void monster_desc(player_type *player_ptr, char *desc, monster_type *m_ptr, BIT_FLAGS mode)
+void monster_desc(PlayerType *player_ptr, char *desc, monster_type *m_ptr, BIT_FLAGS mode)
 {
     monster_race *r_ptr;
     r_ptr = &r_info[m_ptr->ap_r_idx];
     concptr name = (mode & MD_TRUE_NAME) ? real_r_ptr(m_ptr)->name.c_str() : r_ptr->name.c_str();
     GAME_TEXT silly_name[1024];
-    bool named = FALSE;
-    if (player_ptr->image && !(mode & MD_IGNORE_HALLU)) {
+    bool named = false;
+    if (player_ptr->hallucinated && !(mode & MD_IGNORE_HALLU)) {
         if (one_in_(2)) {
             if (!get_rnd_line(_("silly_j.txt", "silly.txt"), m_ptr->r_idx, silly_name))
-                named = TRUE;
+                named = true;
         }
 
         if (!named) {
             monster_race *hallu_race;
 
             do {
-                hallu_race = &r_info[randint1(max_r_idx - 1)];
-            } while (hallu_race->name.empty() || (hallu_race->flags1 & RF1_UNIQUE));
+                hallu_race = &r_info[randint1(r_info.size() - 1)];
+            } while (hallu_race->name.empty() || hallu_race->kind_flags.has(MonsterKindType::UNIQUE));
 
             strcpy(silly_name, (hallu_race->name.c_str()));
         }
@@ -51,7 +50,7 @@ void monster_desc(player_type *player_ptr, char *desc, monster_type *m_ptr, BIT_
     bool pron = (m_ptr && ((seen && (mode & MD_PRON_VISIBLE)) || (!seen && (mode & MD_PRON_HIDDEN))));
 
     /* First, try using pronouns, or describing hidden monsters */
-    floor_type *floor_ptr = player_ptr->current_floor_ptr;
+    auto *floor_ptr = player_ptr->current_floor_ptr;
     if (!seen || pron) {
         int kind = 0x00;
         if (r_ptr->flags1 & (RF1_FEMALE))
@@ -173,8 +172,8 @@ void monster_desc(player_type *player_ptr, char *desc, monster_type *m_ptr, BIT_
         (void)sprintf(desc, "%s?", name);
 #endif
     } else {
-        if ((r_ptr->flags1 & RF1_UNIQUE) && !(player_ptr->image && !(mode & MD_IGNORE_HALLU))) {
-            if (m_ptr->mflag2.has(MFLAG2::CHAMELEON) && !(mode & MD_TRUE_NAME)) {
+        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) && !(player_ptr->hallucinated && !(mode & MD_IGNORE_HALLU))) {
+            if (m_ptr->mflag2.has(MonsterConstantFlagType::CHAMELEON) && !(mode & MD_TRUE_NAME)) {
 #ifdef JP
                 char *t;
                 char buf[128];
@@ -222,8 +221,8 @@ void monster_desc(player_type *player_ptr, char *desc, monster_type *m_ptr, BIT_
         strcat(desc, _("(乗馬中)", "(riding)"));
     }
 
-    if ((mode & MD_IGNORE_HALLU) && m_ptr->mflag2.has(MFLAG2::CHAMELEON)) {
-        if (r_ptr->flags1 & RF1_UNIQUE) {
+    if ((mode & MD_IGNORE_HALLU) && m_ptr->mflag2.has(MonsterConstantFlagType::CHAMELEON)) {
+        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
             strcat(desc, _("(カメレオンの王)", "(Chameleon Lord)"));
         } else {
             strcat(desc, _("(カメレオン)", "(Chameleon)"));
@@ -242,21 +241,19 @@ void monster_desc(player_type *player_ptr, char *desc, monster_type *m_ptr, BIT_
 
 /*!
  * @brief ダメージを受けたモンスターの様子を記述する / Dump a message describing a monster's reaction to damage
- * @param player_ptr ã\83\97ã\83¬ã\83¼ヤーへの参照ポインタ
+ * @param player_ptr ã\83\97ã\83¬ã\82¤ヤーへの参照ポインタ
  * @param m_idx モンスター情報ID
  * @param dam 与えたダメージ
- * @return なし
  * @details
  * Technically should attempt to treat "Beholder"'s as jelly's
  */
-void message_pain(player_type *player_ptr, MONSTER_IDX m_idx, HIT_POINT dam)
+void message_pain(PlayerType *player_ptr, MONSTER_IDX m_idx, int dam)
 {
-    monster_type *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
-    monster_race *r_ptr = &r_info[m_ptr->r_idx];
+    auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
+    auto *r_ptr = &r_info[m_ptr->r_idx];
 
     GAME_TEXT m_name[MAX_NLEN];
 
-
     monster_desc(player_ptr, m_name, m_ptr, 0);
 
     if (dam == 0) {
@@ -266,9 +263,9 @@ void message_pain(player_type *player_ptr, MONSTER_IDX m_idx, HIT_POINT dam)
         return;
     }
 
-    HIT_POINT newhp = m_ptr->hp;
-    HIT_POINT oldhp = newhp + dam;
-    HIT_POINT tmp = (newhp * 100L) / oldhp;
+    int newhp = m_ptr->hp;
+    int oldhp = newhp + dam;
+    int tmp = (newhp * 100L) / oldhp;
     PERCENTAGE percentage = tmp;
 
     if (angband_strchr(",ejmvwQ", r_ptr->d_char)) {