DB/Map

From wowdev
Revision as of 19:27, 27 November 2018 by Смердокрыл (talk | contribs) (BfA structure)
Jump to navigation Jump to search

Note that some emulators have issues with IDs above 999 due to their extractors (vmaps).

0.5.3.3368

struct MapRec {
  uint32_t m_ID;
  stringref m_Directory;
  uint32_t m_PVP;
  uint32_t m_IsInMap;
  langstringref m_MapName_lang;
};

1.12.1.5875

struct MapRec {
  uint32_t m_ID;
  stringref m_Directory;
  uint32_t m_InstanceType;
  uint32_t m_MapType;
  langstringref m_MapName_lang;
  uint32_t min_level;
  uint32_t max_level;
  uint32_t max_players;
  uint32_t ?;
  uint32_t ?;
  uint32_t ?;
  foreign_key<uint32_t, &MapRec::m_ID> m_parentMapID;
  langstringref m_MapDescription0_lang;
  langstringref m_MapDescription1_lang;
  foreign_key<int32_t, &LoadingScreensRec::m_ID> m_LoadingScreenID;
  uint32_t m_raidOffset;
  uint32_t continentname?;
  uint32_t ?;
};

3.0.9.9551

Column Field Type Notes
1 ID Integer
2 InternalName String reference to World\Map\ [...] \
3 AreaType Integer 0: none, 1: party, 2: raid, 3: pvp, 4: arena, >=5: none (official from "IsInInstance()")
4 IsBattleground Boolean Simple flag for battleground maps
5 Name Loc Name (displayed on World Map for example)
6 AreaTable iRefID iRefID to AreaTable.dbc
7 Description Loc Alliance
8 Description Loc Horde
9 LoadingScreen iRefID The LoadingScreen to Display
10 BattlefieldMapIconScale Float
11 Requirement Loc Requirement to enter
12 Heroic Loc Heroic-Requirement to enter
13 Unknown Loc Some other requirement to enter.
14 ParentArea iRefID Points to column 1, -1 if none
15 X-Coord Float The X-Coord of the instance entrance
16 Y-Coord Float The Y-Coord of the instance entrance
17 ResetTimeRaid Integer Raid.
18 ResetTimeRaid Integer Heroic raid or instance?
19 Unknown Integer All the time 0.
20 TimeOfDayOverride Integer Set to -1 for everything but Orgrimmar and Dalaran arena. For those, the time of day will change to this.
21 ExpansionID Integer Vanilla: 0, BC: 1, WotLK: 2
22 Unknown Integer Another resettime? Is the same as the heroic one for some entries.

3.2?

Column Field Type Notes
1 ID Integer
2 Directory String reference to World\Map\ [...] \
3 InstanceType Integer 0: none, 1: party, 2: raid, 3: pvp, 4: arena, >=5: none (official from "IsInInstance()")
4 Flags Boolean Simple flag for battleground maps
cata PVP Boolean Simple flag for battleground maps
5-21 MapName Loc Name (displayed on World Map for example)
22 areaTableID iRefID iRefID to AreaTable.dbc
23-39 MapDescription0 Loc Alliance
40-56 MapDescription1 Loc Horde
57 LoadingScreen iRefID The LoadingScreen to Display
58 minimapIconScale Float
59 corpseMapID iRefID Points to column 1, -1 if none
60 corpseX Float The X-Coord of the instance entrance
61 corpseY Float The Y-Coord of the instance entrance
62 TimeOfDayOverride Integer Set to -1 for everything but Orgrimmar and Dalaran arena. For those, the time of day will change to this.
63 ExpansionID Integer Vanilla: 0, BC: 1, WotLK: 2
64 maxPlayers Integer
65 NumberOfPlayers Integer Used for reset time, I guess.
cata parentMapID Integer

Some columns are moved to MapDifficulty.dbc in 3.2.

6.0.1.18179

