DB/AreaTable

From wowdev
(Redirected from AreaTable.dbc)
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_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


Version 10.2 (Updated 5/14/24) (DF)

Area Flags

   EmitBreathParticles                     = 0x00000001
   BreathParticlesOverrideParent           = 0x00000002
   OnMapDungeon                            = 0x00000004
   AllowTradeChannel                       = 0x00000008
   EnemiesPvPFlagged                       = 0x00000010
   AllowResting                            = 0x00000020
   AllowDueling                            = 0x00000040
   FreeForAllPvP                           = 0x00000080
   LinkedChat                              = 0x00000100 // Set in cities
   LinkedChatSpecialArea                   = 0x00000200
   ForceThisAreaWhenOnDynamicTransport     = 0x00000400
   NoPvP                                   = 0x00000800
   NoGhostOnRelease                        = 0x00001000
   SubZoneAmbientMultiplier                = 0x00002000
   EnableFlightBoundsOnMap                 = 0x00004000
   PVPPOI                                  = 0x00008000
   NoChatChannels                          = 0x00010000
   AreaNotInUse                            = 0x00020000
   Contested                               = 0x00040000
   NoPlayerSummoning                       = 0x00080000
   NoDuelingIfTournamentRealm              = 0x00100000
   PlayersCallGuards                       = 0x00200000
   HordeResting                            = 0x00400000
   AllianceResting                         = 0x00800000
   CombatZone                              = 0x01000000
   ForceIndoors                            = 0x02000000
   ForceOutdoors                           = 0x04000000
   AllowHearthAndRessurectFromArea         = 0x08000000
   NoLocalDefenseChannel                   = 0x10000000
   OnlyEvaluateGhostBindOnce               = 0x20000000
   IsSubzone                               = 0x40000000
   DontEvaluateGraveyardFromClient         = 0x80000000

Area Flags2

   ForceMicroDungeonArtMap                     = 0x00000001
   UseSubzonePlayerLoot                        = 0x00000002
   AllowPetBattleDuelingEvenIfNoDuelingAllowed = 0x00000004
   UseMapTransferLocsForCemeteries             = 0x00000008
   IsGarrison                                  = 0x00000010
   UseSubzoneForChatChannel                    = 0x00000020
   DontRealmCoalesceChatChannel                = 0x00000040
   NotExplorable                               = 0x00000080 // Don't assign area bit
   DontUseParentMapForCemeteries               = 0x00000100
   DontShowSanctuaryText                       = 0x00000200
   CrossFactionZoneChat                        = 0x00000400
   ForceNoResting                              = 0x00000800
   AllowWarModeToggle                          = 0x00001000

Area Mount Flags

   None                            = 0x00
   AllowGroundMounts               = 0x01
   AllowFlyingMounts               = 0x02
   AllowSurfaceSwimmingMounts      = 0x04
   AllowUnderwaterSwimmingMounts   = 0x08
   ClientEnforcesMount             = 0x10