OSDN Git Service

[Refactor] 荒野関連の出現フラグを再定義
[hengbandforosx/hengbandosx.git] / src / dungeon / dungeon.h
index 0345cea..eaf9373 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <vector>
@@ -6,8 +6,12 @@
 #include "dungeon/dungeon-flag-types.h"
 #include "monster-race/race-ability-flags.h"
 #include "monster-race/race-behavior-flags.h"
+#include "monster-race/race-drop-flags.h"
+#include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-kind-flags.h"
+#include "monster-race/race-resistance-mask.h"
 #include "monster-race/race-visual-flags.h"
+#include "monster-race/race-wilderness-flags.h"
 #include "system/angband.h"
 #include "util/flag-group.h"
 
 #define DUNGEON_DARKNESS 19
 #define DUNGEON_MAX 19
 
-typedef struct feat_prob {
+enum class MonsterRaceId : int16_t;
+
+struct feat_prob {
     FEAT_IDX feat{}; /* Feature tile */
     PERCENTAGE percent{}; /* Chance of type */
-} feat_prob;
+};
 
 /* A structure for the != dungeon types */
 struct dungeon_type {
@@ -74,17 +80,19 @@ struct dungeon_type {
     BIT_FLAGS mflags7{};
     BIT_FLAGS mflags8{};
     BIT_FLAGS mflags9{};
-    BIT_FLAGS mflagsr{};
 
     EnumClassFlagGroup<MonsterAbilityType> mon_ability_flags;
     EnumClassFlagGroup<MonsterBehaviorType> mon_behavior_flags;
     EnumClassFlagGroup<MonsterVisualType> mon_visual_flags;
     EnumClassFlagGroup<MonsterKindType> mon_kind_flags;
+    EnumClassFlagGroup<MonsterResistanceType> mon_resistance_flags;
+    EnumClassFlagGroup<MonsterDropType> mon_drop_flags;
+    EnumClassFlagGroup<MonsterWildernessType> mon_wilderness_flags;
 
     char r_char[5]{}; /* Monster race allowed */
     KIND_OBJECT_IDX final_object{}; /* The object you'll find at the bottom */
     ARTIFACT_IDX final_artifact{}; /* The artifact you'll find at the bottom */
-    MONRACE_IDX final_guardian{}; /* The artifact's guardian. If an artifact is specified, then it's NEEDED */
+    MonsterRaceId final_guardian{}; /* The artifact's guardian. If an artifact is specified, then it's NEEDED */
 
     PROB special_div{}; /* % of monsters affected by the flags/races allowed, to add some variety */
     int tunnel_percent{};