Line 14: |
Line 14: |
| | | |
| ===Header version 3=== | | ===Header version 3=== |
− | * byte magic[8]: "NadeoPak"
| + | byte magic[8]; // "NadeoPak" |
− | * uint32 version (3)
| + | uint32 version; // 3 |
− | * uint64 headerIV
| + | uint64 headerIV; |
− | * Blowfish encrypted:
| + | Blowfish encrypted: |
− | ** uint128 headerMD5
| + | { |
− | ** uint32 metaDataOffset
| + | uint128 headerMD5; |
− | ** uint32 dataOffset
| + | uint32 metaDataOffset; |
− | ** if version >= 2
| + | uint32 dataOffset; |
− | *** uint32 metaDataUncompressedSize
| + | if version >= 2: |
− | *** uint32 metaDataCompressedSize
| + | { |
− | ** if version >= 3
| + | uint32 metaDataUncompressedSize; |
− | *** uint128
| + | uint32 metaDataCompressedSize; |
− | ** uint32 flags
| + | } |
− | ** uint32 numFolders
| + | if version >= 3: |
− | ** FolderEntry folders[numFolders]
| + | uint128 unused; |
− | *** uint32 parentFolderIndex (index into folders; -1 if this is a root folder)
| + | uint32 flags; |
− | *** string name
| + | uint32 numFolders; |
− | ** Set up ivXor
| + | FolderDesc folders[numFolders] |
− | ** uint32 numFiles
| + | { |
− | ** FileEntry files[numFiles]
| + | uint32 parentFolderIndex; // index into folders; -1 if this is a root folder |
− | *** uint32 folderIndex (index into folders)
| + | string name; |
− | *** string name
| + | } |
− | *** uint32
| + | Set up ivXor; |
− | *** uint32 uncompressedSize
| + | uint32 numFiles; |
− | *** uint32 compressedSize
| + | FileDesc files[numFiles] |
− | *** uint32 offset
| + | { |
− | *** uint32 [[Class IDs|classID]] (indicates the type of the file)
| + | uint32 folderIndex; // index into folders |
− | *** uint64 flags
| + | string name; |
| + | uint32 unknown; |
| + | uint32 uncompressedSize; |
| + | uint32 compressedSize; |
| + | uint32 offset; |
| + | uint32[[Class IDs | classID]]; // indicates the type of the file |
| + | uint64 flags; |
| + | } |
| + | } |
| | | |
| ====Header MD5==== | | ====Header MD5==== |