LAF: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
== Character Code Table == | == Character Code Table == | ||
After the preamble we have a table that contains the ASCII code for each character. Each such code is 2 bytes little endian, and there are as many codes as there are characters. The code at offset <tt>0x20 + (i * 2)</tt> is the ASCII code of the ''i''-th character, starting at <tt>i = 0</tt>. | After the preamble we have a table that contains the ASCII code for each character. Each such code is 2 bytes little endian, and there are as many codes as there are characters. The code at offset <tt>0x20 + (i * 2)</tt> is the ASCII code of the ''i''-th character, starting at <tt>i = 0</tt>. | ||
== Character Info Table == | |||
The character code table is followed by a table that contains information about each character. Each information block is 16 bytes, and contains several fields. There are as many information blocks as there are characters. The structure of an information block is as follows, with addresses relative to the block's address: | |||
0x00|Bitmap data offset|4 bytes little endian | |||
0x04|Logical width |1 byte | |||
0x05|Unknown |1 byte | |||
0x06|Unknown |1 byte | |||
0x07|Unknown |1 byte | |||
0x08|Width (pixels) |4 bytes little endian | |||
0x0C|Height (pixels) |4 bytes little endian |
Revision as of 16:13, 14 July 2006
This page is some preliminary in-progress documentation for the LucasArts Font format (LAF).
Preamble
0x00|Number of characters |4 bytes little endian 0x04|Raw font data size |4 bytes little endian 0x08|Max character width (pixels) |4 bytes little endian 0x0C|Max character height (pixels)|4 bytes little endian 0x10|Unknown |4 bytes little endian 0x14|Unknown |4 bytes little endian 0x18|First character ASCII code |4 bytes little endian 0x1C|Last character ASCII code |4 bytes little endian
Character Code Table
After the preamble we have a table that contains the ASCII code for each character. Each such code is 2 bytes little endian, and there are as many codes as there are characters. The code at offset 0x20 + (i * 2) is the ASCII code of the i-th character, starting at i = 0.
Character Info Table
The character code table is followed by a table that contains information about each character. Each information block is 16 bytes, and contains several fields. There are as many information blocks as there are characters. The structure of an information block is as follows, with addresses relative to the block's address:
0x00|Bitmap data offset|4 bytes little endian 0x04|Logical width |1 byte 0x05|Unknown |1 byte 0x06|Unknown |1 byte 0x07|Unknown |1 byte 0x08|Width (pixels) |4 bytes little endian 0x0C|Height (pixels) |4 bytes little endian