OSDN Git Service

[Refactor] #40647 Separated base-status-info.c/h from self-info.c
authorHourier <hourier@users.sourceforge.jp>
Fri, 21 Aug 2020 03:48:29 +0000 (12:48 +0900)
committerHourier <hourier@users.sourceforge.jp>
Fri, 21 Aug 2020 03:48:29 +0000 (12:48 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/player-info/base-status-info.c [new file with mode: 0644]
src/player-info/base-status-info.h [new file with mode: 0644]
src/player-info/self-info-util.h
src/player-info/self-info.c

index 081b5eb..00e5e3c 100644 (file)
     <ClCompile Include="..\..\src\object-activation\activation-resistance.c" />\r
     <ClCompile Include="..\..\src\object-activation\activation-teleport.c" />\r
     <ClCompile Include="..\..\src\object-activation\activation-util.c" />\r
+    <ClCompile Include="..\..\src\player-info\base-status-info.c" />\r
     <ClCompile Include="..\..\src\player-info\body-improvement-info.c" />\r
     <ClCompile Include="..\..\src\player-info\class-ability-info.c" />\r
     <ClCompile Include="..\..\src\player-info\mutation-info.c" />\r
     <ClInclude Include="..\..\src\object-activation\activation-resistance.h" />\r
     <ClInclude Include="..\..\src\object-activation\activation-teleport.h" />\r
     <ClInclude Include="..\..\src\object-activation\activation-util.h" />\r
+    <ClInclude Include="..\..\src\player-info\base-status-info.h" />\r
     <ClInclude Include="..\..\src\player-info\base-status-types.h" />\r
     <ClInclude Include="..\..\src\player-info\body-improvement-info.h" />\r
     <ClInclude Include="..\..\src\player-info\class-ability-info.h" />\r
index 01b989b..0516217 100644 (file)
     <ClCompile Include="..\..\src\player-info\resistance-info.c">
       <Filter>player-info</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\player-info\base-status-info.c">
+      <Filter>player-info</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\combat\shoot.h">
     <ClInclude Include="..\..\src\player-info\resistance-info.h">
       <Filter>player-info</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\player-info\base-status-info.h">
+      <Filter>player-info</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index cb6b3dc..bbd9124 100644 (file)
@@ -631,6 +631,7 @@ hengband_SOURCES = \
        player-attack/player-attack.c player-attack/player-attack.h \
        \
        player-info/avatar.h player-info/avatar.c \
+       player-info/base-status-info.c player-info/base-status-info.h \
        player-info/base-status-types.h \
        player-info/body-improvement-info.c player-info/body-improvement-info.h \
        player-info/class-ability-info.c player-info/class-ability-info.h \
diff --git a/src/player-info/base-status-info.c b/src/player-info/base-status-info.c
new file mode 100644 (file)
index 0000000..1f2a8ec
--- /dev/null
@@ -0,0 +1,78 @@
+#include "player-info/base-status-info.h"
+#include "inventory/inventory-slot-types.h"
+#include "player-info/self-info-util.h"
+#include "object/object-flags.h"
+#include "object-enchant/tr-types.h"
+#include "util/bit-flags-calculator.h"
+
+void set_equipment_influence(player_type *creature_ptr, self_info_type *si_ptr)
+{
+    for (int k = INVEN_RARM; k < INVEN_TOTAL; k++) {
+        u32b tflgs[TR_FLAG_SIZE];
+        object_type *o_ptr = &creature_ptr->inventory_list[k];
+        if (o_ptr->k_idx == 0)
+            continue;
+
+        object_flags(creature_ptr, o_ptr, tflgs);
+        for (int j = 0; j < TR_FLAG_SIZE; j++)
+            si_ptr->flags[j] |= tflgs[j];
+    }
+
+    if (have_flag(si_ptr->flags, TR_STR))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\98r\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your strength is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_INT))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\92m\94\\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your intelligence is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_WIS))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8c«\82³\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your wisdom is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_DEX))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8aí\97p\82³\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your dexterity is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_CON))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\91Ï\8bv\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your constitution is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_CHR))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\96£\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your charisma is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_STEALTH))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\89B\96§\8ds\93®\94\\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your stealth is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_SEARCH))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\92T\8dõ\94\\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your searching ability is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_INFRA))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\90Ô\8aO\90ü\8e\8b\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your infravision is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_TUNNEL))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8dÌ\8c@\94\\97Í\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your digging ability is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_SPEED))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\83X\83s\81[\83h\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your speed is affected by your equipment.");
+
+    if (have_flag(si_ptr->flags, TR_BLOWS))
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8dU\8c\82\91¬\93x\82Í\91\95\94õ\82É\82æ\82Á\82Ä\89e\8b¿\82ð\8eó\82¯\82Ä\82¢\82é\81B", "Your attack speed is affected by your equipment.");
+}
+
+void set_status_sustain_info(player_type *creature_ptr, self_info_type *si_ptr)
+{
+    if (creature_ptr->sustain_str) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\98r\97Í\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your strength is sustained.");
+    }
+    if (creature_ptr->sustain_int) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\92m\94\\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your intelligence is sustained.");
+    }
+    if (creature_ptr->sustain_wis) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8c«\82³\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your wisdom is sustained.");
+    }
+    if (creature_ptr->sustain_con) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\91Ï\8bv\97Í\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your constitution is sustained.");
+    }
+    if (creature_ptr->sustain_dex) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\8aí\97p\82³\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your dexterity is sustained.");
+    }
+    if (creature_ptr->sustain_chr) {
+        si_ptr->info[si_ptr->line++] = _("\82 \82È\82½\82Ì\96£\97Í\82Í\88Û\8e\9d\82³\82ê\82Ä\82¢\82é\81B", "Your charisma is sustained.");
+    }
+}
diff --git a/src/player-info/base-status-info.h b/src/player-info/base-status-info.h
new file mode 100644 (file)
index 0000000..015c45f
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once
+
+#include "system/angband.h"
+
+typedef struct self_info_type self_info_type;
+void set_equipment_influence(player_type *creature_ptr, self_info_type *si_ptr);
+void set_status_sustain_info(player_type *creature_ptr, self_info_type *si_ptr);
index a9a9b32..d965604 100644 (file)
@@ -8,7 +8,6 @@ typedef struct self_info_type {
     char v_string[8][128];
     char s_string[6][128];
     BIT_FLAGS flags[TR_FLAG_SIZE];
-    object_type *o_ptr;
     char plev_buf[80];
     char buf[2][80];
     concptr info[220];
index 20aaa20..c3c8bca 100644 (file)
@@ -18,6 +18,7 @@
 #include "object-enchant/trc-types.h"
 #include "object/object-flags.h"
 #include "player-info/avatar.h"
+#include "player-info/base-status-info.h"
 #include "player-info/body-improvement-info.h"
 #include "player-info/class-ability-info.h"
 #include "player-info/mutation-info.h"
@@ -124,56 +125,6 @@ void display_mimic_race_ability(player_type *creature_ptr, self_info_type *si_pt
     }
 }
 
