DB/AreaTable

From wowdev
Jump to navigation Jump to search

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

Header Info

Records..................2283
Fields.....................36
Record Size...............144
String Block Size.......34363

Structure

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
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

-Raindog 10-Dec-2007: updated for increased number of localization fields.

enum AREATABLE_FLAGS

   AREA_FLAG_SNOW                  = 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_CITY                  = 0x00000200,           // only for one zone named "City" (where it located?)
   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_UNUSED1               = 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_PVP                   = 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_OUTDOOR_PVP           = 0x01000000,           // Wintergrasp and it's subzones
   AREA_FLAG_UNK9                  = 0x02000000,           // unknown
   AREA_FLAG_UNK10                 = 0x04000000,           // unknown
   AREA_FLAG_CAN_HEARTH_AND_RES    = 0x08000000,           // Wintergrasp and it's subzones
   AREA_FLAG_CANNOT_FLY            = 0x20000000            // not allowed to fly, only used in Dalaran areas (zone 4395)

from MaNGOS source. + --Khira 11:00, 17 July 2010 (GMT+1)

In Catacylsm: IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1 --Schlumpf 12:04, 27 July 2011 (UTC)

enum AreaFlags

   AREA_FLAG_UNK0             = 0x00000001,                // Unknown
   AREA_FLAG_UNK1             = 0x00000002,                // Razorfen Downs, Naxxramas and Acherus: The Ebon Hold (3.3.5a)
   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_ALLOW_DUELS      = 0x00000040,                // allow to duel here
   AREA_FLAG_ARENA            = 0x00000080,                // arena, both instanced and world arenas
   AREA_FLAG_CAPITAL          = 0x00000100,                // main capital city flag
   AREA_FLAG_CITY             = 0x00000200,                // only for one zone named "City" (where it located?)
   AREA_FLAG_OUTLAND          = 0x00000400,                // expansion zones? (only Eye of the Storm not have this flag, but have 0x00004000 flag)
   AREA_FLAG_SANCTUARY        = 0x00000800,                // sanctuary area (PvP disabled)
   AREA_FLAG_NEED_FLY         = 0x00001000,                // Respawn alive at the graveyard without corpse
   AREA_FLAG_UNUSED1          = 0x00002000,                // Unused in 3.3.5a
   AREA_FLAG_OUTLAND2         = 0x00004000,                // expansion zones? (only Circle of Blood Arena not have this flag, but have 0x00000400 flag)
   AREA_FLAG_OUTDOOR_PVP      = 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,                // Unused in 3.3.5a
   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_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, Sunreaver Pavilion (Something to do with team?)
   AREA_FLAG_UNK8             = 0x00800000,                // Valgarde, Acherus: The Ebon Hold, Westguard Inn, Silver Covenant Pavilion (Something to do with team?)
   AREA_FLAG_WINTERGRASP      = 0x01000000,                // Wintergrasp and it's subzones
   AREA_FLAG_INSIDE           = 0x02000000,                // used for determinating spell related inside/outside questions in Map::IsOutdoors
   AREA_FLAG_OUTSIDE          = 0x04000000,                // used for determinating spell related inside/outside questions in Map::IsOutdoors
   AREA_FLAG_WINTERGRASP_2    = 0x08000000,                // Can Hearth And Resurrect From Area
   AREA_FLAG_NO_FLY_ZONE      = 0x20000000                 // Marks zones where you cannot fly

Extracted from recent Trinity Core. May or may not have useful additions. Ascathos 19:41, 10 December 2012 (UTC)

6.0.1.18179

struct AreaTableRec {
  int m_ID;
  int m_ContinentID;
  int m_ParentAreaID;
  int m_AreaBit;
  int m_flags[2];
  int m_SoundProviderPref;
  int m_SoundProviderPrefUnderwater;
  int m_AmbienceID;
  int m_ZoneMusic;
  stringref m_ZoneName;
  int m_IntroSound;
  int m_ExplorationLevel;
  stringref m_AreaName_lang;
  int m_factionGroupMask;
  int m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  int m_lightid;
  int m_mountFlags;
  int m_uwIntroSound;
  int m_uwZoneMusic;
  int m_uwAmbience;
  int m_world_pvp_id;
  int m_pvpCombatWorldStateID;
  int m_wildBattlePetLevelMin;
  int m_wildBattlePetLevelMax;
  int m_windSettingsID;
};

6.0.2.18983

struct AreaTableRec {
  int m_ID;
  int m_ContinentID;
  int m_ParentAreaID;
  int m_AreaBit;
  int m_flags[2];
  int m_SoundProviderPref;
  int m_SoundProviderPrefUnderwater;
  int m_AmbienceID;
  int m_ZoneMusic;
  stringref m_ZoneName;
  int m_IntroSound;
  int m_ExplorationLevel;
  stringref m_AreaName_lang;
  int m_factionGroupMask;
  int m_liquidTypeID[4];
  float m_minElevation;
  float m_ambient_multiplier;
  int m_lightid;
  int m_mountFlags;
  int m_uwIntroSound;
  int m_uwZoneMusic;
  int m_uwAmbience;
  int m_world_pvp_id;
  int m_pvpCombatWorldStateID;
  int m_windSettingsID;
};