ADT/v22: Difference between revisions
m (Added disclaimer.) |
Barncastle (talk | contribs) m (→AHDR: HeaDeR) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
==AHDR: HeaDeR== | ==AHDR: HeaDeR== | ||
*size: 0x40 | *size: 0x40 | ||
DWORD // 22 | DWORD version // 22, mirrors MVER | ||
DWORD | DWORD vertices_x // 129 | ||
DWORD | DWORD vertices_y // 129 | ||
DWORD | DWORD chunks_x // 16 | ||
DWORD | DWORD chunks_y // 16 | ||
DWORD[ | DWORD[11] | ||
==AVTX: VerTeX== | ==AVTX: VerTeX== | ||
*size: | *size: may be variable. Its based on the header. header.vertices_x*header.vertices_y + (header.vertices_x-1)*(header.vertices_y-1) * 4 bytes (float). | ||
A large collection of floats. Again with inner[(header.vertices_x-1)*(header.vertices_y-1)] and outer[header.vertices_x*header.vertices_y] vertices. | |||
Important: These are NOT mixed as in the ADT/v18s, but have the 129*129 field first, then the 128*128 one. | |||
float outer[129][129]; | |||
float inner[128][128]; | |||
for example. Same should apply for the normals. | |||
==ANRM: NoRMals== | ==ANRM: NoRMals== | ||
*size: | *size: may be variable. Its based on the header. header.vertices_x*header.vertices_y + (header.vertices_x-1)*(header.vertices_y-1) * 3 bytes. | ||
Like [[ADT/v18]], these are triples of chars being a vector. 127 is 1.0, -127 is -1.0. | |||
==ATEX: TEXtures== | ==ATEX: TEXtures== | ||
*size: variable | *size: variable | ||
Used for texture filenames. This is an array of chunks. There are as many chunks as there are textures used in this ADT tile. | Used for texture filenames. This is an array of chunks. There are as many chunks as there are textures used in this ADT tile, which is limited to 128 textures per ADT. | ||
==ADOO: DOOdad == | ==ADOO: DOOdad == | ||
*size: variable | *size: variable | ||
Used for [[M2 | Used for [[M2]] and [[WMO]] filenames. Both are in here. Again, an array of chunks with a chunk for every filename. | ||
==ACNK: ChuNK == | ==ACNK: ChuNK == | ||
*size: variable | *size: variable | ||
Line 39: | Line 50: | ||
====AMAP: alpha MAP ==== | ====AMAP: alpha MAP ==== | ||
*optional. size: variable (?) | *optional. size: variable (?) | ||
either uncompressed 8bit (depending on WDT) or 4bit RLE | |||
===ASHD: SHaDow map=== | ===ASHD: SHaDow map=== | ||
*optional. size: 0x200 (?) | *optional. size: 0x200 (?) | ||
Line 53: | Line 65: | ||
uint uniqueId | uint uniqueId | ||
DWORD[] // name / doodadsets? | DWORD[] // name / doodadsets? | ||
[[Category:Format]] |
Latest revision as of 17:01, 3 March 2019
Most likely temporary version. Do not bother implementing until final version is there. This is not used in current clients.
This document may not list all chunks.
AHDR: HeaDeR
- size: 0x40
DWORD version // 22, mirrors MVER DWORD vertices_x // 129 DWORD vertices_y // 129 DWORD chunks_x // 16 DWORD chunks_y // 16 DWORD[11]
AVTX: VerTeX
- size: may be variable. Its based on the header. header.vertices_x*header.vertices_y + (header.vertices_x-1)*(header.vertices_y-1) * 4 bytes (float).
A large collection of floats. Again with inner[(header.vertices_x-1)*(header.vertices_y-1)] and outer[header.vertices_x*header.vertices_y] vertices.
Important: These are NOT mixed as in the ADT/v18s, but have the 129*129 field first, then the 128*128 one.
float outer[129][129]; float inner[128][128];
for example. Same should apply for the normals.
ANRM: NoRMals
- size: may be variable. Its based on the header. header.vertices_x*header.vertices_y + (header.vertices_x-1)*(header.vertices_y-1) * 3 bytes.
Like ADT/v18, these are triples of chars being a vector. 127 is 1.0, -127 is -1.0.
ATEX: TEXtures
- size: variable
Used for texture filenames. This is an array of chunks. There are as many chunks as there are textures used in this ADT tile, which is limited to 128 textures per ADT.
ADOO: DOOdad
- size: variable
Used for M2 and WMO filenames. Both are in here. Again, an array of chunks with a chunk for every filename.
ACNK: ChuNK
- size: variable
This one is a bit like the MCNK one. There is an header for it, if the size is bigger than 0x40. If it has an header, its like this:
int indexX int indexY DWORD int areaId WORD DWORD[4] lowdetailtextureingmap WORD DWORD[7]
ALYR: LaYeR
- size: 0x20 or more.
This will include the alpha map if flags&0x100.
int textureID // as in ATEX int flags DWORD[6]
AMAP: alpha MAP
- optional. size: variable (?)
either uncompressed 8bit (depending on WDT) or 4bit RLE
ASHD: SHaDow map
- optional. size: 0x200 (?)
most likely like the old one.
ACDO: Chunk - Definitions of Objects
- optional. size: 0x38
Doodads and WMOs are now both defined here.
int modelid // as in ADOO float position[3] float rotation[3] float scale[3] float uint uniqueId DWORD[] // name / doodadsets?