DB/AreaTable

From wowdev
Jump to navigation Jump to search

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_FreeForAllPvP	                 = 0x00000040,           // Allow Dueling. TBC Classic name : "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_LinkedChatSpecialArea              = 0x00000200,           // only one, hidden area for linked capital chat. TBC Classic : "Linked Chat Special Area"
   AREA_FLAG_UNK                                = 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. TBC classic : "Force this area when on a Dynamic Transport"
   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