OSDN Git Service

[Refactor] 性別フラグを再定義
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sat, 21 Oct 2023 14:53:37 +0000 (23:53 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Thu, 28 Dec 2023 13:19:28 +0000 (22:19 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/monster-race/race-sex-const.cpp [new file with mode: 0644]
src/monster-race/race-sex-const.h [new file with mode: 0644]
src/system/monster-race-info.h

index cb62b6f..8f5b363 100644 (file)
     <ClCompile Include="..\..\src\main-win\main-win-exception.cpp" />\r
     <ClCompile Include="..\..\src\monster-race\race-brightness-mask.cpp" />\r
     <ClCompile Include="..\..\src\monster-race\race-feature-mask.cpp" />\r
+    <ClCompile Include="..\..\src\monster-race\race-sex-const.cpp" />\r
     <ClCompile Include="..\..\src\monster\monster-pain-describer.cpp" />\r
     <ClCompile Include="..\..\src\net\curl-easy-session.cpp" />\r
     <ClCompile Include="..\..\src\net\curl-slist.cpp" />\r
     <ClInclude Include="..\..\src\wizard\tval-descriptions-table.h" />\r
     <ClInclude Include="..\..\src\load\quest-loader.h" />\r
     <ClInclude Include="..\..\src\view\display-store.h" />\r
+    <ClInclude Include="..\..\src\monster-race\race-sex-const.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\src\system\angband.h" />\r
index b8905c2..fb42be2 100644 (file)
     <ClCompile Include="..\..\src\system\angband-system.cpp">\r
       <Filter>system</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\..\src\monster-race\race-sex-const.cpp">\r
+      <Filter>monster-race</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\src\combat\shoot.h">\r
     <ClInclude Include="..\..\src\system\angband-system.h">\r
       <Filter>system</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\src\monster-race\race-sex-const.h">\r
+      <Filter>monster-race</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <None Include="..\..\src\wall.bmp" />\r
index 080dff5..77b3661 100644 (file)
@@ -527,6 +527,7 @@ hengband_SOURCES = \
        monster-race/race-kind-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 \
        monster-race/race-speak-flags.h \
        monster-race/race-visual-flags.h \
        monster-race/race-wilderness-flags.h \
diff --git a/src/monster-race/race-sex-const.cpp b/src/monster-race/race-sex-const.cpp
new file mode 100644 (file)
index 0000000..4d79ed2
--- /dev/null
@@ -0,0 +1,42 @@
+#include "monster-race/race-sex-const.h"
+#include "system/monster-race-info.h"
+
+/*!
+ * @brief 性別が男性を含むか否かを判定
+ * @param 性別の変数
+ * @return 男性を含むか否か
+ */
+bool is_male(const MonsterSex sex)
+{
+    return sex == MonsterSex::MALE;
+}
+
+/*!
+ * @brief 性別が男性を含むか否かを判定
+ * @param 判定するモンスターの参照
+ * @return 男性を含むか否か
+ */
+bool is_male(const MonsterRaceInfo &monrace)
+{
+    return is_male(monrace.sex);
+}
+
+/*!
+ * @brief 性別が女性を含むか否かを判定
+ * @param 性別の変数
+ * @return 女性を含むか否か
+ */
+bool is_female(const MonsterSex sex)
+{
+    return sex == MonsterSex::FEMALE;
+}
+
+/*!
+ *@brief 性別が女性を含むか否かを判定
+ * @param 判定するモンスターの参照
+ *@return 女性を含むか否か
+ */
+bool is_female(const MonsterRaceInfo &monrace)
+{
+    return is_female(monrace.sex);
+}
diff --git a/src/monster-race/race-sex-const.h b/src/monster-race/race-sex-const.h
new file mode 100644 (file)
index 0000000..3e02fe3
--- /dev/null
@@ -0,0 +1,14 @@
+#pragma once
+
+class MonsterRaceInfo;
+
+enum class MonsterSex {
+    NONE = 0,
+    MALE = 1,
+    FEMALE = 2,
+};
+
+bool is_male(const MonsterSex sex);
+bool is_male(const MonsterRaceInfo &monrace);
+bool is_female(const MonsterSex sex);
+bool is_female(const MonsterRaceInfo &monrace);
index 73cca82..696efac 100644 (file)
@@ -11,6 +11,7 @@
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-kind-flags.h"
 #include "monster-race/race-population-flags.h"
+#include "monster-race/race-sex-const.h"
 #include "monster-race/race-speak-flags.h"
 #include "monster-race/race-visual-flags.h"
 #include "monster-race/race-wilderness-flags.h"
@@ -75,6 +76,7 @@ public:
     byte speed{}; //!< 加速(110で+0) / Speed (normally 110)
     EXP mexp{}; //!< 殺害時基本経験値 / Exp value for kill
     RARITY freq_spell{}; //!< 魔法&特殊能力仕様頻度(1/n) /  Spell frequency
+    MonsterSex sex{}; //!< 性別 / Sex
     BIT_FLAGS flags1{}; //!< Flags 1 (general)
     BIT_FLAGS flags2{}; //!< Flags 2 (abilities)
     BIT_FLAGS flags3{}; //!< Flags 3 (race/resist)