OSDN Git Service

[Refactor] その他フラグを定義
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Thu, 25 Jan 2024 22:20:01 +0000 (07:20 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Wed, 31 Jan 2024 11:33:59 +0000 (20:33 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/lore/lore-calculator.cpp
src/lore/lore-store.cpp
src/lore/lore-util.cpp
src/lore/lore-util.h
src/monster-race/race-misc-flags.h [new file with mode: 0644]
src/system/dungeon-info.h
src/system/monster-race-info.h

index 9280502..ffbc892 100644 (file)
     <ClInclude Include="..\..\src\monster-race\race-drop-flags.h" />\r
     <ClInclude Include="..\..\src\monster-race\race-feature-flags.h" />\r
     <ClInclude Include="..\..\src\monster-race\race-kind-flags.h" />\r
+    <ClInclude Include="..\..\src\monster-race\race-misc-flags.h" />\r
     <ClInclude Include="..\..\src\monster-race\race-population-flags.h" />\r
     <ClInclude Include="..\..\src\monster-race\race-resistance-mask.h" />\r
     <ClInclude Include="..\..\src\monster-race\race-speak-flags.h" />\r
     <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.7.0.4\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.7.0.4\build\Microsoft.CodeAnalysis.NetAnalyzers.props'))" />\r
     <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.7.0.4\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.7.0.4\build\Microsoft.CodeAnalysis.NetAnalyzers.targets'))" />\r
   </Target>\r
-</Project>
\ No newline at end of file
+</Project>\r
index eda5dd4..0826b34 100644 (file)
     <ClInclude Include="..\..\src\monster-race\race-sex-const.h">\r
       <Filter>monster-race</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\src\monster-race\race-misc-flags.h">\r
+      <Filter>monster-race</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <None Include="..\..\src\wall.bmp" />\r
   <ItemGroup>\r
     <ResourceCompile Include="..\..\src\angband.rc" />\r
   </ItemGroup>\r
-</Project>
\ No newline at end of file
+</Project>\r
index 5cee090..b0e1efe 100644 (file)
@@ -524,6 +524,7 @@ hengband_SOURCES = \
        monster-race/race-flags7.h monster-race/race-flags8.h \
        monster-race/race-indice-types.h \
        monster-race/race-kind-flags.h \
+       monster-race/race-misc-flags.h \
        monster-race/race-population-flags.h \
        monster-race/race-resistance-mask.cpp monster-race/race-resistance-mask.h \
        monster-race/race-sex-const.cpp monster-race/race-sex-const.h \
index d620ef8..2a12099 100644 (file)
@@ -169,4 +169,5 @@ void set_flags_for_full_knowledge(lore_type *lore_ptr)
     lore_ptr->feature_flags = lore_ptr->r_ptr->feature_flags;
     lore_ptr->drop_flags = lore_ptr->r_ptr->drop_flags;
     lore_ptr->special_flags = lore_ptr->r_ptr->special_flags;
+    lore_ptr->misc_flags = lore_ptr->r_ptr->misc_flags;
 }
index 237acce..d4421a6 100644 (file)
@@ -96,6 +96,7 @@ int lore_do_probe(PlayerType *player_ptr, MonsterRaceId r_idx)
     n += count_lore_mflag_group(r_ptr->drop_flags, r_ptr->r_drop_flags);
     n += count_lore_mflag_group(r_ptr->feature_flags, r_ptr->r_feature_flags);
     n += count_lore_mflag_group(r_ptr->special_flags, r_ptr->r_special_flags);
+    n += count_lore_mflag_group(r_ptr->misc_flags, r_ptr->r_misc_flags);
 
     r_ptr->r_flags1 = r_ptr->flags1;
     r_ptr->r_flags2 = r_ptr->flags2;
@@ -106,6 +107,7 @@ int lore_do_probe(PlayerType *player_ptr, MonsterRaceId r_idx)
     r_ptr->r_drop_flags = r_ptr->drop_flags;
     r_ptr->r_feature_flags = r_ptr->feature_flags;
     r_ptr->r_special_flags = r_ptr->special_flags;
+    r_ptr->r_misc_flags = r_ptr->misc_flags;
 
     if (!r_ptr->r_can_evolve) {
         n++;
index cf4ba7b..2605b56 100644 (file)
@@ -52,6 +52,7 @@ lore_type::lore_type(MonsterRaceId r_idx, monster_lore_mode mode)
     this->feature_flags = (this->r_ptr->feature_flags & this->r_ptr->r_feature_flags);
     this->brightness_flags = this->r_ptr->brightness_flags;
     this->special_flags = (this->r_ptr->special_flags & this->r_ptr->r_special_flags);
+    this->misc_flags = (this->r_ptr->misc_flags & this->r_ptr->r_misc_flags);
 }
 
 /*!
index 31daa7c..01a1688 100644 (file)
@@ -9,6 +9,7 @@
 #include "monster-race/race-feature-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-kind-flags.h"
+#include "monster-race/race-misc-flags.h"
 #include "monster-race/race-special-flags.h"
 #include "monster-race/race-visual-flags.h"
 #include "system/angband.h"
@@ -83,6 +84,7 @@ struct lore_type {
     EnumClassFlagGroup<MonsterFeatureType> feature_flags;
     EnumClassFlagGroup<MonsterBrightnessType> brightness_flags;
     EnumClassFlagGroup<MonsterSpecialType> special_flags;
+    EnumClassFlagGroup<MonsterMiscType> misc_flags;
 };
 
 using hook_c_roff_pf = void (*)(TERM_COLOR attr, std::string_view str);
diff --git a/src/monster-race/race-misc-flags.h b/src/monster-race/race-misc-flags.h
new file mode 100644 (file)
index 0000000..4aaa887
--- /dev/null
@@ -0,0 +1,26 @@
+#pragma once
+
+enum class MonsterMiscType {
+    FORCE_DEPTH = 0,
+    FORCE_MAXHP = 1,
+    HAS_FRIENDS = 2,
+    ESCORT = 3,
+    MORE_ESCORT = 4,
+    RIDING = 5,
+    INVISIBLE = 6,
+    COLD_BLOOD = 7,
+    KAGE = 8,
+    CHAMELEON = 9,
+    TANUKI = 10,
+    NO_QUEST = 11,
+    ELDRITCH_HORROR = 12,
+    MULTIPLY = 13,
+    REGENERATE = 14,
+    POWERFUL = 15,
+    REFLECTING = 16,
+    QUESTOR = 17,
+    EMPTY_MIND = 18,
+    WEIRD_MIND = 19,
+    GUARDIAN = 20,
+    MAX
+};
index 0d7c477..b090617 100644 (file)
@@ -8,6 +8,7 @@
 #include "monster-race/race-feature-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-kind-flags.h"
+#include "monster-race/race-misc-flags.h"
 #include "monster-race/race-population-flags.h"
 #include "monster-race/race-resistance-mask.h"
 #include "monster-race/race-speak-flags.h"
@@ -100,6 +101,7 @@ struct dungeon_type {
     EnumClassFlagGroup<MonsterSpeakType> mon_speak_flags;
     EnumClassFlagGroup<MonsterBrightnessType> mon_brightness_flags;
     EnumClassFlagGroup<MonsterSpecialType> mon_special_flags;
+    EnumClassFlagGroup<MonsterMiscType> mon_misc_flags;
     MonsterSex mon_sex{};
 
     std::vector<char> r_chars; /* Monster symbols allowed */
index 52da3b3..8cc156d 100644 (file)
@@ -10,6 +10,7 @@
 #include "monster-race/race-feature-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-kind-flags.h"
+#include "monster-race/race-misc-flags.h"
 #include "monster-race/race-population-flags.h"
 #include "monster-race/race-sex-const.h"
 #include "monster-race/race-speak-flags.h"
@@ -96,6 +97,7 @@ public:
     EnumClassFlagGroup<MonsterSpeakType> speak_flags; //!< 能力フラグ(セリフ) / Speaking Flags
     EnumClassFlagGroup<MonsterBrightnessType> brightness_flags; //!< 能力フラグ(明暗) / Speaking Lite or Dark
     EnumClassFlagGroup<MonsterSpecialType> special_flags; //!< 能力フラグ(特殊) / Special Flags
+    EnumClassFlagGroup<MonsterMiscType> misc_flags; //!< 能力フラグ(その他) / Speaking Other
     MonsterBlow blows[MAX_NUM_BLOWS]{}; //!< 打撃能力定義 / Up to four blows per round
 
     //! 指定護衛リスト <モンスター種族ID,護衛数ダイス数,護衛数ダイス面>
@@ -139,6 +141,7 @@ public:
     EnumClassFlagGroup<MonsterDropType> r_drop_flags; //!< 見た能力フラグ(ドロップ) / Observed drop flags
     EnumClassFlagGroup<MonsterFeatureType> r_feature_flags; //!< 見た能力フラグ(地形関連) / Observed feature flags
     EnumClassFlagGroup<MonsterSpecialType> r_special_flags; //!< 見た能力フラグ(特殊) / Observed special flags
+    EnumClassFlagGroup<MonsterMiscType> r_misc_flags; //!< 見た能力フラグ(その他) / Observed feature flags
     PLAYER_LEVEL defeat_level{}; //!< 倒したレベル(ユニーク用) / player level at which defeated this race
     REAL_TIME defeat_time{}; //!< 倒した時間(ユニーク用) / time at which defeated this race
     PERCENTAGE cur_hp_per{}; //!< 生成時現在HP率(%)