-void display_equipment_influence(player_type *creature_ptr, self_info_type *si_ptr)
-{
-    for (int k = INVEN_RARM; k < INVEN_TOTAL; k++) {
-        u32b tflgs[TR_FLAG_SIZE];
-        si_ptr->o_ptr = &creature_ptr->inventory_list[k];
-        if (si_ptr->o_ptr->k_idx == 0)
-            continue;
-
-        object_flags(creature_ptr, si_ptr->o_ptr, tflgs);
-        for (int j = 0; j < TR_FLAG_SIZE; j++)
-            si_ptr->flags[j] |= tflgs[j];
-    }
-
-    if (have_flag(si_ptr->flags, TR_STR))
-        si_ptr->info[si_ptr->line++] = _("あなたの腕力は装備によって影響を受けている。", "Your strength is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_INT))
-        si_ptr->info[si_ptr->line++] = _("あなたの知能は装備によって影響を受けている。", "Your intelligence is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_WIS))
-        si_ptr->info[si_ptr->line++] = _("あなたの賢さは装備によって影響を受けている。", "Your wisdom is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_DEX))
-        si_ptr->info[si_ptr->line++] = _("あなたの器用さは装備によって影響を受けている。", "Your dexterity is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_CON))
-        si_ptr->info[si_ptr->line++] = _("あなたの耐久力は装備によって影響を受けている。", "Your constitution is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_CHR))
-        si_ptr->info[si_ptr->line++] = _("あなたの魅力は装備によって影響を受けている。", "Your charisma is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_STEALTH))
-        si_ptr->info[si_ptr->line++] = _("あなたの隠密行動能力は装備によって影響を受けている。", "Your stealth is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_SEARCH))
-        si_ptr->info[si_ptr->line++] = _("あなたの探索能力は装備によって影響を受けている。", "Your searching ability is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_INFRA))
-        si_ptr->info[si_ptr->line++] = _("あなたの赤外線視力は装備によって影響を受けている。", "Your infravision is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_TUNNEL))
-        si_ptr->info[si_ptr->line++] = _("あなたの採掘能力は装備によって影響を受けている。", "Your digging ability is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_SPEED))
-        si_ptr->info[si_ptr->line++] = _("あなたのスピードは装備によって影響を受けている。", "Your speed is affected by your equipment.");
-
-    if (have_flag(si_ptr->flags, TR_BLOWS))
-        si_ptr->info[si_ptr->line++] = _("あなたの攻撃速度は装備によって影響を受けている。", "Your attack speed is affected by your equipment.");
-}
-
 void set_bad_status_info(player_type *creature_ptr, self_info_type *si_ptr)
 {
     if (creature_ptr->blind)
@@ -368,32 +319,11 @@ void self_knowledge(player_type *creature_ptr)
     set_element_resistance_info(creature_ptr, si_ptr);
     set_high_resistance_info(creature_ptr, si_ptr);
     set_body_improvement_info_4(creature_ptr, si_ptr);
-    if (creature_ptr->sustain_str) {
-        si_ptr->info[si_ptr->line++] = _("あなたの腕力は維持されている。", "Your strength is sustained.");
-    }
-    if (creature_ptr->sustain_int) {
-        si_ptr->info[si_ptr->line++] = _("あなたの知能は維持されている。", "Your intelligence is sustained.");
-    }
-    if (creature_ptr->sustain_wis) {
-        si_ptr->info[si_ptr->line++] = _("あなたの賢さは維持されている。", "Your wisdom is sustained.");
-    }
-    if (creature_ptr->sustain_con) {
-        si_ptr->info[si_ptr->line++] = _("あなたの耐久力は維持されている。", "Your constitution is sustained.");
-    }
-    if (creature_ptr->sustain_dex) {
-        si_ptr->info[si_ptr->line++] = _("あなたの器用さは維持されている。", "Your dexterity is sustained.");
-    }
-    if (creature_ptr->sustain_chr) {
-        si_ptr->info[si_ptr->line++] = _("あなたの魅力は維持されている。", "Your charisma is sustained.");
-    }
-
-    display_equipment_influence(creature_ptr, si_ptr);
-
-    /* Access the current weapon */
-    si_ptr->o_ptr = &creature_ptr->inventory_list[INVEN_RARM];
+    set_status_sustain_info(creature_ptr, si_ptr);
+    set_equipment_influence(creature_ptr, si_ptr);
 
-    /* Analyze the weapon */
-    if (si_ptr->o_ptr->k_idx) {
+    object_type *o_ptr = &creature_ptr->inventory_list[INVEN_RARM];
+    if (o_ptr->k_idx != 0) {
         /* Indicate Blessing */
         if (have_flag(si_ptr->flags, TR_BLESSED)) {
             si_ptr->info[si_ptr->line++] = _("あなたの武器は神の祝福を受けている。", "Your weapon has been blessed by the gods.");