World of Warcraft file formats
-
Guest
-
Guest
- Dinoguy1000
- Site Admin
- Posts: 759
- Joined: Mon Sep 13, 2004 1:55 am
- Has thanked: 129 times
- Been thanked: 142 times
-
nicoli_s
- advanced
- Posts: 77
- Joined: Fri Jan 07, 2005 7:47 am
- Has thanked: 1 time
- Been thanked: 3 times
yeah, i got that chinese one, this japanese one is alot better, it even has animations, but still no multi texture support, here's a sample of it
struct M2_HEADER // 336 bytes, 84 DWORDs.
{
DWORD dwIdent; // M2 File Identity
DWORD dwVersion; // version: 256
DWORD nModelNameSize; // strlen(szModelName) + 1
DWORD nModelNameOffset; // always 336(header size), points to ModelName.
DWORD dwUnk1; // All 0s, occasionally 1,3(World\SkillActivated\Containers\TreasureChest01: 3)
DWORD nGlobalSequences;
DWORD nGlobalSequencesOffset; // points to array of DWORD
DWORD nNumAnimations;
DWORD nAnimationsOffset; // points to M2_ANIMATION_INFO
DWORD nUnkIndices;
DWORD nUnkIndicesOffset; // points to array of unsigned short
DWORD nUnkLongs;
DWORD nUnkLongsOffset; // points to array of longs
DWORD nBonesCount;
DWORD nBonesOffset; // points to M2_BONE_DATA
DWORD nUnkIndices2;
DWORD nUnkIndicesOffset2; // points to array of unsigned short
DWORD nNumVertices;
DWORD nVerticesOffset; // points to M2_Vertex!!!
DWORD nNumGeoMeshs;
DWORD nGeoMeshsOffset; // Points to M2_GEOMETRY_MESH!!!
DWORD dwMagic[2]; // 0s
DWORD nNumTextures;
DWORD nTexturesOffset; // points to M2_TEXTURE_INFO.
DWORD dwUnk6[10]; // Other chunks
DWORD nGroupBoneIDs; // Bone groups data
DWORD nGroupBoneIDsOffset; // points to array of unsigned short which is bone id.
DWORD nNumMaterials;
DWORD nMaterialsOffset;
DWORD nStruct1Count; // 16 bytes, only 1.
DWORD nStruct1Offset;
DWORD nStruct2Count; // 16 bytes, only 1.
DWORD nStruct2Offset;
DWORD nStruct3Count; // 16 bytes, only 1.
DWORD nStruct3Offset;
vec3_type vMinBox; // Bounding box
vec3_type vMaxBox;
float fUnk4; // Unknown but it's right before min box when former mdx format.
float fUnk[5];
DWORD dwUnk8; // Unknown 0
float fUnk9;
DWORD dwUnk10; // Always 36
DWORD dwUnk11[5];
DWORD nAttachments;
DWORD nAttachmentsOffset;
DWORD dwUnk12;
DWORD dwUnkOffset12;
DWORD nNumEvents;
DWORD nEventsOffset;
DWORD dwUnk13;
DWORD dwUnkOffset13;
DWORD nCameras1;
DWORD nCameras1Offset;
DWORD nCameras2;
DWORD nCameras2Offset;
DWORD dwUnk14;
DWORD dwUnk15[6];
};
// ÎÆÀÃÃ
struct M2_HEADER // 336 bytes, 84 DWORDs.
{
DWORD dwIdent; // M2 File Identity
DWORD dwVersion; // version: 256
DWORD nModelNameSize; // strlen(szModelName) + 1
DWORD nModelNameOffset; // always 336(header size), points to ModelName.
DWORD dwUnk1; // All 0s, occasionally 1,3(World\SkillActivated\Containers\TreasureChest01: 3)
DWORD nGlobalSequences;
DWORD nGlobalSequencesOffset; // points to array of DWORD
DWORD nNumAnimations;
DWORD nAnimationsOffset; // points to M2_ANIMATION_INFO
DWORD nUnkIndices;
DWORD nUnkIndicesOffset; // points to array of unsigned short
DWORD nUnkLongs;
DWORD nUnkLongsOffset; // points to array of longs
DWORD nBonesCount;
DWORD nBonesOffset; // points to M2_BONE_DATA
DWORD nUnkIndices2;
DWORD nUnkIndicesOffset2; // points to array of unsigned short
DWORD nNumVertices;
DWORD nVerticesOffset; // points to M2_Vertex!!!
DWORD nNumGeoMeshs;
DWORD nGeoMeshsOffset; // Points to M2_GEOMETRY_MESH!!!
DWORD dwMagic[2]; // 0s
DWORD nNumTextures;
DWORD nTexturesOffset; // points to M2_TEXTURE_INFO.
DWORD dwUnk6[10]; // Other chunks
DWORD nGroupBoneIDs; // Bone groups data
DWORD nGroupBoneIDsOffset; // points to array of unsigned short which is bone id.
DWORD nNumMaterials;
DWORD nMaterialsOffset;
DWORD nStruct1Count; // 16 bytes, only 1.
DWORD nStruct1Offset;
DWORD nStruct2Count; // 16 bytes, only 1.
DWORD nStruct2Offset;
DWORD nStruct3Count; // 16 bytes, only 1.
DWORD nStruct3Offset;
vec3_type vMinBox; // Bounding box
vec3_type vMaxBox;
float fUnk4; // Unknown but it's right before min box when former mdx format.
float fUnk[5];
DWORD dwUnk8; // Unknown 0
float fUnk9;
DWORD dwUnk10; // Always 36
DWORD dwUnk11[5];
DWORD nAttachments;
DWORD nAttachmentsOffset;
DWORD dwUnk12;
DWORD dwUnkOffset12;
DWORD nNumEvents;
DWORD nEventsOffset;
DWORD dwUnk13;
DWORD dwUnkOffset13;
DWORD nCameras1;
DWORD nCameras1Offset;
DWORD nCameras2;
DWORD nCameras2Offset;
DWORD dwUnk14;
DWORD dwUnk15[6];
};
// ÎÆÀÃÃ


