diff options
| author | Torbjörn Andersson | 2008-11-14 14:03:08 +0000 |
|---|---|---|
| committer | Torbjörn Andersson | 2008-11-14 14:03:08 +0000 |
| commit | 5e5eebf24f1951de4300e4c7d642fd5e6fbb5936 (patch) | |
| tree | f55eae32db4452fb1e96293d17bada8c176c1d64 /engines | |
| parent | 2ec6e678be65338ceb9d9523c0031d7ef81b4d4d (diff) | |
| download | scummvm-rg350-5e5eebf24f1951de4300e4c7d642fd5e6fbb5936.tar.gz scummvm-rg350-5e5eebf24f1951de4300e4c7d642fd5e6fbb5936.tar.bz2 scummvm-rg350-5e5eebf24f1951de4300e4c7d642fd5e6fbb5936.zip | |
Committed my own patch #2278665 ("SCUMM: Font data in old SCUMM games") to get
rid of a few kilobytes of hard-coded font data. (The font data is still there,
but now we only store how the French, German, Italian and Spanish fonts differ
from the English one.)
svn-id: r35056
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/saga/animation.h | 8 | ||||
| -rw-r--r-- | engines/scumm/charset-fontdata.cpp | 818 | ||||
| -rw-r--r-- | engines/scumm/charset.h | 4 |
3 files changed, 157 insertions, 673 deletions
diff --git a/engines/saga/animation.h b/engines/saga/animation.h index a88d743af1..d688b0f0a7 100644 --- a/engines/saga/animation.h +++ b/engines/saga/animation.h @@ -166,11 +166,9 @@ private: if (animId >= MAX_ANIMATIONS) { if (animId >= MAX_ANIMATIONS + ARRAYSIZE(_cutawayAnimations)) error("validateAnimationId: animId out of range"); - if (_cutawayAnimations[animId - MAX_ANIMATIONS] == NULL) { + if (_cutawayAnimations[animId - MAX_ANIMATIONS] == NULL) error("validateAnimationId: animId=%i unassigned", animId); - } - } - if (_animations[animId] == NULL) { + } else if (_animations[animId] == NULL) { error("validateAnimationId: animId=%i unassigned.", animId); } } @@ -184,7 +182,7 @@ private: AnimationData* getAnimation(uint16 animId) { validateAnimationId(animId); - if (animId > MAX_ANIMATIONS) + if (animId >= MAX_ANIMATIONS) return _cutawayAnimations[animId - MAX_ANIMATIONS]; return _animations[animId]; } diff --git a/engines/scumm/charset-fontdata.cpp b/engines/scumm/charset-fontdata.cpp index e9a496f6ed..904e40d9ea 100644 --- a/engines/scumm/charset-fontdata.cpp +++ b/engines/scumm/charset-fontdata.cpp @@ -160,667 +160,6 @@ static const byte englishCharsetDataV2[] = { 0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x0E, 0x0C, 0x08, }; -// German Zak font -static const 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, - 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, - 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, - 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, - 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, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 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, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 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, -}; - -// German C64 MM -static const byte germanCharsetDataV0[] = { - 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, - 0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x06, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60, - 0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 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, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xba, 0x82, 0x7c, 0x00, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 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, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x0c, 0x12, 0x30, 0x7c, 0x30, 0x62, 0xfc, 0x00, - 0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 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, - 0x01, 0x03, 0x06, 0x6c, 0x78, 0x70, 0x60, 0x00, - 0x18, 0x3c, 0x7e, 0xff, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xff, 0x7e, 0x3c, 0x18, - 0x10, 0x30, 0x70, 0xff, 0xff, 0x70, 0x30, 0x10, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - -// French Zak font. -static const 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, -}; - -// Italian Zak font. -static const byte italianCharsetDataV2[] = { - 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, - 0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 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, - 0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x10, 0x08, 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, -}; - -// Spanish Zak font. -// FIXME: This is identical to germanCharsetDataV2 it seems?! -static const byte spanishCharsetDataV2[] = { - 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, - 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, - 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, - 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, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 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, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 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, -}; - static const byte russianCharsetDataV2[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xc0, 0x80, @@ -1066,27 +405,151 @@ static const byte russianCharsetDataV2[] = { 0x48, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00 }; +// These replacement character tables have been created using the +// make-charset-fontdata tool. + +// German Zak font. +static const byte germanCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 61, 3, + 91, 4, + 92, 5, + 93, 6, + 123, 7, + 124, 8, + 125, 9, + 126, 10, +}; + +// German C64 MM. +static const byte germanCharsetDataV0[] = { + 36, 11, + 42, 12, + 43, 13, + 60, 4, + 62, 7, + 91, 5, + 93, 14, + 94, 15, +}; + +// French Zak font. +static const byte frenchCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 60, 16, + 61, 17, + 62, 18, + 91, 19, + 92, 20, + 93, 21, + 95, 22, + 123, 23, + 124, 24, + 125, 25, + 126, 26, +}; + +// Italian Zak font. +static const byte italianCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 60, 16, + 61, 27, + 62, 20, + 91, 19, + 92, 20, + 93, 21, + 95, 22, + 123, 28, + 124, 29, + 125, 25, + 126, 26, +}; + +// Spanish Zak font. +static const byte spanishCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 61, 3, + 91, 4, + 92, 5, + 93, 6, + 123, 7, + 124, 8, + 125, 9, + 126, 10, +}; + +// Special characters +static const byte specialCharsetData[] = { + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, + 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, + 0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60, + 0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, + 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38, + 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, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 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, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, +}; + CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) : CharsetRendererV3(vm) { _fontHeight = 8; _curId = 0; + const byte *replacementData = NULL; + int replacementChars = 0; + switch (language) { case Common::DE_DEU: - if (_vm->_game.version == 0) - _fontPtr = germanCharsetDataV0; - else - _fontPtr = germanCharsetDataV2; + if (_vm->_game.version == 0) { + replacementData = germanCharsetDataV0; + replacementChars = sizeof(germanCharsetDataV0) / 2; + } else { + replacementData = germanCharsetDataV2; + replacementChars = sizeof(germanCharsetDataV2) / 2; + } break; case Common::FR_FRA: - _fontPtr = frenchCharsetDataV2; + replacementData = frenchCharsetDataV2; + replacementChars = sizeof(frenchCharsetDataV2) / 2; break; case Common::IT_ITA: - _fontPtr = italianCharsetDataV2; + replacementData = italianCharsetDataV2; + replacementChars = sizeof(italianCharsetDataV2) / 2; break; case Common::ES_ESP: - _fontPtr = spanishCharsetDataV2; + replacementData = spanishCharsetDataV2; + replacementChars = sizeof(spanishCharsetDataV2) / 2; break; case Common::RU_RUS: _fontPtr = russianCharsetDataV2; @@ -1096,6 +559,20 @@ CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) break; } + if (replacementData) { + _fontPtr = new byte[sizeof(englishCharsetDataV2)]; + _deleteFontPtr = true; + memcpy(const_cast<byte *>(_fontPtr), englishCharsetDataV2, sizeof(englishCharsetDataV2)); + + for (int i = 0; i < replacementChars; i++) { + int ch1 = replacementData[2 * i]; + int ch2 = replacementData[2 * i + 1]; + + memcpy(const_cast<byte *>(_fontPtr) + 8 * ch1, specialCharsetData + 8 * ch2, 8); + } + } else + _deleteFontPtr = false; + #if 0 // Decompress weird encoding in which the Zak executable contains the font. // I leave the code around in case we need to use it again (e.g. we might @@ -1130,4 +607,9 @@ CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) #endif } +CharsetRendererV2::~CharsetRendererV2() { + if (_deleteFontPtr) + delete[] _fontPtr; +} + } // End of namespace Scumm diff --git a/engines/scumm/charset.h b/engines/scumm/charset.h index dbe02fc8fc..905849a977 100644 --- a/engines/scumm/charset.h +++ b/engines/scumm/charset.h @@ -165,8 +165,12 @@ public: }; class CharsetRendererV2 : public CharsetRendererV3 { +protected: + bool _deleteFontPtr; + public: CharsetRendererV2(ScummEngine *vm, Common::Language language); + ~CharsetRendererV2(); void setCurID(int32 id) {} int getCharWidth(byte chr) { return 8; } |
