aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-08-15 22:17:22 +0200
committerShauren <shauren.trinity@gmail.com>2022-10-04 00:19:38 +0200
commitf6baed006a5fde5d9ae6e6d80a385837640bb90a (patch)
tree9a2b0d15d1110b40f20c8dc6fbefe3de440ca1a8
parent20357af88ec9265869cca3c1db3c5f43ef37e587 (diff)
Core/DataStores: Defined map.db2 flags
-rw-r--r--src/server/game/DataStores/DB2Structure.h9
-rw-r--r--src/server/game/DataStores/DBCEnums.h70
2 files changed, 70 insertions, 9 deletions
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index 4e674c03483..f1d2e6f7fcf 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -2554,10 +2554,13 @@ struct MapEntry
}
}
- bool IsDynamicDifficultyMap() const { return (Flags[0] & MAP_FLAG_CAN_TOGGLE_DIFFICULTY) != 0; }
- bool IsFlexLocking() const { return (Flags[0] & MAP_FLAG_FLEX_LOCKING) != 0; }
- bool IsGarrison() const { return (Flags[0] & MAP_FLAG_GARRISON) != 0; }
+ bool IsDynamicDifficultyMap() const { return GetFlags().HasFlag(MapFlags::DynamicDifficulty); }
+ bool IsFlexLocking() const { return GetFlags().HasFlag(MapFlags::FlexibleRaidLocking); }
+ bool IsGarrison() const { return GetFlags().HasFlag(MapFlags::Garrison); }
bool IsSplitByFaction() const { return ID == 609 || ID == 2175; }
+
+ EnumFlag<MapFlags> GetFlags() const { return static_cast<MapFlags>(Flags[0]); }
+ EnumFlag<MapFlags2> GetFlags2() const { return static_cast<MapFlags2>(Flags[1]); }
};
struct MapChallengeModeEntry
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 964ced725a8..94e9ad90685 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -1011,12 +1011,70 @@ enum MapTypes // Lua_IsInInstance
MAP_SCENARIO = 5 // scenario
};
-enum MapFlags
-{
- MAP_FLAG_CAN_TOGGLE_DIFFICULTY = 0x00000100,
- MAP_FLAG_FLEX_LOCKING = 0x00008000,
- MAP_FLAG_GARRISON = 0x04000000
-};
+enum class MapFlags : uint32
+{
+ Optimize = 0x00000001,
+ DevelopmentMap = 0x00000002,
+ WeightedBlend = 0x00000004,
+ VertexColoring = 0x00000008,
+ SortObjects = 0x00000010,
+ LimitToPlayersFromOneRealm = 0x00000020,
+ EnableLighting = 0x00000040,
+ InvertedTerrain = 0x00000080,
+ DynamicDifficulty = 0x00000100,
+ ObjectFile = 0x00000200,
+ TextureFile = 0x00000400,
+ GenerateNormals = 0x00000800,
+ FixBorderShadowSeams = 0x00001000,
+ InfiniteOcean = 0x00002000,
+ UnderwaterMap = 0x00004000,
+ FlexibleRaidLocking = 0x00008000,
+ LimitFarclip = 0x00010000,
+ UseParentMapFlightBounds = 0x00020000,
+ NoRaceChangeOnThisMap = 0x00040000,
+ DisabledForNonGMs = 0x00080000,
+ WeightedNormals1 = 0x00100000,
+ DisableLowDetailTerrain = 0x00200000,
+ EnableOrgArenaBlinkRule = 0x00400000,
+ WeightedHeightBlend = 0x00800000,
+ CoalescingAreaSharing = 0x01000000,
+ ProvingGrounds = 0x02000000,
+ Garrison = 0x04000000,
+ EnableAINeedSystem = 0x08000000,
+ SingleVServer = 0x10000000,
+ UseInstancePool = 0x20000000,
+ MapUsesRaidGraphics = 0x40000000,
+ ForceCustomUIMap = 0x80000000,
+};
+
+DEFINE_ENUM_FLAG(MapFlags);
+
+enum class MapFlags2 : uint32
+{
+ DontActivateShowMap = 0x00000001,
+ NoVoteKicks = 0x00000002,
+ NoIncomingTransfers = 0x00000004,
+ DontVoxelizePathData = 0x00000008,
+ TerrainLOD = 0x00000010,
+ UnclampedPointLights = 0x00000020,
+ PVP = 0x00000040,
+ IgnoreInstanceFarmLimit = 0x00000080,
+ DontInheritAreaLightsFromParent = 0x00000100,
+ ForceLightBufferOn = 0x00000200,
+ WMOLiquidScale = 0x00000400,
+ SpellClutterOn = 0x00000800,
+ SpellClutterOff = 0x00001000,
+ ReducedPathMapHeightValidation = 0x00002000,
+ NewMinimapGeneration = 0x00004000,
+ AIBotsDetectedLikePlayers = 0x00008000,
+ LinearlyLitTerrain = 0x00010000,
+ FogOfWar = 0x00020000,
+ DisableSharedWeatherSystems = 0x00040000,
+ HonorSpellAttribute11LosHitsNocamcollide = 0x00080000,
+ BelongsToLayer = 0x00100000,
+};
+
+DEFINE_ENUM_FLAG(MapFlags2);
enum MapDifficultyFlags : uint8
{