DB/AreaTable: Difference between revisions

From wowdev
Jump to navigation Jump to search
No edit summary
No edit summary
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.


==0.5.3.3368==
==Classic==
===Struct===
===0.5.3.3368===
====Struct====
  struct AreaTableRec {
  struct AreaTableRec {
   uint32_t m_ID;
   uint32_t m_ID;
Line 19: Line 20:
   {{Template:Type|langstringref}} m_AreaName_lang;
   {{Template:Type|langstringref}} m_AreaName_lang;
  };
  };
==3.3.5.12340==
 
===Table===
==Wrath==
===3.3.5.12340===
====Table====
{| style="background:#FCFCFC; color:black"
{| style="background:#FCFCFC; color:black"
|-  
|-  
Line 63: Line 66:
|}
|}


===enum AREATABLE_FLAGS===
    AREA_FLAG_HasBreathParticles                  = 0x00000001,          // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
    AREA_FLAG_UNK1                  = 0x00000002,          // may be necropolis?
    AREA_FLAG_UNK2                  = 0x00000004,          // Only used for areas on map 571 (development before)
    AREA_FLAG_SLAVE_CAPITAL        = 0x00000008,          // city and city subsones
    AREA_FLAG_UNK3                  = 0x00000010,          // can't find common meaning
    AREA_FLAG_SLAVE_CAPITAL2        = 0x00000020,          // slave capital city flag?
    AREA_FLAG_UNK4                  = 0x00000040,          // many zones have this flag
    AREA_FLAG_Arena                = 0x00000080,          // arena, both instanced and world arenas
    AREA_FLAG_CAPITAL              = 0x00000100,          // main capital city flag
    AREA_FLAG_LINKED_CHAT_AREA                  = 0x00000200,          // only one, hidden area for linked capital chat
    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.
    AREA_FLAG_Sanctuary            = 0x00000800,          // sanctuary area (PvP disabled)
    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
    AREA_FLAG_apply_ambient_multiplier_to_player              = 0x00002000,          // not used now (no area/zones with this flag set in 3.0.3)
    AREA_FLAG_OUTLAND2              = 0x00004000,          // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
    AREA_FLAG_IsSubZonePVPPOI                  = 0x00008000,          // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
    AREA_FLAG_ARENA_INSTANCE        = 0x00010000,          // used by instanced arenas only
    AREA_FLAG_UNUSED2              = 0x00020000,          // not used now (no area/zones with this flag set in 3.0.3)
    AREA_FLAG_UNK5                  = 0x00040000,          // only used for Amani Pass, Hatchet Hills
    AREA_FLAG_UNK6                  = 0x00080000,          // Valgarde and Acherus: The Ebon Hold
    AREA_FLAG_LOWLEVEL              = 0x00100000,          // used for some starting areas with area_level <=15
    AREA_FLAG_TOWN                  = 0x00200000,          // small towns with Inn
    AREA_FLAG_UNK7                  = 0x00400000,          // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
    AREA_FLAG_UNK8                  = 0x00800000,          // Westguard Inn, Acherus: The Ebon Hold, Valgarde
    AREA_FLAG_use_combat_world_state          = 0x01000000,          // Wintergrasp and it's subzones
    AREA_FLAG_INSIDE                  = 0x02000000,          // unknown
    AREA_FLAG_OUTSIDE                = 0x04000000,          // unknown
    AREA_FLAG_CanHearthAndResurrectFromArea    = 0x08000000,          // Wintergrasp and it's subzones
    AREA_FLAG_CANNOT_FLY            = 0x20000000            // not allowed to fly, only used in Dalaran areas (zone 4395)
    AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000,


from MaNGOS source. + --[[User:Khira|Khira]] 11:00, 17 July 2010 (GMT+1)
==Warlords==
 
===6.0.1.18179===
In Catacylsm: IsFlyableArea(): <pre>(*((_DWORD *)areaTableRec + 20) >> 1) & 1</pre>
====Struct====
 
