OSDN Git Service

[Refactor] #40414 Separated set_bolt_types() from process_monster_lore() to magic...
authorHourier <hourier@users.sourceforge.jp>
Fri, 12 Jun 2020 11:01:16 +0000 (20:01 +0900)
committerHourier <hourier@users.sourceforge.jp>
Fri, 12 Jun 2020 11:01:16 +0000 (20:01 +0900)
src/lore/magic-types-setter.c
src/lore/magic-types-setter.h
src/lore/monster-lore.c
src/view/display-lore-magics.c

index a915090..07b604f 100644 (file)
@@ -271,4 +271,67 @@ void set_particular_types(player_type *player_ptr, lore_type *lore_ptr)
         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
     }
-}
\ No newline at end of file
+}
+
+void set_bolt_types(player_type *player_ptr, lore_type *lore_ptr)
+{
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_ACID)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ACID), _("アシッド・ボルト%s", "produce acid bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_ELEC)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ELEC), _("サンダー・ボルト%s", "produce lightning bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_FIRE)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_FIRE), _("ファイア・ボルト%s", "produce fire bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_RED;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_COLD)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_COLD), _("アイス・ボルト%s", "produce frost bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_NETH)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_NETHER), _("地獄の矢%s", "produce nether bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_WATE)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_WATER), _("ウォーター・ボルト%s", "produce water bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_MANA)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_MANA), _("魔力の矢%s", "produce mana bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_PLAS)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_PLASMA), _("プラズマ・ボルト%s", "produce plasma bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_BO_ICEE)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ICE), _("極寒の矢%s", "produce ice bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
+    }
+
+    if (lore_ptr->a_ability_flags1 & (RF5_MISSILE)) {
+        set_damage(player_ptr, lore_ptr->r_idx, (MS_MAGIC_MISSILE), _("マジックミサイル%s", "produce magic missiles%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
+        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
+        lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
+    }
+}
index 928949b..fcb5c61 100644 (file)
@@ -6,3 +6,4 @@
 void set_breath_types(player_type *player_ptr, lore_type *lore_ptr);
 void set_ball_types(player_type *player_ptr, lore_type *lore_ptr);
 void set_particular_types(player_type *player_ptr, lore_type *lore_ptr);
+void set_bolt_types(player_type *player_ptr, lore_type *lore_ptr);
index b74049f..5745fee 100644 (file)
@@ -190,122 +190,77 @@ void process_monster_lore(player_type *player_ptr, MONRACE_IDX r_idx, BIT_FLAGS
     lore_ptr->vn = 0;
     set_ball_types(player_ptr, lore_ptr);
     set_particular_types(player_ptr, lore_ptr);
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_ACID)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_ACID), _("アシッド・ボルト%s", "produce acid bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_ELEC)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_ELEC), _("サンダー・ボルト%s", "produce lightning bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_FIRE)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_FIRE), _("ファイア・ボルト%s", "produce fire bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_RED;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_COLD)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_COLD), _("アイス・ボルト%s", "produce frost bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_NETH)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_NETHER), _("地獄の矢%s", "produce nether bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_WATE)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_WATER), _("ウォーター・ボルト%s", "produce water bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_MANA)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_MANA), _("魔力の矢%s", "produce mana bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_PLAS)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_PLASMA), _("プラズマ・ボルト%s", "produce plasma bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_BO_ICEE)) {
-        set_damage(player_ptr, r_idx, (MS_BOLT_ICE), _("極寒の矢%s", "produce ice bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
-    }
-
-    if (lore_ptr->a_ability_flags1 & (RF5_MISSILE)) {
-        set_damage(player_ptr, r_idx, (MS_MAGIC_MISSILE), _("マジックミサイル%s", "produce magic missiles%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
-        lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
-        lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
-    }
-
+    set_bolt_types(player_ptr, lore_ptr);
     if (lore_ptr->a_ability_flags1 & (RF5_SCARE)) {
         lore_ptr->vp[lore_ptr->vn] = _("恐怖", "terrify");
         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
     }
+
     if (lore_ptr->a_ability_flags1 & (RF5_BLIND)) {
         lore_ptr->vp[lore_ptr->vn] = _("目くらまし", "blind");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
     }
+
     if (lore_ptr->a_ability_flags1 & (RF5_CONF)) {
         lore_ptr->vp[lore_ptr->vn] = _("混乱", "confuse");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
     }
+
     if (lore_ptr->a_ability_flags1 & (RF5_SLOW)) {
         lore_ptr->vp[lore_ptr->vn] = _("減速", "slow");
         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
     }
+
     if (lore_ptr->a_ability_flags1 & (RF5_HOLD)) {
         lore_ptr->vp[lore_ptr->vn] = _("麻痺", "paralyze");
         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_HASTE)) {
         lore_ptr->vp[lore_ptr->vn] = _("加速", "haste-self");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_HEAL)) {
         lore_ptr->vp[lore_ptr->vn] = _("治癒", "heal-self");
         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_INVULNER)) {
         lore_ptr->vp[lore_ptr->vn] = _("無敵化", "make invulnerable");
         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
     }
+
     if (lore_ptr->flags4 & RF4_DISPEL) {
         lore_ptr->vp[lore_ptr->vn] = _("魔力消去", "dispel-magic");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_BLINK)) {
         lore_ptr->vp[lore_ptr->vn] = _("ショートテレポート", "blink-self");
         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_TPORT)) {
         lore_ptr->vp[lore_ptr->vn] = _("テレポート", "teleport-self");
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_WORLD)) {
         lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop the time");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_TELE_TO)) {
         lore_ptr->vp[lore_ptr->vn] = _("テレポートバック", "teleport to");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_TELE_AWAY)) {
         lore_ptr->vp[lore_ptr->vn] = _("テレポートアウェイ", "teleport away");
         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
     }
+
     if (lore_ptr->a_ability_flags2 & (RF6_TELE_LEVEL)) {
         lore_ptr->vp[lore_ptr->vn] = _("テレポート・レベル", "teleport level");
         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
index 9556dd6..570dde3 100644 (file)
@@ -1,6 +1,6 @@
 #include "view/display-lore-magics.h"
 
-void diaplay_monster_breath(lore_type *lore_ptr)
+void display_monster_breath(lore_type *lore_ptr)
 {
     lore_ptr->breath = FALSE;
     if (lore_ptr->vn <= 0)