DB/AreaTable: Difference between revisions
Jump to navigation
Jump to search
Barncastle (talk | contribs) m (→Struct) |
|||
Line 123: | Line 123: | ||
AREA_FLAG_HasBreathParticles = 0x00000001, // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring) | AREA_FLAG_HasBreathParticles = 0x00000001, // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring) | ||
AREA_FLAG_BreathParticlesOverrideParent = 0x00000002, | 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_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. | 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) | 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 | 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 | 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) | 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_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_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 | 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 | AREA_FLAG_CanHearthAndResurrectFromArea = 0x08000000, // Wintergrasp and it's subzones. Allow Hearth-and-Resurrect from Area | ||
AREA_FLAG_CANNOT_FLY = 0x20000000 | 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, | AREA_FLAG_use_parent_for_world_defense_visibility_check = 0x40000000, // TBC Classic : Only Evaluate Ghost Bind Once | ||
{{Template:SectionBox/VersionRange|min_expansionlevel=4|min_build=4.0.1}} | {{Template:SectionBox/VersionRange|min_expansionlevel=4|min_build=4.0.1}} |
Revision as of 00:03, 26 August 2021
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
IsFlyableArea(): (*((_DWORD *)areaTableRec + 20) >> 1) & 1