DB/AreaTable: Difference between revisions

From wowdev
Jump to navigation Jump to search
No edit summary
(58 intermediate revisions by 13 users not shown)
Line 1: Line 1:
Contains general information about the areas (different from Zones, but included) in the game.
Contains general information about the areas (different from Zones, but included) in the game.


== Header Info ==
==Classic==
===0.5.3.3368===
====Struct====
struct AreaTableRec {
  uint32_t m_ID;
  uint32_t m_AreaNumber;    // area  = (m_AreaNumber >> 16), subarea = (m_AreaNumber & 0xFFFF)
  {{Template:Type/foreign_key|table=Map}} m_ContinentID;
  {{Template:Type/foreign_key|table=AreaTable}} m_ParentAreaNum;
  uint32_t m_AreaBit;
  uint32_t m_flags;        // &1 and &2 only, see flags
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPref;
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPrefUnderwater;
  {{Template:Type/foreign_key|table=AreaMIDIAmbiences}} m_MIDIAmbience;
  {{Template:Type/foreign_key|table=AreaMIDIAmbiences}} m_MIDIAmbienceUnderwater;
  {{Template:Type/foreign_key|table=ZoneMusic}} m_ZoneMusic;
  uint32_t m_IntroSound;
  uint32_t m_IntroPriority; // highest m_IntroPriority gets played when two intro sounds compete (Elwynn Forest < Valley of Heroes)
  {{Template:Type|langstringref}} m_AreaName_lang;
};


Records..................1594
===1.12.1.5875===
  Fields.....................27
struct AreaTableRec {
Record Size...............108
  uint32_t m_ID;
String Block Size.......23291
  {{Template:Type/foreign_key|table=Map}} m_ContinentID;
  {{Template:Type/foreign_key|table=AreaTable}} m_ParentAreaNum;
  uint32_t m_AreaBit;
  uint32_t m_flags;
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPref;
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPrefUnderwater;
  {{Template:Type/foreign_key|table=SoundAmbience}} m_AmbienceID;
  {{Template:Type/foreign_key|table=ZoneMusic}} m_ZoneMusic;
  {{Template:Type/foreign_key|table=ZoneIntroMusicTable}} m_IntroSound;
  uint32_t m_ExplorationLevel;
  {{Template:Type|langstringref}} m_AreaName_lang;
  uint32_t m_factionGroupMask;
  {{Template:Type/foreign_key|table=LiquidType}} m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  {{Template:Type/foreign_key|table=Light}} m_lightid;
  };
==Wrath==
===3.3.5.12340===
====Table====
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Column
! width="180" | Field
! width="80" | Type
! width="500" | Notes
|-
| 1 || ID || Integer ||
|- style="background:#F0F8FF;"
| 2 || [[Map.dbc|Map.ID]] || iRefID ||
|- style="background:#F0F8FF;"
| 3 || [[AreaTable.dbc|Parent_AreaTable.ID]] || iRefID || Recursive. If this is a sub-area, it will link to its parent area.
|-
| 4 || AreaBit || Integer || Use new unique value when creating custom row for making maps work correctly. Value higher than 4095 might not work for TC2.
|-
| 5 || Flags || BitMask || See below.
|- style="background:#F0F8FF;"
| 6 || [[SoundProviderPreferences.dbc|SoundProviderPrefferences]] || iRefID ||
|- style="background:#F0F8FF;"
| 7 || [[SoundProviderPreferences.dbc|Underwater_SoundProviderPrefferences]] || iRefID ||
|- style="background:#F0F8FF;"
| 8 || [[SoundAmbience.dbc|SoundAmbience]] || iRefID || Ambient sound
|- style="background:#F0F8FF;"
| 9 || [[ZoneMusic.dbc|ZoneMusic]] || iRefID || Ambient music
|- style="background:#F0F8FF;"
| 10 || [[ZoneIntroMusicTable.dbc|ZoneIntroMusicTable]] || iRefID || Music upon entering the zone
|-
| 11 || ExplorationLevel || Integer || Level this is made for
|-
| 12-28 || Name || [[Loc]] ||
|- style="background:#F0F8FF;"
| 29 || [[FactionGroup.dbc|FactionGroup]] || iRefID (/Mask?) || 0 Contested, 2 Alliance, 4 Horde territory. Shattrath City and Dalaran have value 6 (Horde+Alliance?) for some reason.
|- style="background:#F0F8FF;"
| 30 || [[LiquidType.dbc|LiquidType]] || iRefID[4] || [0]: Water, [1]: Ocean, [2]: Magma, [3]: Slime
|-
| 34 || MinElevation || Float || -5000, -500, 1000
|-
| 35 || AmbientMultiplier || Float || 0.0 - 1.0; Something to do with character ambient lightning
|- style="background:#F0F8FF;"
| 36 || [[Light.dbc|Light]] || iRefID ||
|}


