I've been studying the code of Metamap, Cart, Atlas, InstanceMaps and Instantiation (yes, that one too lol)
I wanted to try to work on getting instance maps to show up without having to include the blps, like InstanceMaps and Cart does. But it's boggling me how that is implemented. Both addons have a very large table with a shitload of numbers (which I am assuming are texture names/regions?), those are then parsed and end up showing the right instance. What I am having issues with is understanding how they know those numbers, where they come from and the parsing itself.
Instantiation seems to start with blps that are per instance, which seems slighty easier to understand for me. I would go about making a table to link the instance name with a blp file, and get the instancename with GetRealZoneText().
The latter seems to be the simplest to implement, but of course I am shooting for the first option. Could anyone shed a tiny ray of light on how those numbers relate to the instances? On what are those numbers applied in the first place (since I can't find any instance map in the Blizz Interface Art folder).
After I saw the method used by Carto and InstanceMaps I decided that blps is much MUCH simpler to maintain, and a lot faster to load. Yes, it's not as detailed in the resolution, but a map really isn't MEANT to be super high rez, it's a generalized overview. So yea, I just mine maps and coord from wowhead. Works well, just havn't gotten around to fleshing out the GUI for displaying the maps.
If you want to fork Instantiation, I gladly welcome any improvements.
After I saw the method used by Carto and InstanceMaps I decided that blps is much MUCH simpler to maintain, and a lot faster to load. Yes, it's not as detailed in the resolution, but a map really isn't MEANT to be super high rez, it's a generalized overview. So yea, I just mine maps and coord from wowhead. Works well, just havn't gotten around to fleshing out the GUI for displaying the maps.
If you want to fork Instantiation, I gladly welcome any improvements.
Thanks :) I am just dabbling with it a little. I saw it on your github, though I believe Blackrock Spire is missing as map (got it from WoWhead now though). I do agree with the detailed resolution, I just need to know a general direction where I am going :P I plan on trying with a DB linking the blps to named, getting the instance name and then load the map. What I've not thought about where the mapnotes regarding bosses. :P
I'll see how github is and perhaps sign up there to fork it. But for now, I'll just locally work on it. I am rather bad at coding >.< Still have one bug in the fork of TekMapEnhancer :P
-- Edit --
Renaming the textures is handier to work with, though is more typing :P (added Sunwell plateau as well)
"mapnotes" as in boss loot crap? That really belongs in a separate addon.
Mapnotes as in "this boss is here", not a dime more. Loot does belong in a different addon. Which is where my issue starts with most instancemap things out there :)
-- Edit: Could even modify the textures like Atlas did. Add 1/2/3/4 etc per boss, escape the need for coordinates for them as well. But then you lose the ability to hover over to see which boss.. Meh, need to think about that more.
I am assuming the instances in wow are on one big region on a seperate server.
Like: one server for Eastern Kingdoms, one server for Kalimdor, one for Outland and one for instances. In that effect there is probably one big map in the .wdb files that contains ALL the instances. Similarly, this might also be the reason (or at least ONE of the reasons) why they don't allow coords in instances... Cuz then we'd know more about the implementation.
This all conjecture though. I don't really KNOW anything :p.
But if I'm right, Instancemaps simply keeps track of where on the 'Big Instance Map' the map of a certain instance is.
But if I'm right, Instancemaps simply keeps track of where on the 'Big Instance Map' the map of a certain instance is.
Actually the minimap textures are a bunch of tiny files. They're stored with filenames that IIRC correspond to the md5 hash of the file. Then there's a master file which maps more intelligible names to the md5sum named files.
What the instance map addons typically do is put together the minimap texture images that correspond to the instance. And all that information has to be data-mined (either via wowhead or real work) and then stored in the addon.
I am assuming the instances in wow are on one big region on a seperate server.
Like: one server for Eastern Kingdoms, one server for Kalimdor, one for Outland and one for instances. In that effect there is probably one big map in the .wdb files that contains ALL the instances. Similarly, this might also be the reason (or at least ONE of the reasons) why they don't allow coords in instances... Cuz then we'd know more about the implementation.
Actually, if you knew coords in instances boss fights would be EXTREMEMLY easy. One raid kills the boss with everyone having the 'record' addon, and a bunch of people then follow up and easily kill the boss because they can 'replay' that other guild's kill.
I.e. Think of a tomtom/tourguide type arrow telling you where to move during a boss fight.
Actually, if you knew coords in instances boss fights would be EXTREMEMLY easy. One raid kills the boss with everyone having the 'record' addon, and a bunch of people then follow up and easily kill the boss because they can 'replay' that other guild's kill.
I.e. Think of a tomtom/tourguide type arrow telling you where to move during a boss fight.
You can pretty much do that, regardless. Once a raid/group downs something successfully, all they need to do is let people kno how they did it, and then that can be followed up rather successfully. That's how we tamed 'The Beast' for our guild's main hunter.
IMO an instnace tomtom would probably get more people killed than a text guide, simply because a lot of people just follow that arrow rather blindly. :p
Anyoo, that's off topic, so all of that jargen in the maps lua is md5 hash?
I am assuming the instances in wow are on one big region on a seperate server.
Like: one server for Eastern Kingdoms, one server for Kalimdor, one for Outland and one for instances. In that effect there is probably one big map in the .wdb files that contains ALL the instances. Similarly, this might also be the reason (or at least ONE of the reasons) why they don't allow coords in instances... Cuz then we'd know more about the implementation.
This all conjecture though. I don't really KNOW anything :p.
I do think this is true, because:
- I've had the same instance ID for multiple raid instances.
- We had issues getting into 25-man instances during the Hallow's End event because people were using up so many instance slots for Scarlet Monastery runs to kill the Headless Horseman.
Yes, there are 2 Continent servers (Kalimdor and Eastern Kingdoms), an expansion zones server (Outlands and Draenei/BE areas), and instance servers. I assume that WotLK will add another server to that list. Basically, whenever you see a loading screen, you're going across servers. Whenever one world server is down, you can log onto another character on a different world server that is up.
Actually the minimap textures are a bunch of tiny files. They're stored with filenames that IIRC correspond to the md5 hash of the file. Then there's a master file which maps more intelligible names to the md5sum named files.
What the instance map addons typically do is put together the minimap texture images that correspond to the instance. And all that information has to be data-mined (either via wowhead or real work) and then stored in the addon.
It described how the minimap files and textures are named, and how you can extract them and/or build your own minimap. It is also the basis behind YAtlas and Cartographer3.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I wanted to try to work on getting instance maps to show up without having to include the blps, like InstanceMaps and Cart does. But it's boggling me how that is implemented. Both addons have a very large table with a shitload of numbers (which I am assuming are texture names/regions?), those are then parsed and end up showing the right instance. What I am having issues with is understanding how they know those numbers, where they come from and the parsing itself.
Instantiation seems to start with blps that are per instance, which seems slighty easier to understand for me. I would go about making a table to link the instance name with a blp file, and get the instancename with GetRealZoneText().
The latter seems to be the simplest to implement, but of course I am shooting for the first option. Could anyone shed a tiny ray of light on how those numbers relate to the instances? On what are those numbers applied in the first place (since I can't find any instance map in the Blizz Interface Art folder).
If you want to fork Instantiation, I gladly welcome any improvements.
Thanks :) I am just dabbling with it a little. I saw it on your github, though I believe Blackrock Spire is missing as map (got it from WoWhead now though). I do agree with the detailed resolution, I just need to know a general direction where I am going :P I plan on trying with a DB linking the blps to named, getting the instance name and then load the map. What I've not thought about where the mapnotes regarding bosses. :P
I'll see how github is and perhaps sign up there to fork it. But for now, I'll just locally work on it. I am rather bad at coding >.< Still have one bug in the fork of TekMapEnhancer :P
-- Edit --
Renaming the textures is handier to work with, though is more typing :P (added Sunwell plateau as well)
Mapnotes as in "this boss is here", not a dime more. Loot does belong in a different addon. Which is where my issue starts with most instancemap things out there :)
-- Edit: Could even modify the textures like Atlas did. Add 1/2/3/4 etc per boss, escape the need for coordinates for them as well. But then you lose the ability to hover over to see which boss.. Meh, need to think about that more.
Example: http://www.wowhead.com/?zone=3456
Ha! Awesome. Harassment ftw lol
Edit: Forgive me for asking something again, but how does the mining work? (aka, how the heck do you mine data from wowhead?)
I was wondering the same thing as moon.
How the hell does 'InstanceMaps' do it? xD
Are the maps converted from an image to text, then reassembled or something? O_o
Like: one server for Eastern Kingdoms, one server for Kalimdor, one for Outland and one for instances. In that effect there is probably one big map in the .wdb files that contains ALL the instances. Similarly, this might also be the reason (or at least ONE of the reasons) why they don't allow coords in instances... Cuz then we'd know more about the implementation.
This all conjecture though. I don't really KNOW anything :p.
But if I'm right, Instancemaps simply keeps track of where on the 'Big Instance Map' the map of a certain instance is.
Actually the minimap textures are a bunch of tiny files. They're stored with filenames that IIRC correspond to the md5 hash of the file. Then there's a master file which maps more intelligible names to the md5sum named files.
What the instance map addons typically do is put together the minimap texture images that correspond to the instance. And all that information has to be data-mined (either via wowhead or real work) and then stored in the addon.
Actually, if you knew coords in instances boss fights would be EXTREMEMLY easy. One raid kills the boss with everyone having the 'record' addon, and a bunch of people then follow up and easily kill the boss because they can 'replay' that other guild's kill.
I.e. Think of a tomtom/tourguide type arrow telling you where to move during a boss fight.
You can pretty much do that, regardless. Once a raid/group downs something successfully, all they need to do is let people kno how they did it, and then that can be followed up rather successfully. That's how we tamed 'The Beast' for our guild's main hunter.
IMO an instnace tomtom would probably get more people killed than a text guide, simply because a lot of people just follow that arrow rather blindly. :p
Anyoo, that's off topic, so all of that jargen in the maps lua is md5 hash?
I do think this is true, because:
- I've had the same instance ID for multiple raid instances.
- We had issues getting into 25-man instances during the Hallow's End event because people were using up so many instance slots for Scarlet Monastery runs to kill the Headless Horseman.
This link might be of use to everyone:
http://homepage.mac.com/prym/apptwo.html
It described how the minimap files and textures are named, and how you can extract them and/or build your own minimap. It is also the basis behind YAtlas and Cartographer3.