
Several Retail UI Map IDs aren't recognized on Classic realms
rdw-software opened this issue ยท 2 comments
Because of this difference, none of the items display a zone name on Classic Era:
On Cataclysm Classic, the zone names are displayed. However, /rarity mapinfo
only prints "Unknown" for those IDs either way.
This probably affect all of the old zones, since the modern UI Map ID system didn't originally exist. The Warcraft wiki says:
Certain UI maps for dungeons/raids don't actually seem to be usable in WorldMapFrame:SetMapID(), even if C_Map.GetBestMapForUnit() returns the respective ID while in one.
There aren't many items in the classic database, so setting these manually might be good enough. See this list for reference.
Note
I haven't looked into LibBabble-Zone/Subzone yet, the mismatch could also be a problem here (check zones
entry in the DB).
There's a few different (potential) issues here. It's probably best to consider them separately:
- All Classic versions seem to use the alternate UI map IDs, which don't map to legacy WorldAreaIDs
- Quick fix: Manually replace them for non-Retail clients; add assertions in case some were missed; wait for bug reports
- Better solution: Use shared constants for all of the hardcoded IDs; auto-generate those from the DBC files
- Best solution: Blizzard could use one set of IDs, or provide a translation layer - maybe it already exists somewhere?
- Rarity caches UI map IDs and stores them in the saved variables, but there's no upgrade mechanism in place (that I can see)
- Quick fix: Delete this code (benchmark CPU/memory use first), to guarantee the latest UI map IDs are always used
- Better solution: Unify the many different ways of handling map IDs (including LibBabble); enable versioned upgrades
- Best solution: Don't know, need to get more context on this feature (review SVN history and research Blizzard APIs)
- The zone IDs can also be entered as names, as indicated by the tooltip text Allara wrote - this predates UI map IDs, though
- Quick fix: None? Need to review all the various ways that people can define zones; maybe it "just works" = don't touch it?
- All of this must work for custom items, too. There's likely some export strings posted online that might use zone detection?
- Quick fix: None? Needs an upgrade-able system with backwards compatibility built in - or, at least some validation logic
- Some of the libraries used for translating subzones haven't been updated in many years - maybe they're obsolete by now?
- Quick fix: Check if the functionality is still needed; fork/fix up those that can't be dropped; consider alternatives later
- The list of invalid map IDs seems to be changing sometimes, but I'm not sure why/how (on Classic only)
- I can't discern a pattern; might just be because some parts aren't loaded/Blizzard returns bogus data (says an old comment)
- Quick fix: Reload a few times, update the ones reported as invalid; cache the rest and investigate if users report errors
- Season of Discovery has new maps which aren't available anywhere in the DBC files, AFAICT (?) - Not very relevant right now
Unfortunately, I don't have more time to keep going down this particular rabbit hole right now.
More info dumping so this can be picked up later:
Classic Era
[2025-03-11 21:18:01] (Debug) Failed to GetMapInfo for UI map with ID 317
[2025-03-11 21:18:01] (Debug) Failed to GetMapInfo for UI map with ID 319
[2025-03-11 21:18:01] (Debug) Failed to GetMapInfo for UI map with ID 69
[2025-03-11 21:18:01] (Debug) Failed to GetMapInfo for UI map with ID 291
[2025-03-11 21:18:01] (Debug) Failed to GetMapInfo for UI map with ID 56
[2025-03-11 21:18:16] (Debug) Failed to GetMapInfo for UI map with ID 224
[2025-03-11 21:18:16] (Debug) Failed to GetMapInfo for UI map with ID 50
[2025-03-11 21:18:16] (Debug) Failed to GetMapInfo for UI map with ID 210
Catacylsm
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 418
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 371
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 376
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 379
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 390
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 422
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 388
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 554
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 507
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 504
[2025-03-11 21:25:36] (Debug) Failed to GetMapInfo for UI map with ID 433
[2025-03-11 21:25:38] (Debug) Failed to GetMapInfo for UI map with ID 83
[2025-03-11 21:25:38] (Debug) Failed to GetMapInfo for UI map with ID 50
[2025-03-11 21:25:38] (Debug) Failed to GetMapInfo for UI map with ID 69
[2025-03-11 21:25:38] (Debug) Failed to GetMapInfo for UI map with ID 56
Anniversary
[2025-03-11 21:16:02] (Debug) Failed to GetMapInfo for UI map with ID 224
[2025-03-11 21:16:02] (Debug) Failed to GetMapInfo for UI map with ID 50
[2025-03-11 21:16:02] (Debug) Failed to GetMapInfo for UI map with ID 210
[2025-03-11 21:16:02] (Debug) Failed to GetMapInfo for UI map with ID 69
[2025-03-11 21:16:02] (Debug) Failed to GetMapInfo for UI map with ID 56
Season of Discovery
[2025-03-11 21:11:50] (Debug) Failed to GetMapInfo for UI map with ID 317
[2025-03-11 21:11:50] (Debug) Failed to GetMapInfo for UI map with ID 319
[2025-03-11 21:11:50] (Debug) Failed to GetMapInfo for UI map with ID 69
[2025-03-11 21:11:50] (Debug) Failed to GetMapInfo for UI map with ID 291
[2025-03-11 21:11:50] (Debug) Failed to GetMapInfo for UI map with ID 56
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 15
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 36
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 70
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 64
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 729
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 416
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 77
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 25
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 10
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 124
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 247
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 205
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 81
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 50
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 26
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 78
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 51
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 52
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 83
[2025-03-11 21:11:54] (Debug) Failed to GetMapInfo for UI map with ID 210
This doesn't account for the zones
text used by items like Old Ironjaw, but should cover waypoint data (coords
).