OSDN Git Service

[Refactor] #40414 Separated set_floor_types() from process_monster_lore() to mmagic...
authorHourier <hourier@users.sourceforge.jp>
Fri, 12 Jun 2020 11:10:30 +0000 (20:10 +0900)
committerHourier <hourier@users.sourceforge.jp>
Fri, 12 Jun 2020 11:11:33 +0000 (20:11 +0900)
src/lore/magic-types-setter.c
src/lore/magic-types-setter.h
src/lore/monster-lore.c

index a5ad4f1..2352576 100644 (file)
@@ -2,7 +2,9 @@
 #include "lore/lore-calculator.h"
 #include "monster-race/race-flags-ability1.h"
 #include "monster-race/race-flags-ability2.h"
+#include "monster-race/race-flags3.h"
 #include "monster-race/race-flags4.h"
+#include "monster-race/race-flags7.h"
 #include "mspell/mspell-type.h"
 #include "term/term-color-types.h"
 
@@ -419,3 +421,31 @@ void set_teleport_types(lore_type *lore_ptr)
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
     }
 }
+
+void set_floor_types(player_type *player_ptr, lore_type *lore_ptr)
+{
+    if (lore_ptr->a_ability_flags2 & (RF6_DARKNESS)) {
+        if ((player_ptr->pclass != CLASS_NINJA) || (lore_ptr->r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
+            lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
+            lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
+        } else {
+            lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
+            lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
+        }
+    }
+
+    if (lore_ptr->a_ability_flags2 & (RF6_TRAPS)) {
+        lore_ptr->vp[lore_ptr->vn] = _("トラップ", "create traps");
+        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
+    }
+
+    if (lore_ptr->a_ability_flags2 & (RF6_FORGET)) {
+        lore_ptr->vp[lore_ptr->vn] = _("記憶消去", "cause amnesia");
+        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
+    }
+
+    if (lore_ptr->a_ability_flags2 & (RF6_RAISE_DEAD)) {
+        lore_ptr->vp[lore_ptr->vn] = _("死者復活", "raise dead");
+        lore_ptr->color[lore_ptr->vn++] = TERM_RED;
+    }
+}
index c4b8e3b..b5f1f48 100644 (file)
@@ -9,3 +9,4 @@ void set_particular_types(player_type *player_ptr, lore_type *lore_ptr);
 void set_bolt_types(player_type *player_ptr, lore_type *lore_ptr);
 void set_status_types(lore_type *lore_ptr);
 void set_teleport_types(lore_type *lore_ptr);
+void set_floor_types(player_type *player_ptr, lore_type *lore_ptr);
index ebb906f..cb66238 100644 (file)
@@ -193,88 +193,82 @@ void process_monster_lore(player_type *player_ptr, MONRACE_IDX r_idx, BIT_FLAGS
     set_bolt_types(player_ptr, lore_ptr);
     set_status_types(lore_ptr);
     set_teleport_types(lore_ptr);
-    if (lore_ptr->a_ability_flags2 & (RF6_DARKNESS)) {
-        if ((player_ptr->pclass != CLASS_NINJA) || (lore_ptr->r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
-            lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
-            lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
-        } else {
-            lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
-            lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
-        }
-    }
-
-    if (lore_ptr->a_ability_flags2 & (RF6_TRAPS)) {
-        lore_ptr->vp[lore_ptr->vn] = _("トラップ", "create traps");
-        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
-    }
-    if (lore_ptr->a_ability_flags2 & (RF6_FORGET)) {
-        lore_ptr->vp[lore_ptr->vn] = _("記憶消去", "cause amnesia");
-        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
-    }
-    if (lore_ptr->a_ability_flags2 & (RF6_RAISE_DEAD)) {
-        lore_ptr->vp[lore_ptr->vn] = _("死者復活", "raise dead");
-        lore_ptr->color[lore_ptr->vn++] = TERM_RED;
-    }
+    set_floor_types(player_ptr, lore_ptr);
     if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTER)) {
         lore_ptr->vp[lore_ptr->vn] = _("モンスター一体召喚", "summon a monster");
         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTERS)) {
         lore_ptr->vp[lore_ptr->vn] = _("モンスター複数召喚", "summon monsters");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_KIN)) {
         lore_ptr->vp[lore_ptr->vn] = _("救援召喚", "summon aid");
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_ANT)) {
         lore_ptr->vp[lore_ptr->vn] = _("アリ召喚", "summon ants");
         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_SPIDER)) {
         lore_ptr->vp[lore_ptr->vn] = _("クモ召喚", "summon spiders");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_HOUND)) {
         lore_ptr->vp[lore_ptr->vn] = _("ハウンド召喚", "summon hounds");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_HYDRA)) {
         lore_ptr->vp[lore_ptr->vn] = _("ヒドラ召喚", "summon hydras");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_ANGEL)) {
         lore_ptr->vp[lore_ptr->vn] = _("天使一体召喚", "summon an angel");
         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_DEMON)) {
         lore_ptr->vp[lore_ptr->vn] = _("デーモン一体召喚", "summon a demon");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_UNDEAD)) {
         lore_ptr->vp[lore_ptr->vn] = _("アンデッド一体召喚", "summon an undead");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_DRAGON)) {
         lore_ptr->vp[lore_ptr->vn] = _("ドラゴン一体召喚", "summon a dragon");
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_HI_UNDEAD)) {
         lore_ptr->vp[lore_ptr->vn] = _("強力なアンデッド召喚", "summon Greater Undead");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_HI_DRAGON)) {
         lore_ptr->vp[lore_ptr->vn] = _("古代ドラゴン召喚", "summon Ancient Dragons");
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_CYBER)) {
         lore_ptr->vp[lore_ptr->vn] = _("サイバーデーモン召喚", "summon Cyberdemons");
         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_AMBERITES)) {
         lore_ptr->vp[lore_ptr->vn] = _("アンバーの王族召喚", "summon Lords of Amber");
         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_S_UNIQUE)) {
         lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター召喚", "summon Unique Monsters");
         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;