struct MapRec {
  uint32_t m_ID;
  stringref m_Directory;
  uint32_t m_InstanceType;
  uint32_t m_Flags;                                 // 0x0100: can toggle difficulty (trinitycore), 0x8000: flex locking (All difficulties share completed encounters lock, not bound to a single instance id heroic difficulty flag overrides it and uses instance id bind; trinitycore), 0x10000: limit farclip to 727.0, 0x4000000: garrison (trinitycore), 0x020000000000 limit LightMode to 0 or 1 (Legion+, actually in m_Flags[1]!) 
  uint32_t m_MapType;
  langstringref m_MapName_lang;
  uint32_t m_areaTableID;
  langstringref m_MapDescription0_lang;
  langstringref m_MapDescription1_lang;
  uint32_t m_LoadingScreenID;
  float m_minimapIconScale;
  uint32_t m_corpseMapID;
  float m_corpse[2];
  uint32_t m_timeOfDayOverride;
  uint32_t m_expansionID;
  uint32_t m_raidOffset;
  uint32_t m_maxPlayers;
  uint32_t m_parentMapID;
  uint32_t m_cosmeticParentMapID;
  uint32_t m_timeOffset;
};

7.0.3.22201

≥ Legion

struct MapRec
{
  string Directory;
  uint32_t[2] Flags;
  float MinimapIconScale;
  float[2] CorpseCoordinates;
  string ZoneName;
  string HordeDescription;
  string AllianceDescription;
  foreign_key<uint16_t, &AreaTableRec::m_ID> AreaTableID;
  foreign_key<int16_t, &LoadingScreensRec::m_ID> LoadingScreenID;
  foreign_key<int16_t, &MapRec::m_ID> CorpseMapID;
  int16_t TimeOfDayOverride;
  foreign_key<int16_t, &MapRec::m_ID> ParentMapID;
  foreign_key<int16_t, &MapRec::m_ID> CosmeticParentMapID;
  foreign_key<int16_t, &WindSettingsRec::m_ID> WindSettingsID;
  uint8_t InstanceType;
  uint8_t MapType;
  uint8_t ExpansionID;
  uint8_t MaxPlayers;
  uint8_t TimeOffset;
};

7.2.0

≥ Legion

struct MapRec
{
  string Directory;
  uint32_t[2] Flags;
  float MinimapIconScale;
  float[2] CorpseCoordinates;
  string ZoneName;
  string HordeDescription;
  string AllianceDescription;
  string PvpObjective;
  string PvpDescription;
  foreign_key<uint16_t, &AreaTableRec::m_ID> AreaTableID;
  foreign_key<int16_t, &LoadingScreensRec::m_ID> LoadingScreenID;
  foreign_key<int16_t, &MapRec::m_ID> CorpseMapID;
  int16_t TimeOfDayOverride;
  foreign_key<int16_t, &MapRec::m_ID> ParentMapID;
  foreign_key<int16_t, &MapRec::m_ID> CosmeticParentMapID;
  foreign_key<int16_t, &WindSettingsRec::m_ID> WindSettingsID;
  uint8_t InstanceType;
  uint8_t MapType;
  uint8_t ExpansionID;
  uint8_t MaxPlayers;
  uint8_t TimeOffset;
};

≥ Battle

struct MapEntry {
  uint32 ID;
  char const* Directory;
  LocalizedString* MapName;
  LocalizedString* MapDescription0;                               // Horde
  LocalizedString* MapDescription1;                               // Alliance
  LocalizedString* PvpShortDescription;
  LocalizedString* PvpLongDescription;
  DBCPosition2D Corpse;                                           // entrance coordinates in ghost mode  (in most cases = normal entrance)
  uint8 MapType;
  int8 InstanceType;
  uint8 ExpansionID;
  uint16 AreaTableID;
  int16 LoadingScreenID;
  int16 TimeOfDayOverride;
  int16 ParentMapID;
  int16 CosmeticParentMapID;
  uint8 TimeOffset;
  float MinimapIconScale;
  int16 CorpseMapID;                                              // map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
  uint8 MaxPlayers;
  int16 WindSettingsID;
  int32 ZmpFileDataID;
  int32 Flags[2];
};

Смердокрыл 27th November 2018