== Structure ==
==Warlords==
===6.0.1.18179===
====Struct====
struct AreaTableRec {
  uint32_t m_ID;
  {{Template:Type/foreign_key|table=Map}} m_ContinentID;
  {{Template:Type/foreign_key|table=AreaTable}} m_ParentAreaID;
  uint32_t m_AreaBit;
  uint32_t m_flags[2]; // 0x100000000: isMicroDungeon
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPref;
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPrefUnderwater;
  {{Template:Type/foreign_key|table=SoundAmbience}} m_AmbienceID;
  {{Template:Type/foreign_key|table=ZoneMusic}} m_ZoneMusic;
  {{Template:Type|stringref}} m_ZoneName;
  {{Template:Type/foreign_key|table=ZoneIntroMusicTable}} m_IntroSound;
  uint32_t m_ExplorationLevel;
  {{Template:Type|langstringref}} m_AreaName_lang;
  uint32_t m_factionGroupMask;
  {{Template:Type/foreign_key|table=LiquidType}} m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  {{Template:Type/foreign_key|table=Light}} m_lightid;
  uint32_t m_mountFlags;
  {{Template:Type/foreign_key|table=ZoneIntroMusicTable}} m_uwIntroSound;
  {{Template:Type/foreign_key|table=ZoneMusic}} m_uwZoneMusic;
  {{Template:Type/foreign_key|table=SoundAmbience}} m_uwAmbience;
  uint32_t m_world_pvp_id;
  {{Template:Type/foreign_key|table=WorldState}} m_pvpCombatWorldStateID;
  uint32_t m_wildBattlePetLevelMin;
  uint32_t m_wildBattlePetLevelMax;
  {{Template:Type/foreign_key|table=WindSettings}} m_windSettingsID;
};


'''Column Field Type Patch Notes'''
==enum AREATABLE_FLAGS==
1 ID Integer id of record
2 iRefID_[[Map.dbc|Map]] Integer reference to map.dbc record.
3 iRefID_[[AreaTable.dbc|AreaTable]] Integer Recursive. If this is a sub-area, it will link to its parent area.
4 exploreFlag Integer
5 Flags BitMask See below.
6 Unknown Integer*
7 Unknown Integer* who knows...
8 iRefID_[[SoundAmbience.dbc|SoundAmbience]] Integer ambient sound
9 iRefID_[[ZoneMusic.dbc|ZoneMusic]] Integer ambient music
10 iRefID_[[ZoneIntroMusicTable.dbc|ZoneIntroMusicTable]] Integer music upon entering the zone
11 areaLevel Signed Integer level this zone is made for.
12-28 sRefName String + [[Loc]]
29 iRefMask_[[FactionGroup.dbc|FactionGroup]] BitMask
30 Unknown Integer 5428 '''Category is somewhere around here. See below for the enum.'''
31 Unknown PH* 5428 NULL
32 Unknown PH* 5428 NULL
33 Unknown Integer 5428
34 Unknown Float 5610 very often -500.0
35 Unknown Float 5894


