// // Binary Message Dictionary (*.BMD) // (BlockSize: 0x00000200, CoderKey: 0x0000EA1E) // struct Header { uint32_t FileSize; uint32_t OffsetCount; // 0x00000001 (not used) uint32_t OffsetTable[OffsetCount]; // 0x0000000C (not used) } uint32_t TypeCount; uint32_t TextCount; uint32_t TextBufferSize; uint8_t TextBuffer[TextBufferSize]; // 0-terminated struct Dictionary { uint32_t Reserved1; // (not used) uint8_t Default[64]; // 0-terminated uint32_t Count; // TypeCount uint32_t Reserved2; // (TypeTable set an run-time) uint32_t Reserved3; // (TextTable set an run-time) } for (TypeCount) { uint32_t Count; // Elements in TextTable uint8_t Name[8]; // 0-terminated uint32_t Default; // Offset into TextBuffer uint32_t Index; // First element in TextTable } for (TextCount) { uint8_t Name[8]; // 0-terminated uint32_t Text; // Offset into TextBuffer }