DB/AreaTable: Difference between revisions

From wowdev
Jump to navigation Jump to search
m (Put the data into a table)
 
(43 intermediate revisions by 8 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===
Records..................2283
====Struct====
  Fields.....................36
  struct AreaTableRec {
  Record Size...............144
  uint32_t m_ID;
String Block Size.......34363
  uint32_t m_AreaNumber;    // area = (m_AreaNumber >> 16), subarea = (m_AreaNumber & 0xFFFF)
 
  {{Template:Type/foreign_key|table=Map}} m_ContinentID;
== Structure ==
  {{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;
};


===1.12.1.5875===
struct AreaTableRec {
  uint32_t m_ID;
  {{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"
{| style="background:#FCFCFC; color:black"
|-  
|-  
Line 19: Line 53:
| 1 || ID || Integer ||  
| 1 || ID || Integer ||  
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 2 || [[Map.dbc|Map]] || iRefID ||
| 2 || [[Map.dbc|Map.ID]] || iRefID ||
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 3 || [[AreaTable.dbc|ParentArea]] || iRefID || Recursive. If this is a sub-area, it will link to its parent area.
| 3 || [[AreaTable.dbc|Parent_AreaTable.ID]] || iRefID || Recursive. If this is a sub-area, it will link to its parent area.
|-
|-
| 4 || AreaBit || Integer ||  
| 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.
| 5 || Flags || BitMask || See below.
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 6 || [[SoundProviderPreferences.dbc|SoundPreferences]] || iRefID ||
| 6 || [[SoundProviderPreferences.dbc|SoundProviderPrefferences]] || iRefID ||
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 7 || [[SoundProviderPreferences.dbc|SoundPreferencesUnderwater]] || iRefID ||
| 7 || [[SoundProviderPreferences.dbc|Underwater_SoundProviderPrefferences]] || iRefID ||
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 8 || [[SoundAmbience.dbc|SoundAmbience]] || iRefID || Ambient sound
| 8 || [[SoundAmbience.dbc|SoundAmbience]] || iRefID || Ambient sound
Line 35: Line 69:
| 9 || [[ZoneMusic.dbc|ZoneMusic]] || iRefID || Ambient music
| 9 || [[ZoneMusic.dbc|ZoneMusic]] || iRefID || Ambient music
|- style="background:#F0F8FF;"
|- style="background:#F0F8FF;"
| 10 || [[ZoneIntroMusicTable.dbc|zoneIntroMusic]] || iRefID || Music upon entering the zone
| 10 || [[ZoneIntroMusicTable.dbc|ZoneIntroMusicTable]] || iRefID || Music upon entering the zone
|-
|-
| 11 || ExplorationLevel || Signed Integer || Level this is made for
| 11 || ExplorationLevel || Integer || Level this is made for
|-
|-
| 12-28 || Name || String + [[Loc]] ||
| 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;"
|- style="background:#F0F8FF;"
| 29 || [[FactionGroup.dbc|FactionGroup]] || iRefID ||
|-
| 30 || [[LiquidType.dbc|LiquidType]] || iRefID[4] || [0]: Water, [1]: Ocean, [2]: Magma, [3]: Slime
| 30 || [[LiquidType.dbc|LiquidType]] || iRefID[4] || [0]: Water, [1]: Ocean, [2]: Magma, [3]: Slime
|-
|-
Line 52: Line 86:
|}
|}


-[[User:Raindog|Raindog]] 10-Dec-2007: updated for increased number of localization fields.
==Warlords==
 
===6.0.1.18179===
===enum AREATABLE_FLAGS===
====Struct====
    AREA_FLAG_SNOW                  = 0x00000001,          // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
struct AreaTableRec {
    AREA_FLAG_UNK1                  = 0x00000002,          // may be necropolis?
  uint32_t m_ID;
    AREA_FLAG_UNK2                  = 0x00000004,          // Only used for areas on map 571 (development before)
  {{Template:Type/foreign_key|table=Map}} m_ContinentID;
    AREA_FLAG_SLAVE_CAPITAL        = 0x00000008,          // city and city subsones
  {{Template:Type/foreign_key|table=AreaTable}} m_ParentAreaID;
    AREA_FLAG_UNK3                  = 0x00000010,          // can't find common meaning
  uint32_t m_AreaBit;
    AREA_FLAG_SLAVE_CAPITAL2        = 0x00000020,          // slave capital city flag?
  uint32_t m_flags[2]; // 0x100000000: isMicroDungeon
    AREA_FLAG_UNK4                  = 0x00000040,          // many zones have this flag
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPref;
    AREA_FLAG_ARENA                = 0x00000080,          // arena, both instanced and world arenas
  {{Template:Type/foreign_key|table=SoundProviderPreferences}} m_SoundProviderPrefUnderwater;
    AREA_FLAG_CAPITAL              = 0x00000100,          // main capital city flag
  {{Template:Type/foreign_key|table=SoundAmbience}} m_AmbienceID;
    AREA_FLAG_CITY                  = 0x00000200,          // only for one zone named "City" (where it located?)
  {{Template:Type/foreign_key|table=ZoneMusic}} m_ZoneMusic;
    AREA_FLAG_OUTLAND              = 0x00000400,          // expansion zones? (only Eye of the Storm and expansion azeroth zones like silvermyst island do not have this flag, but have 0x00004000 flag) This flag also determines whether flying is allowed in this zone or not.
  {{Template:Type|stringref}} m_ZoneName;
    AREA_FLAG_SANCTUARY            = 0x00000800,          // sanctuary area (PvP disabled)
  {{Template:Type/foreign_key|table=ZoneIntroMusicTable}} m_IntroSound;
    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
  uint32_t m_ExplorationLevel;
    AREA_FLAG_UNUSED1              = 0x00002000,          // not used now (no area/zones with this flag set in 3.0.3)
  {{Template:Type|langstringref}} m_AreaName_lang;
    AREA_FLAG_OUTLAND2              = 0x00004000,          // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
  uint32_t m_factionGroupMask;
    AREA_FLAG_PVP                  = 0x00008000,          // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
  {{Template:Type/foreign_key|table=LiquidType}} m_liquidTypeID[4];
    AREA_FLAG_ARENA_INSTANCE        = 0x00010000,          // used by instanced arenas only
  float m_minElevation;
    AREA_FLAG_UNUSED2              = 0x00020000,          // not used now (no area/zones with this flag set in 3.0.3)
  float m_ambient_multiplier;
    AREA_FLAG_UNK5                  = 0x00040000,          // only used for Amani Pass, Hatchet Hills
  {{Template:Type/foreign_key|table=Light}} m_lightid;
    AREA_FLAG_UNK6                  = 0x00080000,          // Valgarde and Acherus: The Ebon Hold
  uint32_t m_mountFlags;
    AREA_FLAG_LOWLEVEL              = 0x00100000,          // used for some starting areas with area_level <=15
  {{Template:Type/foreign_key|table=ZoneIntroMusicTable}} m_uwIntroSound;
    AREA_FLAG_TOWN                  = 0x00200000,          // small towns with Inn
  {{Template:Type/foreign_key|table=ZoneMusic}} m_uwZoneMusic;
    AREA_FLAG_UNK7                  = 0x00400000,          // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
  {{Template:Type/foreign_key|table=SoundAmbience}} m_uwAmbience;
    AREA_FLAG_UNK8                  = 0x00800000,          // Westguard Inn, Acherus: The Ebon Hold, Valgarde
  uint32_t m_world_pvp_id;
    AREA_FLAG_OUTDOOR_PVP          = 0x01000000,          // Wintergrasp and it's subzones
   {{Template:Type/foreign_key|table=WorldState}} m_pvpCombatWorldStateID;
    AREA_FLAG_UNK9                  = 0x02000000,          // unknown
  uint32_t m_wildBattlePetLevelMin;
    AREA_FLAG_UNK10                = 0x04000000,          // unknown
  uint32_t m_wildBattlePetLevelMax;
    AREA_FLAG_CAN_HEARTH_AND_RES   = 0x08000000,          // Wintergrasp and it's subzones
  {{Template:Type/foreign_key|table=WindSettings}} m_windSettingsID;
    AREA_FLAG_CANNOT_FLY            = 0x20000000            // not allowed to fly, only used in Dalaran areas (zone 4395)
};
 
from MaNGOS source. + --[[User:Khira|Khira]] 11:00, 17 July 2010 (GMT+1)


In Catacylsm: IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1 --[[User:Schlumpf|Schlumpf]] 12:04, 27 July 2011 (UTC)
==enum AREATABLE_FLAGS==


===enum AreaFlags ===
     AREA_FLAG_HasBreathParticles                = 0x00000001,           // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
     AREA_FLAG_UNK0            = 0x00000001,               // Unknown
     AREA_FLAG_BreathParticlesOverrideParent      = 0x00000002,
     AREA_FLAG_UNK1            = 0x00000002,               // Razorfen Downs, Naxxramas and Acherus: The Ebon Hold (3.3.5a)
     AREA_FLAG_OnMapDungeon                      = 0x00000004,           // Only used for areas on map 571 (development before). Named "On Map Dungeon" in TBC Classic
     AREA_FLAG_UNK2            = 0x00000004,               // Only used for areas on map 571 (development before)
     AREA_FLAG_AllowTradeChannel                  = 0x00000008,           // city and city subsones. Allow Trade Channel
     AREA_FLAG_SLAVE_CAPITAL    = 0x00000008,               // city and city subsones
     AREA_FLAG_EnemiesPvPFlagged                  = 0x00000010,           // can't find common meaning. TBC Classic : "Enemies PvP Flagged"
     AREA_FLAG_UNK3            = 0x00000010,               // can't find common meaning
     AREA_FLAG_AllowResting                 = 0x00000020,           // slave capital city flag? TBC Classic : "Allow Resting"
     AREA_FLAG_SLAVE_CAPITAL2  = 0x00000020,               // slave capital city flag?
     AREA_FLAG_AllowDueling                 = 0x00000040,           // Allow Dueling. TBC Classic name : " Allow Dueling"
     AREA_FLAG_ALLOW_DUELS      = 0x00000040,               // allow to duel here
     AREA_FLAG_FreeForAllPvP                      = 0x00000080,           // arena, both instanced and world arenas. classic : "Free For All PvP"
     AREA_FLAG_ARENA            = 0x00000080,               // arena, both instanced and world arenas
     AREA_FLAG_Linked Chat                        = 0x00000100,           // main capital city flag. TBC Classic definition : "Linked Chat (Set in cities)"
     AREA_FLAG_CAPITAL          = 0x00000100,               // main capital city flag
     AREA_FLAG_LinkedChatSpecialArea              = 0x00000200,           // only one, hidden area for linked capital chat. TBC Classic : "Linked Chat Special Area"
     AREA_FLAG_CITY            = 0x00000200,               // only for one zone named "City" (where it located?)
     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).
     AREA_FLAG_OUTLAND          = 0x00000400,               // expansion zones? (only Eye of the Storm not have this flag, but have 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)
     AREA_FLAG_Sanctuary                          = 0x00000800,           // sanctuary area (PvP disabled). TBC classic : "No PvP"
     AREA_FLAG_NEED_FLY         = 0x00001000,               // Respawn alive at the graveyard without corpse
     AREA_FLAG_NEED_FLY                           = 0x00001000,           // only Netherwing Ledge, Socrethar's Seat, Tempest Keep, The Arcatraz, The Botanica, The Mechanar, Sorrow Wing Point, Dragonspine Ridge
     AREA_FLAG_UNUSED1          = 0x00002000,               // Unused in 3.3.5a
                                                                            Netherwing Mines, Dragonmaw Base Camp, Dragonmaw Skyway. TBC classic : "No Ghost on Release"
     AREA_FLAG_OUTLAND2        = 0x00004000,               // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
     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_OUTDOOR_PVP      = 0x00008000,               // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
     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_ARENA_INSTANCE  = 0x00010000,               // used by instanced arenas only
     AREA_FLAG_IsSubZonePVPPOI                    = 0x00008000,           // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
     AREA_FLAG_UNUSED2          = 0x00020000,               // Unused in 3.3.5a
     AREA_FLAG_Nochatchannels                    = 0x00010000,           // used by instanced arenas only. TBC Classic : "No chat channels"
     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_Area_not_in_use                    = 0x00020000,           // not used now (no area/zones with this flag set in 3.0.3)
     AREA_FLAG_UNK6            = 0x00080000,               // Valgarde and Acherus: The Ebon Hold
     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_LOWLEVEL         = 0x00100000,               // used for some starting areas with area_level <= 15
     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_TOWN            = 0x00200000,               // small towns with Inn
     AREA_FLAG_LOWLEVEL                           = 0x00100000,           // used for some starting areas with area_level <=15. TBC Classic : "No Dueling if Tournament Realm"
     AREA_FLAG_UNK7            = 0x00400000,               // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn, Sunreaver Pavilion (Something to do with team?)
     AREA_FLAG_PlayersCallGuards                 = 0x00200000,           // small towns with Inn. TBC Classic : "Players Call Guards"
     AREA_FLAG_UNK8            = 0x00800000,               // Valgarde, Acherus: The Ebon Hold, Westguard Inn, Silver Covenant Pavilion (Something to do with team?)
     AREA_FLAG_Horde Resting                 = 0x00400000,           // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
     AREA_FLAG_WINTERGRASP      = 0x01000000,               // Wintergrasp and it's subzones
     AREA_FLAG_Alliance Resting                 = 0x00800000,           // Westguard Inn, Acherus: The Ebon Hold, Valgarde
     AREA_FLAG_INSIDE          = 0x02000000,               // used for determinating spell related inside/outside questions in Map::IsOutdoors
     AREA_FLAG_CombatZone                 = 0x01000000,           // Wintergrasp and it's subzones. "Combat Zone"
     AREA_FLAG_OUTSIDE          = 0x04000000,               // used for determinating spell related inside/outside questions in Map::IsOutdoors
     AREA_FLAG_ForceIndoors                 = 0x02000000,           // Force Indoors
     AREA_FLAG_WINTERGRASP_2    = 0x08000000,               // Can Hearth And Resurrect From Area
     AREA_FLAG_ForceOutdoors                 = 0x04000000,           // Force Outdoors
     AREA_FLAG_NO_FLY_ZONE      = 0x20000000                 // Marks zones where you cannot fly
     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


Extracted from recent Trinity Core. May or may not have useful additions. [[User:Ascathos|Ascathos]] 19:41, 10 December 2012 (UTC)
{{Template:SectionBox/VersionRange|min_expansionlevel=4|min_build=4.0.1}}
    IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1


[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_Alpha]]
[[Category:DBC_Vanilla]]
[[Category:DBC_Vanilla]]
[[Category:DBC_BC]]
[[Category:DBC_WotLK]][[Category:3.3.5.12340]]
[[Category:DBC_WotLK]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
[[Category:DBC_Cataclysm]]
[[Category:DBC_MoP]]
[[Category:3.3.5.12340]]

Latest 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