<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
<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
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 \
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;
}
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;
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++;
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);
}
/*!
#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"
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);
--- /dev/null
+#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
+};
#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"
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 */
#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"
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,護衛数ダイス数,護衛数ダイス面>
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率(%)