<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
<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
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 \
--- /dev/null
+#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);
+}
--- /dev/null
+#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);
#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"
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)