==6.0.1.18179==
===Struct===
  struct AreaTableRec {
  struct AreaTableRec {
   uint32_t m_ID;
   uint32_t m_ID;
Line 130: Line 99:
   {{Template:Type/foreign_key|table=WindSettings}} m_windSettingsID;
   {{Template:Type/foreign_key|table=WindSettings}} m_windSettingsID;
  };
  };
==enum AREATABLE_FLAGS==
    AREA_FLAG_HasBreathParticles                = 0x00000001,          // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
    AREA_FLAG_UNK1                              = 0x00000002,          // may be necropolis?
    AREA_FLAG_UNK2                              = 0x00000004,          // Only used for areas on map 571 (development before)
    AREA_FLAG_SLAVE_CAPITAL                      = 0x00000008,          // city and city subsones
    AREA_FLAG_UNK3                              = 0x00000010,          // can't find common meaning
    AREA_FLAG_SLAVE_CAPITAL2                    = 0x00000020,          // slave capital city flag?
    AREA_FLAG_UNK4                              = 0x00000040,          // many zones have this flag
    AREA_FLAG_Arena                              = 0x00000080,          // arena, both instanced and world arenas
    AREA_FLAG_CAPITAL                            = 0x00000100,          // main capital city flag
    AREA_FLAG_LINKED_CHAT_AREA                  = 0x00000200,          // only one, hidden area for linked capital chat
    AREA_FLAG_OUTLAND                            = 0x00000400,          // expansion zones? (only EOTS. Expansion azeroth zones like silvermyst island do not have this flag, 0x00004000 flag) Flag determines if flying is allowed in zone.
    AREA_FLAG_Sanctuary                          = 0x00000800,          // sanctuary area (PvP disabled)
    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
    AREA_FLAG_apply_ambient_multiplier_to_player = 0x00002000, // not used now (no area/zones with this flag set in 3.0.3)
    AREA_FLAG_OUTLAND2                          = 0x00004000,          // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
    AREA_FLAG_IsSubZonePVPPOI                    = 0x00008000,          // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
    AREA_FLAG_ARENA_INSTANCE                    = 0x00010000,          // used by instanced arenas only
    AREA_FLAG_UNUSED2                            = 0x00020000,          // not used now (no area/zones with this flag set in 3.0.3)
    AREA_FLAG_UNK5                              = 0x00040000,          // only used for Amani Pass, Hatchet Hills
    AREA_FLAG_UNK6                              = 0x00080000,          // Valgarde and Acherus: The Ebon Hold
    AREA_FLAG_LOWLEVEL                          = 0x00100000,          // used for some starting areas with area_level <=15
    AREA_FLAG_TOWN                              = 0x00200000,          // small towns with Inn
    AREA_FLAG_UNK7                              = 0x00400000,          // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
    AREA_FLAG_UNK8                              = 0x00800000,          // Westguard Inn, Acherus: The Ebon Hold, Valgarde
    AREA_FLAG_use_combat_world_state            = 0x01000000,          // Wintergrasp and it's subzones
    AREA_FLAG_INSIDE                            = 0x02000000,          // unknown
    AREA_FLAG_OUTSIDE                            = 0x04000000,          // unknown
    AREA_FLAG_CanHearthAndResurrectFromArea      = 0x08000000,  // Wintergrasp and it's subzones
    AREA_FLAG_CANNOT_FLY                        = 0x20000000            // not allowed to fly, only used in Dalaran areas (zone 4395)
    AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000,
    ONLY CATACLYSM AND HIGHER
    In Catacylsm: IsFlyableArea(): <pre>(*((_DWORD *)areaTableRec + 20) >> 1) & 1</pre>
[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_Vanilla]]
[[Category:DBC_Vanilla]]
[[Category:DBC_BC]]
[[Category:DBC_WotLK]][[Category:3.3.5.12340]]
[[Category:DBC_WotLK]]
[[Category:DBC_Cataclysm]]
[[Category:DBC_MoP]]
[[Category:3.3.5.12340]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Revision as of 03:17, 14 July 2016

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;
  uint32_t m_ContinentID;
  uint32_t m_ParentAreaNum;
  uint32_t m_AreaBit;
  uint32_t m_flags;
  uint32_t m_SoundProviderPref;
  uint32_t m_SoundProviderPrefUnderwater;
  uint32_t m_MIDIAmbience;
  uint32_t m_MIDIAmbienceUnderwater;
  uint32_t m_ZoneMusic;
  uint32_t m_IntroSound;
  uint32_t m_IntroPriority;
  langstringref m_AreaName_lang;
};

