Add File Type - Bundle
parent
1efbe855fd
commit
6abdfaa410
1 changed files with 78 additions and 0 deletions
78
File Type - Bundle.-.md
Normal file
78
File Type - Bundle.-.md
Normal file
|
@ -0,0 +1,78 @@
|
|||
```
|
||||
//------------------------------------------------
|
||||
//--- 010 Editor v12.0.1 Binary Template
|
||||
//
|
||||
// File: dt_bundle_decompressed.bt
|
||||
// Authors: Lucas Schwiderski
|
||||
// Version:
|
||||
// Purpose:
|
||||
// Category: Darktide
|
||||
// File Mask:
|
||||
// ID Bytes:
|
||||
// History:
|
||||
//------------------------------------------------
|
||||
|
||||
typedef struct {
|
||||
uint64 extension <format=hex>;
|
||||
uint64 name <format=hex>;
|
||||
uint32 flags <format=binary>;
|
||||
} FileMeta;
|
||||
|
||||
typedef struct {
|
||||
uint32 lang <format=binary>;
|
||||
byte is_data_file <comment="If 1, data chunk will be a file name in data/">;
|
||||
uint32 size;
|
||||
byte unknown_2;
|
||||
// If > 0, data chunk will be followed by a string of that length, which is an auxiliary/extension file
|
||||
// to the data in the data chunk.
|
||||
// Example: `.wwise_stream` only contains 12 bytes of data in the bundle, which includes an offset and a length.
|
||||
// The extra file then contains the actual data.
|
||||
uint32 len_data_file_name;
|
||||
|
||||
if (unknown_2 != 1) {
|
||||
Warning("Expected '1' for 'unknown_2', got '%x'", unknown_2);
|
||||
}
|
||||
} FileHeader;
|
||||
|
||||
typedef struct {
|
||||
uint64 extension <format=hex>;
|
||||
uint64 name <format=hex>;
|
||||
|
||||
uint32 header_count;
|
||||
uint32 unknown_1;
|
||||
|
||||
FileHeader headers[header_count];
|
||||
|
||||
local int i = 0;
|
||||
for (i = 0; i < header_count; i++) {
|
||||
if (headers[i].is_data_file) {
|
||||
char data_file[headers[i].size];
|
||||
} else {
|
||||
byte data[headers[i].size];
|
||||
char data_file[headers[i].len_data_file_name];
|
||||
}
|
||||
}
|
||||
} File;
|
||||
|
||||
uint32 version <format=hex>;
|
||||
uint32 unknown_1;
|
||||
Assert(unknown_1 == 3);
|
||||
|
||||
uint32 num_entries;
|
||||
uint64 properties[32] <format=hex>;
|
||||
|
||||
FileMeta file_meta[num_entries];
|
||||
|
||||
uint32 num_chunks;
|
||||
uint32 chunk_sizes[num_chunks];
|
||||
|
||||
local int padding_size = 16 - (FTell() % 16);
|
||||
if (padding_size < 16) {
|
||||
byte padding[padding_size];
|
||||
}
|
||||
|
||||
uint32 unpacked_size <bgcolor=0x0015FF>;
|
||||
uint32 unknown_3;
|
||||
|
||||
File files[num_entries] <optimize=false>;
|
||||
```
|
Loading…
Add table
Reference in a new issue