DB/AreaTable
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: show breath particles AreaListZoneHasBreathParticles
foreign_keyⁱ<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPref;
foreign_keyⁱ<uint32_t, &SoundProviderPreferencesRec::m_ID> m_SoundProviderPrefUnderwater;
uint32_t m_MIDIAmbience;
uint32_t m_MIDIAmbienceUnderwater;
foreign_keyⁱ<uint32_t, &ZoneMusicRec::m_ID> m_ZoneMusic;
uint32_t m_IntroSound;
uint32_t m_IntroPriority;
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_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_ALLOW_DUELS = 0x00000040, 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_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 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,
IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1