-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathdatafile_v4.ksy
74 lines (74 loc) · 1.53 KB
/
datafile_v4.ksy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
meta:
id: tw_datafile_v4
file-extension: map
endian: le
license: MIT/Apache-2.0
doc-ref: https://github.com/heinrich5991/libtw2/blob/b510f20bc58ceb33f38ddc555b63989ccf5a90d7/doc/datafile.md
seq:
- id: header
type: header
- id: item_types
type: item_type
repeat: expr
repeat-expr: header.num_item_types
- id: item_offsets
type: s4
repeat: expr
repeat-expr: header.num_items
- id: data_offsets
type: s4
repeat: expr
repeat-expr: header.num_data
- id: data_sizes
type: s4
repeat: expr
repeat-expr: header.num_data
- id: items
type: item
repeat: expr
repeat-expr: header.num_items
- id: data
size: (_index == header.num_data - 1 ? header.data_size : data_offsets[_index + 1]) - data_offsets[_index]
repeat: expr
repeat-expr: header.num_data
types:
header:
seq:
- id: magic
contents: 'DATA'
- id: version
contents: "\x04\x00\x00\x00"
- id: size
type: s4
- id: swaplen
type: s4
- id: num_item_types
type: s4
- id: num_items
type: s4
- id: num_data
type: s4
- id: item_size
type: s4
- id: data_size
type: s4
item_type:
seq:
- id: type_id
type: s4
- id: start
type: s4
- id: num
type: s4
item:
seq:
- id: id
type: u2
- id: type_id
type: u2
- id: size
type: s4
- id: item_data
type: s4
repeat: expr
repeat-expr: size / 4