DML Tables
This is a binary format which is used most notably for LatestFileList.bin
.
All integers are in little-endian byte order unless otherwise specified.
Type Tag
When binary-serialized, the subsequent values of field types are identified by a tag value dynamically. The following maps tags to their respective DML types:
Tag | Type |
---|---|
0 | GID |
1 | INT |
2 | UINT |
3 | FLT |
4 | BYT |
5 | UBYT |
6 | USHRT |
7 | DBL |
8 | STR |
9 | WSTR |
Message Orders
DML tables at present only use message types defined in the ExtendedBaseMessages
protocol.
Index | Type |
---|---|
1 | MSG_CUSTOMDICT |
2 | MSG_CUSTOMRECORD |
Structure
The following documents the outline of a serialized table blob.
Table
This structure and everything it encapsulates should be read as many times as needed until EOF is reached.
Name | Type | Description |
---|---|---|
ValuesLength | UINT | Length of the Values array |
Values | Value[] | Array of Value structures |
Value
Name | Type | Description |
---|---|---|
ProtocolID | UBYT | ID of ExtendedBaseMessages protocol (always 2) |
- | UBYT | Type of structure that follows according to the Message Order |
Size | USHRT | Size of this structure including everything it encapsulates |
RecordTemplate
Name | Type | Description |
---|---|---|
RecordFields | RecordField[] | Array of RecordField structures |
RecordField
Name | Type | Description |
---|---|---|
Length | USHRT | Length prefix of Name |
Name | STR | Name of the field If the name is _TargetTable then the TargetTable structure should be read after this structure |
Type | UBYT | Type of the field according to the Type Tags table |
? | UBYT | DML flags; implementation-specific |
TargetTable
This is assumed to always be part of a RecordTemplate as part of the specification.
Name | Type | Description |
---|---|---|
Length | USHRT | Length prefix of Name |
Name | STR | The table that Records of this type should belong to |
Record
Name | Type | Description |
---|---|---|
- | - | Values should be read according to the RecordFields in the preceding RecordTemplate |