-[[User:Raindog|Raindog]] 10-Dec-2007: updated for increased number of localization fields.
    AREA_FLAG_HasBreathParticles                = 0x00000001,          // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
    AREA_FLAG_BreathParticlesOverrideParent      = 0x00000002,
    AREA_FLAG_OnMapDungeon                      = 0x00000004,          // Only used for areas on map 571 (development before). Named "On Map Dungeon" in TBC Classic
    AREA_FLAG_AllowTradeChannel                  = 0x00000008,          // city and city subsones. Allow Trade Channel
    AREA_FLAG_EnemiesPvPFlagged                  = 0x00000010,          // can't find common meaning. TBC Classic : "Enemies PvP Flagged"
    AREA_FLAG_AllowResting                 = 0x00000020,          // slave capital city flag? TBC Classic : "Allow Resting"
    AREA_FLAG_AllowDueling                 = 0x00000040,          // Allow Dueling. TBC Classic name : " Allow Dueling"
    AREA_FLAG_FreeForAllPvP                      = 0x00000080,          // arena, both instanced and world arenas. classic : "Free For All PvP"
    AREA_FLAG_Linked Chat                        = 0x00000100,          // main capital city flag. TBC Classic definition : "Linked Chat (Set in cities)"
    AREA_FLAG_LinkedChatSpecialArea              = 0x00000200,          // only one, hidden area for linked capital chat. TBC Classic : "Linked Chat Special Area"
    AREA_FLAG_FLYING                            = 0x00000400,          // 3.3.5 : Flag determines if flying is allowed in zone. (only EOTS. Expansion azeroth zones like silvermyst island do not have this flag, 0x00004000 flag).
                                                                            TBC classic : "Force this area when on a Dynamic Transport", was probably updated around cataclysm ?
    AREA_FLAG_Sanctuary                          = 0x00000800,          // sanctuary area (PvP disabled). TBC classic : "No PvP"
    AREA_FLAG_NEED_FLY                          = 0x00001000,          // only Netherwing Ledge, Socrethar's Seat, Tempest Keep, The Arcatraz, The Botanica, The Mechanar, Sorrow Wing Point, Dragonspine Ridge
                                                                            Netherwing Mines, Dragonmaw Base Camp, Dragonmaw Skyway. TBC classic : "No Ghost on Release"
    AREA_FLAG_apply_ambient_multiplier_to_player = 0x00002000,          // not used now (no area/zones with this flag set in 3.0.3). TBC CLAassic : "Sub-zone Ambient Multiplier"
    AREA_FLAG_EnableFlightBoundsonMap            = 0x00004000,          // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag). TBC Classic : "Enable Flight Bounds on Map"
    AREA_FLAG_IsSubZonePVPPOI                    = 0x00008000,          // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
    AREA_FLAG_Nochatchannels                    = 0x00010000,          // used by instanced arenas only. TBC Classic : "No chat channels"
    AREA_FLAG_Area_not_in_use                    = 0x00020000,          // not used now (no area/zones with this flag set in 3.0.3)
    AREA_FLAG_CONTESTED_AREA                    = 0x00040000,          // On PvP servers these areas are considered contested, even though the zone it is contained in is a Horde/Alliance territory.
    AREA_FLAG_NoPlayerSummoning                 = 0x00080000,          // Valgarde and Acherus: The Ebon Hold. TBC Classic : "No Player Summoning". This could have been used in early TBC when summoning was disabled in area52
    AREA_FLAG_LOWLEVEL                          = 0x00100000,          // used for some starting areas with area_level <=15. TBC Classic : "No Dueling if Tournament Realm"
    AREA_FLAG_PlayersCallGuards                 = 0x00200000,          // small towns with Inn. TBC Classic : "Players Call Guards"
    AREA_FLAG_Horde Resting                 = 0x00400000,          // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
    AREA_FLAG_Alliance Resting                 = 0x00800000,          // Westguard Inn, Acherus: The Ebon Hold, Valgarde
    AREA_FLAG_CombatZone                 = 0x01000000,          // Wintergrasp and it's subzones. "Combat Zone"
    AREA_FLAG_ForceIndoors                 = 0x02000000,          // Force Indoors
    AREA_FLAG_ForceOutdoors                 = 0x04000000,          // Force Outdoors
    AREA_FLAG_CanHearthAndResurrectFromArea      = 0x08000000,          // Wintergrasp and it's subzones. Allow Hearth-and-Resurrect from Area
    AREA_FLAG_CANNOT_FLY                        = 0x20000000,          // not allowed to fly, only used in Dalaran areas (zone 4395). TBC Classic : "No Local Defense Channel"
    AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000, // TBC Classic : Only Evaluate Ghost Bind Once


