View Full Version : [QUESTION][RELEASE] Interpreting Holes in MoP 5.3+ ADT Files

10-06-2013, 08:46 AM
~Ok, there's not much of a modding community here yet but I figure I'll post it here too just incase in the future some genius drops by and is nice. lol.

Question is does anyone know how to interpret how Holes are set up in MoP ADT's that are from 5.3.0 and up? Yes I know there is something on WowDev (http://www.pxr.dk/wowdev/wiki/index.php?title=ADT/v18#MCNK_chunk) but I honestly have no idea what they are referring to.

In patch 5.2.0 and back, all the holes were set at 0x3c of the MCNK chunk of an ADT, however it seems that in 5.3.0 and up, it no longer uses this field as noted on wowdev, blizzard now uses a 64bit mask for it now. However it also says that there is a way to get the 16bit value through some conversions, and that's where I'm stuck at.

I mean naturally I can (as well as anyone) manually find which MCNK contains the hole by manually poking about and setting the 0x3c to FFFF until I poke a the correct chunk and end up having a section disappear but that's not exactly the best thing to do in real world practice when there are a few hundred holes that need to be tracked out.

I have supplied working copies of 5.4.0's Timeless Isle and Isle of Giants that you can try to make use of and see if you can somehow get them working. These are in 3.3.5a Format however from my poking about, there isn't really any real difference between 5.3.0 and 5.2.0 ADT's except for the MCNK 0x3c location being blank.

Download(125MB): http://anthonys-toolbox.org/downloads/Pandaria-540-timeless-giant-snippet.rar

~It is current using the MapID 723, folder named Stormwind, rename it to another location or a custom location if you are currently using that ID for something else, adjust the .go xyz's accordingly as well naturally.

~~This contains all the data needed for the two islands to render out completely, with textures, WMO's, and doodads. Here's a sample of me when I'm actually focused on things where normally I just push large content patches on people simply because it takes an extra 15~20 minutes to figure out exactly what is needed, the size could have been a tad bit smaller if I removed the stuff that existed in 3.3.5a, but then again this isn't a commissioned task.

TrinityCore .go xyz commands:

.go xyz 6005 1520 35 723

.go xyz -425 -5120 8 723

.go xyz -547 -5425 6 723

ADT's Used:

If you want the hole data for Isle of Giants, you can grab them off the 5.2.0 version of the ADT, I have the 5.4.0 versions for reasons so that if anyone would like to compare the data, they'd be able to see there really isn't any difference between them except a new flag and that part empty.

If anyone can figure out how the hole data is interpreted, that'd be awesome!!

Warm Regards, ~ATBox
...well I say Warm, but it's actually kinda chilly at the moment, lol.

10-06-2013, 09:09 AM
maybe you could defragment the lost memory bits and recover them. idk

Thanks for coming by Treetree. XD....anyway, that would require me to be able to get on retail to dump the memory. But as noted, all the data chunks in the physical files are exactly the same between the 5.2.0 and 5.3.0 versions of the ones that existed prior to 5.3.0 however the only differences are is 4 bytes of a given chunk and a new flag which isn't used.

Which means that it's always been inside of the files, but they weren't used until very recently, or maybe the client has some new commands that reads the old data in a new way, either way I'm not a reverser so that's out of my league.

10-06-2013, 09:52 AM
obviously they are unused or uncompatable memory bits that are
not extremely useful kind of like left overs.

maybe you could delete all of then unless they are caching some sort video
of information but probably not they are just possibly junk or overlapping

idk seems like the pics suggest they are just fragments.

maybe delete them and put some better ones in there like
make them all 8 bit because whatever they are they are not capable
of holding enough video information to produce an image . :)

idk QQ would know more about that kind of stuff. :)

If I could just get the ADT's into Noggit, it would save me a hell of a time since then I could just 'Make' the hole. XD

Like there's this hole/wall here in Isle of Giants:

if I modify the hole data in the MCNK chunk to this, notice the Red 11. It's 00 11 because it appears to be using the 9th and 13th tile for this particular MCNK chunk.


then the hole works and renders out as:


Someone will figure this out someday.. and hopefully share it. doubtful but we'll see.

10-06-2013, 10:43 AM
ya but cant you just copy another memory segment and replace it in there
it would be very weird that's for sure.

You could but you'd get some funky results. Each ADT has 256 areas. 16x16

each Tile has 16 blocks to it, so in essence it has 4096 total tiles across one ADT.

The Tiles are layed out as


As you see each Red Area has 16 blue tiles inside of it, from left to right they are numbered 1 to 16. As noted it's a 16bit value, so the first 8bits is a bitmask 01010's for the first 8 tiles, the second is for the 2nd 8 tiles. So when I changed my value to 00 11 in my file, it disabled(or activated depending on how you want to view it) Tiles 9 and 13


With that said if I just grabbed an activation set from somewhere else, it will most likely activate the wrong tiles or just open up holes in places that you kinda need land at. As you can see in the first image, these boxes are the terrain with which you walk on, so if you take out the wrong one, well... bad things can happen to the player.

My theory could be wrong but so far it has served me pretty well, there is an exact science to it but I tend to come up with my own gimmicky understanding of things so I can make my own solutions to problems. ^^.

Anyway here's the full chunk missing if I just activate all of them (setting it to FF FF)



So if you just blindly copied and pasted something from another to this one, it could just screw it up, but then again, there are 256 blocks like this so trying to find the one that is near the cave is another hassle in itself.