Wrath

3.3.5.12340

Table

Column Field Type Notes
1 ID Integer
2 Map iRefID
3 ParentArea 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 SoundPreferences iRefID
7 SoundPreferencesUnderwater iRefID
8 SoundAmbience iRefID Ambient sound
9 ZoneMusic iRefID Ambient music
10 zoneIntroMusic iRefID Music upon entering the zone
11 ExplorationLevel Integer Level this is made for
12-28 Name Loc
29 FactionGroup iRefID
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_UNK1                               = 0x00000002,           // may be necropolis?
   AREA_FLAG_UNK2                               = 0x00000004,           // Only used for areas on map 571 (development before)
   AREA_FLAG_SLAVE_CAPITAL                      = 0x00000008,           // city and city subsones
   AREA_FLAG_UNK3                               = 0x00000010,           // can't find common meaning
   AREA_FLAG_SLAVE_CAPITAL2                     = 0x00000020,           // slave capital city flag?
   AREA_FLAG_UNK4                               = 0x00000040,           // many zones have this flag
   AREA_FLAG_Arena                              = 0x00000080,           // arena, both instanced and world arenas
   AREA_FLAG_CAPITAL                            = 0x00000100,           // main capital city flag
   AREA_FLAG_LINKED_CHAT_AREA                   = 0x00000200,           // only one, hidden area for linked capital chat
   AREA_FLAG_OUTLAND                            = 0x00000400,           // expansion zones? (only EOTS. Expansion azeroth zones like silvermyst island do not have this flag, 0x00004000 flag) Flag determines if flying is allowed in zone.
   AREA_FLAG_Sanctuary                          = 0x00000800,           // sanctuary area (PvP disabled)
   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
   AREA_FLAG_apply_ambient_multiplier_to_player = 0x00002000, // not used now (no area/zones with this flag set in 3.0.3)
   AREA_FLAG_OUTLAND2                           = 0x00004000,           // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
   AREA_FLAG_IsSubZonePVPPOI                    = 0x00008000,           // pvp objective area? (Death's Door also has this flag although it's no pvp object area)
   AREA_FLAG_ARENA_INSTANCE                     = 0x00010000,           // used by instanced arenas only
   AREA_FLAG_UNUSED2                            = 0x00020000,           // not used now (no area/zones with this flag set in 3.0.3)
   AREA_FLAG_UNK5                               = 0x00040000,           // only used for Amani Pass, Hatchet Hills
   AREA_FLAG_UNK6                               = 0x00080000,           // Valgarde and Acherus: The Ebon Hold
   AREA_FLAG_LOWLEVEL                           = 0x00100000,           // used for some starting areas with area_level <=15
   AREA_FLAG_TOWN                               = 0x00200000,           // small towns with Inn
   AREA_FLAG_UNK7                               = 0x00400000,           // Warsong Hold, Acherus: The Ebon Hold, New Agamand Inn, Vengeance Landing Inn
   AREA_FLAG_UNK8                               = 0x00800000,           // Westguard Inn, Acherus: The Ebon Hold, Valgarde
   AREA_FLAG_use_combat_world_state             = 0x01000000,           // Wintergrasp and it's subzones
   AREA_FLAG_INSIDE                             = 0x02000000,           // unknown
   AREA_FLAG_OUTSIDE                            = 0x04000000,           // unknown
   AREA_FLAG_CanHearthAndResurrectFromArea      = 0x08000000,   // Wintergrasp and it's subzones
   AREA_FLAG_CANNOT_FLY                         = 0x20000000            // not allowed to fly, only used in Dalaran areas (zone 4395)
   AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000,
   ONLY CATACLYSM AND HIGHER

In Catacylsm: IsFlyableArea():

(*((_DWORD *)areaTableRec + 20) >> 1) & 1