===enum AREATABLE_CATEGORY===
{{Template:SectionBox/VersionRange|min_expansionlevel=4|min_build=4.0.1}}
AREAC_CONTESTED          = 0,
    IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1
AREAC_ALLIANCE_TERRITORY = 2,
AREAC_HORDE_TERRITORY    = 4,
AREAC_SANCTUARY          = 6,
 
===enum AREATABLE_FLAGS===
AREA_UNK1 = 0x8,
AREA_UNK2 = 0x10,
AREA_CITY_AREA          = 0x20,
AREA_NEUTRAL_AREA      = 0x40,
AREA_PVP_ARENA          = 0x80,
AREA_CITY              = 0x200,
AREA_FLYING_PERMITTED = 0x400,
AREA_SANCTUARY          = 0x800,
AREA_ISLAND            = 0x1000,
AREA_UNK4 = 0x4000,
AREA_PVP_OBJECTIVE_AREA = 0x8000,
 
from Hearthstone / Ascent source.


[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_Alpha]]
[[Category:DBC_Vanilla]]
[[Category:DBC_WotLK]][[Category:3.3.5.12340]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Revision as of 20:08, 6 June 2023

Contains general information about the areas (different from Zones, but included) in the game.

Classic

0.5.3.3368

Struct

struct AreaTableRec {
  uint32_t m_ID;
  uint32_t m_AreaNumber;    // area  = (m_AreaNumber >> 16), subarea = (m_AreaNumber & 0xFFFF)
  foreign_key<uint32_t, &MapRec::m_ID> m_ContinentID;
  foreign_key<uint32_t, &AreaTableRec::m_ID> m_ParentAreaNum;
  uint32_t m_AreaBit;
  uint32_t m_flags;         // &1 and &2 only, see flags
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPref;
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPrefUnderwater;
  foreign_key<uint32_t, &AreaMIDIAmbiencesRec::m_ID> m_MIDIAmbience;
  foreign_key<uint32_t, &AreaMIDIAmbiencesRec::m_ID> m_MIDIAmbienceUnderwater;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> m_ZoneMusic;
  uint32_t m_IntroSound;
  uint32_t m_IntroPriority; // highest m_IntroPriority gets played when two intro sounds compete (Elwynn Forest < Valley of Heroes)
  langstringref m_AreaName_lang;
};

1.12.1.5875

struct AreaTableRec {
  uint32_t m_ID;
  foreign_key<uint32_t, &MapRec::m_ID> m_ContinentID;
  foreign_key<uint32_t, &AreaTableRec::m_ID> m_ParentAreaNum;
  uint32_t m_AreaBit;
  uint32_t m_flags;
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPref;
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPrefUnderwater;
  foreign_key<uint32_t, &SoundAmbienceRec::m_ID> m_AmbienceID;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> m_ZoneMusic;
  foreign_key<uint32_t, &ZoneIntroMusicTableRec::m_ID> m_IntroSound;
  uint32_t m_ExplorationLevel;
  langstringref m_AreaName_lang;
  uint32_t m_factionGroupMask;
  foreign_key<uint32_t, &LiquidTypeRec::m_ID> m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  foreign_key<uint32_t, &LightRec::m_ID> m_lightid;
};

Wrath

3.3.5.12340

Table

Column Field Type Notes
1 ID Integer
2 Map.ID iRefID
3 Parent_AreaTable.ID iRefID Recursive. If this is a sub-area, it will link to its parent area.
4 AreaBit Integer Use new unique value when creating custom row for making maps work correctly. Value higher than 4095 might not work for TC2.
5 Flags BitMask See below.
6 SoundProviderPrefferences iRefID
7 Underwater_SoundProviderPrefferences iRefID
8 SoundAmbience iRefID Ambient sound
9 ZoneMusic iRefID Ambient music
10 ZoneIntroMusicTable iRefID Music upon entering the zone
11 ExplorationLevel Integer Level this is made for
12-28 Name Loc
29 FactionGroup iRefID (/Mask?) 0 Contested, 2 Alliance, 4 Horde territory. Shattrath City and Dalaran have value 6 (Horde+Alliance?) for some reason.
30 LiquidType iRefID[4] [0]: Water, [1]: Ocean, [2]: Magma, [3]: Slime
34 MinElevation Float -5000, -500, 1000
35 AmbientMultiplier Float 0.0 - 1.0; Something to do with character ambient lightning
36 Light iRefID

Warlords

6.0.1.18179

Struct

struct AreaTableRec {
  uint32_t m_ID;
  foreign_key<uint32_t, &MapRec::m_ID> m_ContinentID;
  foreign_key<uint32_t, &AreaTableRec::m_ID> m_ParentAreaID;
  uint32_t m_AreaBit;
  uint32_t m_flags[2]; // 0x100000000: isMicroDungeon
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPref;
  foreign_key<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPrefUnderwater;
  foreign_key<uint32_t, &SoundAmbienceRec::m_ID> m_AmbienceID;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> m_ZoneMusic;
  stringref m_ZoneName;
  foreign_key<uint32_t, &ZoneIntroMusicTableRec::m_ID> m_IntroSound;
  uint32_t m_ExplorationLevel;
  langstringref m_AreaName_lang;
  uint32_t m_factionGroupMask;
  foreign_key<uint32_t, &LiquidTypeRec::m_ID> m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  foreign_key<uint32_t, &LightRec::m_ID> m_lightid;
  uint32_t m_mountFlags;
  foreign_key<uint32_t, &ZoneIntroMusicTableRec::m_ID> m_uwIntroSound;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> m_uwZoneMusic;
  foreign_key<uint32_t, &SoundAmbienceRec::m_ID> m_uwAmbience;
  uint32_t m_world_pvp_id;
  foreign_key<uint32_t, &WorldStateRec::m_ID> m_pvpCombatWorldStateID;
  uint32_t m_wildBattlePetLevelMin;
  uint32_t m_wildBattlePetLevelMax;
  foreign_key<uint32_t, &WindSettingsRec::m_ID> m_windSettingsID;
};

enum AREATABLE_FLAGS

   AREA_FLAG_HasBreathParticles                 = 0x00000001,           // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
   AREA_FLAG_BreathParticlesOverrideParent      = 0x00000002,
   AREA_FLAG_OnMapDungeon                       = 0x00000004,           // Only used for areas on map 571 (development before). Named "On Map Dungeon" in TBC Classic
   AREA_FLAG_AllowTradeChannel                  = 0x00000008,           // city and city subsones. Allow Trade Channel
   AREA_FLAG_EnemiesPvPFlagged                  = 0x00000010,           // can't find common meaning. TBC Classic : "Enemies PvP Flagged"
   AREA_FLAG_AllowResting	                 = 0x00000020,           // slave capital city flag? TBC Classic : "Allow Resting"
   AREA_FLAG_AllowDueling	                 = 0x00000040,           // Allow Dueling. TBC Classic name : "	Allow Dueling"
   AREA_FLAG_FreeForAllPvP                      = 0x00000080,           // arena, both instanced and world arenas. classic : 	"Free For All PvP"
   AREA_FLAG_Linked Chat                        = 0x00000100,           // main capital city flag. TBC Classic definition : "Linked Chat (Set in cities)"
   AREA_FLAG_LinkedChatSpecialArea              = 0x00000200,           // only one, hidden area for linked capital chat. TBC Classic : "Linked Chat Special Area"
   AREA_FLAG_FLYING                             = 0x00000400,           // 3.3.5 : Flag determines if flying is allowed in zone. (only EOTS. Expansion azeroth zones like silvermyst island do not have this flag, 0x00004000 flag).
                                                                           TBC classic : "Force this area when on a Dynamic Transport", was probably updated around cataclysm ?
   AREA_FLAG_Sanctuary                          = 0x00000800,           // sanctuary area (PvP disabled). TBC classic : "No PvP"
   AREA_FLAG_NEED_FLY                           = 0x00001000,           // only Netherwing Ledge, Socrethar's Seat, Tempest Keep, The Arcatraz, The Botanica, The Mechanar, Sorrow Wing Point, Dragonspine Ridge
                                                                           Netherwing Mines, Dragonmaw Base Camp, Dragonmaw Skyway. TBC classic : "No Ghost on Release"
   AREA_FLAG_apply_ambient_multiplier_to_player = 0x00002000,           // not used now (no area/zones with this flag set in 3.0.3). TBC CLAassic : "Sub-zone Ambient Multiplier"
   AREA_FLAG_EnableFlightBoundsonMap            = 0x00004000,           // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag). TBC Classic : "Enable Flight Bounds on Map"
   AREA_FLAG_IsSubZonePVPPOI                    = 0x00008000,           // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
   AREA_FLAG_Nochatchannels                     = 0x00010000,           // used by instanced arenas only. TBC Classic : "No chat channels"	
   AREA_FLAG_Area_not_in_use                    = 0x00020000,           // not used now (no area/zones with this flag set in 3.0.3)
   AREA_FLAG_CONTESTED_AREA                     = 0x00040000,           // On PvP servers these areas are considered contested, even though the zone it is contained in is a Horde/Alliance territory.
   AREA_FLAG_NoPlayerSummoning	                 = 0x00080000,           // Valgarde and Acherus: The Ebon Hold. TBC Classic : "No Player Summoning". This could have been used in early TBC when summoning was disabled in area52
   AREA_FLAG_LOWLEVEL                           = 0x00100000,           // used for some starting areas with area_level <=15. TBC Classic : "No Dueling if Tournament Realm"
   AREA_FLAG_PlayersCallGuards	                 = 0x00200000,           // small towns with Inn. TBC Classic : "Players Call Guards"
   AREA_FLAG_Horde Resting	                 = 0x00400000,           // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
   AREA_FLAG_Alliance Resting	                 = 0x00800000,           // Westguard Inn, Acherus: The Ebon Hold, Valgarde
   AREA_FLAG_CombatZone	                 = 0x01000000,           // Wintergrasp and it's subzones. "Combat Zone"	
   AREA_FLAG_ForceIndoors	                 = 0x02000000,           // Force Indoors	
   AREA_FLAG_ForceOutdoors	                 = 0x04000000,           // Force Outdoors	
   AREA_FLAG_CanHearthAndResurrectFromArea      = 0x08000000,           // Wintergrasp and it's subzones. Allow Hearth-and-Resurrect from Area
   AREA_FLAG_CANNOT_FLY                         = 0x20000000,           // not allowed to fly, only used in Dalaran areas (zone 4395). TBC Classic : "No Local Defense Channel"
   AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000, // TBC Classic : Only Evaluate Ghost Bind Once
This section only applies to versions ≥ Cata (4.0.1).
   IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1