fixed V2 font decoder; added french V2 font
svn-id: r7967
This commit is contained in:
parent
30d9dde76c
commit
b797a34526
1 changed files with 147 additions and 8 deletions
|
@ -197,7 +197,7 @@ void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) {
|
|||
}
|
||||
|
||||
// German Zak font (should work for US version too).
|
||||
static byte charsetDataV2[] = {
|
||||
static byte germanCharsetDataV2[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
|
||||
0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
|
||||
|
@ -325,11 +325,146 @@ static byte charsetDataV2[] = {
|
|||
0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00,
|
||||
0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40,
|
||||
0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08
|
||||
0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
|
||||
};
|
||||
|
||||
// French Zak font (should work for US version too).
|
||||
static byte frenchCharsetDataV2[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
|
||||
0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
|
||||
0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
|
||||
0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
|
||||
0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
|
||||
0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
|
||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
|
||||
0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
|
||||
0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
|
||||
0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
|
||||
0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
|
||||
0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
|
||||
0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
|
||||
0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
|
||||
0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
|
||||
0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
|
||||
0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
|
||||
0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
|
||||
0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
|
||||
0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
|
||||
0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
|
||||
0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
|
||||
0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
|
||||
0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
|
||||
0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
|
||||
0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
|
||||
0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
|
||||
0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
|
||||
0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
|
||||
0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
|
||||
0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
|
||||
0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38,
|
||||
0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
|
||||
0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
|
||||
0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
|
||||
0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
|
||||
0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
|
||||
0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
|
||||
0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
|
||||
0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
|
||||
0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
|
||||
0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
|
||||
0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
|
||||
0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
|
||||
0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
|
||||
0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
|
||||
0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
|
||||
0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
|
||||
0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
|
||||
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
|
||||
0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
|
||||
0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
|
||||
0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
|
||||
0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
|
||||
0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
|
||||
0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
|
||||
0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00,
|
||||
0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
|
||||
0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
|
||||
0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
|
||||
0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
|
||||
0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
|
||||
0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
|
||||
0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
|
||||
0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
|
||||
0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
|
||||
0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
|
||||
0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
|
||||
0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
|
||||
0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
|
||||
0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
|
||||
0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
|
||||
0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
|
||||
0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
|
||||
0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
|
||||
0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
|
||||
0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
|
||||
0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
|
||||
0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
|
||||
0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
|
||||
0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00,
|
||||
0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
|
||||
0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
|
||||
0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
|
||||
};
|
||||
|
||||
|
||||
void CharsetRendererV2::setCurID(byte id) {
|
||||
_fontPtr = charsetDataV2;
|
||||
|
||||
_fontPtr = frenchCharsetDataV2;
|
||||
_fontPtr = germanCharsetDataV2;
|
||||
|
||||
#if 0
|
||||
// Decompress weird encoding in which the Zak executable contains the font.
|
||||
|
@ -339,10 +474,13 @@ void CharsetRendererV2::setCurID(byte id) {
|
|||
//
|
||||
int count = 0, len;
|
||||
byte b;
|
||||
for (int offset = 0; offset < (int)sizeof(charsetDataV2); offset++) {
|
||||
if (charsetDataV2[offset+1] == 0x00 && charsetDataV2[offset+2] == 0xB2) {
|
||||
b = charsetDataV2[offset+3];
|
||||
len = charsetDataV2[offset+4];
|
||||
const byte *data = frenchCharsetDataV2;
|
||||
const int size = sizeof(frenchCharsetDataV2);
|
||||
for (int offset = 0; offset < size; offset++) {
|
||||
if (data[offset+1] == 0x00 && data[offset+2] == 0xB2 &&
|
||||
data[offset+5] == 0x00 && data[offset+6] == 0xB0) {
|
||||
b = data[offset+3];
|
||||
len = data[offset+4];
|
||||
while (len--) {
|
||||
printf("0x%02x, ", b);
|
||||
count++;
|
||||
|
@ -351,13 +489,14 @@ void CharsetRendererV2::setCurID(byte id) {
|
|||
}
|
||||
offset += 6;
|
||||
} else {
|
||||
printf("0x%02x, ", charsetDataV2[offset]);
|
||||
printf("0x%02x, ", data[offset]);
|
||||
count++;
|
||||
if (count % 8 == 0)
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
exit(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue