diff options
author | Paul Gilbert | 2012-05-20 09:57:24 +1000 |
---|---|---|
committer | Paul Gilbert | 2012-05-20 09:57:24 +1000 |
commit | 0136bf4a863073a9a47dc379e2eeb2fa74af2ec6 (patch) | |
tree | d2d0cba19b834e79d02062d3d385d34ac0b514e7 /engines/tony | |
parent | e76a55588af1deb9a14bb8d89d4d818ea8120d96 (diff) | |
download | scummvm-rg350-0136bf4a863073a9a47dc379e2eeb2fa74af2ec6.tar.gz scummvm-rg350-0136bf4a863073a9a47dc379e2eeb2fa74af2ec6.tar.bz2 scummvm-rg350-0136bf4a863073a9a47dc379e2eeb2fa74af2ec6.zip |
TONY: Fix issues with font loading and display of accented characters
Diffstat (limited to 'engines/tony')
-rw-r--r-- | engines/tony/font.cpp | 578 | ||||
-rw-r--r-- | engines/tony/font.h | 8 |
2 files changed, 291 insertions, 295 deletions
diff --git a/engines/tony/font.cpp b/engines/tony/font.cpp index b0e42407cf..706aca8467 100644 --- a/engines/tony/font.cpp +++ b/engines/tony/font.cpp @@ -1162,297 +1162,293 @@ void RMFontCredits::Init(void) { lTable[':'] = 5; lTable['\''] = 5; - - - // Polish characters - //AaCcEeLlNnOoSsZzZz - //ꣳ - - cTable[(byte)''] = 112; - cTable[(byte)''] = 113; - cTable[(byte)''] = 114; - cTable[(byte)''] = 115; - cTable[(byte)''] = 116; - cTable[(byte)''] = 117; - cTable[(byte)''] = 118; - cTable[(byte)''] = 119; - cTable[(byte)''] = 120; - cTable[(byte)''] = 121; - cTable[(byte)''] = 122; - cTable[(byte)''] = 123; - cTable[(byte)''] = 124; - cTable[(byte)''] = 125; - cTable[(byte)''] = 126; - cTable[(byte)''] = 127; - cTable[(byte)''] = 128; - cTable[(byte)''] = 129; - - lTable[(byte)''] = 20; - lTable[(byte)''] = 12; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - lTable[(byte)''] = 14; - lTable[(byte)''] = 11; - lTable[(byte)''] = 16; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 11; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - - -#ifdef FONT_RUSSIAN - // Russian Characters - // WARNING: Il russo usa molti dei caratteri ISO-Latin-1 che servono - // per le altre traduzioni. Per compilare Tony in altre lingue, - // commentare via queste definizioni. - - cTable[(byte)''] = 130; - cTable[(byte)''] = 131; - cTable[(byte)''] = 132; - cTable[(byte)''] = 133; - cTable[(byte)''] = 134; - cTable[(byte)''] = 135; - cTable[(byte)''] = 136; - cTable[(byte)''] = 137; - cTable[(byte)''] = 138; - cTable[(byte)''] = 139; - cTable[(byte)''] = 140; - cTable[(byte)''] = 141; - cTable[(byte)''] = 142; - cTable[(byte)''] = 143; - cTable[(byte)''] = 144; - cTable[(byte)''] = 145; - cTable[(byte)''] = 146; - cTable[(byte)''] = 147; - cTable[(byte)''] = 148; - cTable[(byte)''] = 149; - cTable[(byte)''] = 150; - cTable[(byte)''] = 151; - cTable[(byte)''] = 152; - cTable[(byte)''] = 153; - cTable[(byte)''] = 154; - cTable[(byte)''] = 155; - cTable[(byte)''] = 156; - cTable[(byte)''] = 157; - cTable[(byte)''] = 158; - cTable[(byte)''] = 159; - cTable[(byte)''] = 160; - cTable[(byte)''] = 161; - cTable[(byte)''] = 162; - - cTable[(byte)''] = 163; - cTable[(byte)''] = 164; - cTable[(byte)''] = 165; - cTable[(byte)''] = 166; - cTable[(byte)''] = 167; - cTable[(byte)''] = 168; - cTable[(byte)''] = 169; - cTable[(byte)''] = 170; - cTable[(byte)''] = 171; - cTable[(byte)''] = 172; - cTable[(byte)''] = 173; - cTable[(byte)''] = 174; - cTable[(byte)''] = 175; - cTable[(byte)''] = 176; - cTable[(byte)''] = 177; - cTable[(byte)''] = 178; - cTable[(byte)''] = 179; - cTable[(byte)''] = 180; - cTable[(byte)''] = 181; - cTable[(byte)''] = 182; - cTable[(byte)''] = 183; - cTable[(byte)''] = 184; - cTable[(byte)''] = 185; - cTable[(byte)''] = 186; - cTable[(byte)''] = 187; - cTable[(byte)''] = 188; - cTable[(byte)''] = 189; - cTable[(byte)''] = 190; - cTable[(byte)''] = 191; - cTable[(byte)''] = 192; - cTable[(byte)''] = 193; - cTable[(byte)''] = 194; - cTable[(byte)''] = 195; - - lTable[(byte)''] = 20; - lTable[(byte)''] = 16; - lTable[(byte)''] = 16; - lTable[(byte)''] = 14; - lTable[(byte)''] = 22; - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 20; - lTable[(byte)''] = 12; - lTable[(byte)''] = 16; - lTable[(byte)''] = 16; - lTable[(byte)''] = 16; - lTable[(byte)''] = 22; - lTable[(byte)''] = 18; - lTable[(byte)''] = 16; - lTable[(byte)''] = 15; - lTable[(byte)''] = 14; - lTable[(byte)''] = 13; - lTable[(byte)''] = 15; - lTable[(byte)''] = 12; - lTable[(byte)''] = 14; - lTable[(byte)''] = 15; - lTable[(byte)''] = 13; - lTable[(byte)''] = 16; - lTable[(byte)''] = 14; - lTable[(byte)''] = 23; - lTable[(byte)''] = 23; - lTable[(byte)''] = 10; - lTable[(byte)''] = 12; - lTable[(byte)''] = 16; - lTable[(byte)''] = 12; - lTable[(byte)''] = 20; - lTable[(byte)''] = 15; - - lTable[(byte)''] = 12; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - lTable[(byte)''] = 11; - lTable[(byte)''] = 16; - lTable[(byte)''] = 10; - lTable[(byte)''] = 11; - lTable[(byte)''] = 13; - lTable[(byte)''] = 12; - lTable[(byte)''] = 13; - lTable[(byte)''] = 13; - lTable[(byte)''] = 12; - lTable[(byte)''] = 13; - lTable[(byte)''] = 14; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 12; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - lTable[(byte)''] = 11; - lTable[(byte)''] = 10; - lTable[(byte)''] = 11; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 10; - lTable[(byte)''] = 12; - lTable[(byte)''] = 16; - lTable[(byte)''] = 11; - lTable[(byte)''] = 13; - lTable[(byte)''] = 11; - -#endif // FONT_RUSSIAN - -#ifdef FONT_CZECH - - cTable[(byte)''] = 196; - cTable[(byte)''] = 197; - cTable[(byte)''] = 198; - cTable[(byte)''] = 199; - cTable[(byte)''] = 200; - cTable[(byte)''] = 201; - cTable[(byte)''] = 202; - cTable[(byte)''] = 203; - cTable[(byte)''] = 204; - cTable[(byte)''] = 205; - cTable[(byte)''] = 206; - cTable[(byte)''] = 207; - cTable[(byte)''] = 208; - cTable[(byte)''] = 209; - cTable[(byte)''] = 210; - - cTable[(byte)''] = 211; - cTable[(byte)''] = 212; - cTable[(byte)''] = 213; - cTable[(byte)''] = 214; - cTable[(byte)''] = 215; - cTable[(byte)''] = 216; - cTable[(byte)''] = 217; - cTable[(byte)''] = 218; - cTable[(byte)''] = 219; - cTable[(byte)''] = 220; - cTable[(byte)''] = 221; - cTable[(byte)''] = 222; - cTable[(byte)''] = 223; - cTable[(byte)''] = 224; - cTable[(byte)''] = 225; - - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 15; - lTable[(byte)''] = 14; - lTable[(byte)''] = 20; - lTable[(byte)''] = 7; - lTable[(byte)''] = 15; - lTable[(byte)''] = 20; - lTable[(byte)''] = 19; - lTable[(byte)''] = 16; - lTable[(byte)''] = 15; - lTable[(byte)''] = 13; - lTable[(byte)''] = 13; - - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 10; - lTable[(byte)''] = 12; - lTable[(byte)''] = 6; - lTable[(byte)''] = 10; - lTable[(byte)''] = 15; - lTable[(byte)''] = 12; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - -#endif // FONT_CZECH - -#ifdef FONT_FRENCH - - cTable[(byte)''] = 226; - cTable[(byte)''] = 227; - cTable[(byte)''] = 228; - cTable[(byte)''] = 229; - cTable[(byte)''] = 230; - cTable[(byte)''] = 231; - cTable[(byte)''] = 232; - cTable[(byte)''] = 233; - - lTable[(byte)''] = 12; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - lTable[(byte)''] = 6; - lTable[(byte)''] = 10; - lTable[(byte)''] = 10; - lTable[(byte)''] = 11; - lTable[(byte)''] = 11; - -#endif // FONT_FRENCH - -#ifdef FONT_GERMAN - cTable[(byte)''] = 234; - // 'SS' = 235 - - // old chars overrides - cTable[(byte)''] = cTable[(byte)''] = 55; - cTable[(byte)''] = cTable[(byte)''] = 67; - cTable[(byte)''] = cTable[(byte)''] = 71; - - lTable[(byte)''] = 11; - -#endif // FONT_GERMAN + if (_vm->getLanguage() == Common::PL_POL) { + // Polish characters + //AaCcEeLlNnOoSsZzZz + //ꣳ + + cTable[(byte)''] = 112; + cTable[(byte)''] = 113; + cTable[(byte)''] = 114; + cTable[(byte)''] = 115; + cTable[(byte)''] = 116; + cTable[(byte)''] = 117; + cTable[(byte)''] = 118; + cTable[(byte)''] = 119; + cTable[(byte)''] = 120; + cTable[(byte)''] = 121; + cTable[(byte)''] = 122; + cTable[(byte)''] = 123; + cTable[(byte)''] = 124; + cTable[(byte)''] = 125; + cTable[(byte)''] = 126; + cTable[(byte)''] = 127; + cTable[(byte)''] = 128; + cTable[(byte)''] = 129; + + lTable[(byte)''] = 20; + lTable[(byte)''] = 12; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + lTable[(byte)''] = 14; + lTable[(byte)''] = 11; + lTable[(byte)''] = 16; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 11; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + + } else if (_vm->getLanguage() == Common::RU_RUS) { + + // Russian Characters + // WARNING: Il russo usa molti dei caratteri ISO-Latin-1 che servono + // per le altre traduzioni. Per compilare Tony in altre lingue, + // commentare via queste definizioni. + + cTable[(byte)''] = 130; + cTable[(byte)''] = 131; + cTable[(byte)''] = 132; + cTable[(byte)''] = 133; + cTable[(byte)''] = 134; + cTable[(byte)''] = 135; + cTable[(byte)''] = 136; + cTable[(byte)''] = 137; + cTable[(byte)''] = 138; + cTable[(byte)''] = 139; + cTable[(byte)''] = 140; + cTable[(byte)''] = 141; + cTable[(byte)''] = 142; + cTable[(byte)''] = 143; + cTable[(byte)''] = 144; + cTable[(byte)''] = 145; + cTable[(byte)''] = 146; + cTable[(byte)''] = 147; + cTable[(byte)''] = 148; + cTable[(byte)''] = 149; + cTable[(byte)''] = 150; + cTable[(byte)''] = 151; + cTable[(byte)''] = 152; + cTable[(byte)''] = 153; + cTable[(byte)''] = 154; + cTable[(byte)''] = 155; + cTable[(byte)''] = 156; + cTable[(byte)''] = 157; + cTable[(byte)''] = 158; + cTable[(byte)''] = 159; + cTable[(byte)''] = 160; + cTable[(byte)''] = 161; + cTable[(byte)''] = 162; + + cTable[(byte)''] = 163; + cTable[(byte)''] = 164; + cTable[(byte)''] = 165; + cTable[(byte)''] = 166; + cTable[(byte)''] = 167; + cTable[(byte)''] = 168; + cTable[(byte)''] = 169; + cTable[(byte)''] = 170; + cTable[(byte)''] = 171; + cTable[(byte)''] = 172; + cTable[(byte)''] = 173; + cTable[(byte)''] = 174; + cTable[(byte)''] = 175; + cTable[(byte)''] = 176; + cTable[(byte)''] = 177; + cTable[(byte)''] = 178; + cTable[(byte)''] = 179; + cTable[(byte)''] = 180; + cTable[(byte)''] = 181; + cTable[(byte)''] = 182; + cTable[(byte)''] = 183; + cTable[(byte)''] = 184; + cTable[(byte)''] = 185; + cTable[(byte)''] = 186; + cTable[(byte)''] = 187; + cTable[(byte)''] = 188; + cTable[(byte)''] = 189; + cTable[(byte)''] = 190; + cTable[(byte)''] = 191; + cTable[(byte)''] = 192; + cTable[(byte)''] = 193; + cTable[(byte)''] = 194; + cTable[(byte)''] = 195; + + lTable[(byte)''] = 20; + lTable[(byte)''] = 16; + lTable[(byte)''] = 16; + lTable[(byte)''] = 14; + lTable[(byte)''] = 22; + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 20; + lTable[(byte)''] = 12; + lTable[(byte)''] = 16; + lTable[(byte)''] = 16; + lTable[(byte)''] = 16; + lTable[(byte)''] = 22; + lTable[(byte)''] = 18; + lTable[(byte)''] = 16; + lTable[(byte)''] = 15; + lTable[(byte)''] = 14; + lTable[(byte)''] = 13; + lTable[(byte)''] = 15; + lTable[(byte)''] = 12; + lTable[(byte)''] = 14; + lTable[(byte)''] = 15; + lTable[(byte)''] = 13; + lTable[(byte)''] = 16; + lTable[(byte)''] = 14; + lTable[(byte)''] = 23; + lTable[(byte)''] = 23; + lTable[(byte)''] = 10; + lTable[(byte)''] = 12; + lTable[(byte)''] = 16; + lTable[(byte)''] = 12; + lTable[(byte)''] = 20; + lTable[(byte)''] = 15; + + lTable[(byte)''] = 12; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + lTable[(byte)''] = 11; + lTable[(byte)''] = 16; + lTable[(byte)''] = 10; + lTable[(byte)''] = 11; + lTable[(byte)''] = 13; + lTable[(byte)''] = 12; + lTable[(byte)''] = 13; + lTable[(byte)''] = 13; + lTable[(byte)''] = 12; + lTable[(byte)''] = 13; + lTable[(byte)''] = 14; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 12; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + lTable[(byte)''] = 11; + lTable[(byte)''] = 10; + lTable[(byte)''] = 11; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 10; + lTable[(byte)''] = 12; + lTable[(byte)''] = 16; + lTable[(byte)''] = 11; + lTable[(byte)''] = 13; + lTable[(byte)''] = 11; + + } else if (_vm->getLanguage() == Common::CZ_CZE) { + // CZECH Language + + cTable[(byte)''] = 196; + cTable[(byte)''] = 197; + cTable[(byte)''] = 198; + cTable[(byte)''] = 199; + cTable[(byte)''] = 200; + cTable[(byte)''] = 201; + cTable[(byte)''] = 202; + cTable[(byte)''] = 203; + cTable[(byte)''] = 204; + cTable[(byte)''] = 205; + cTable[(byte)''] = 206; + cTable[(byte)''] = 207; + cTable[(byte)''] = 208; + cTable[(byte)''] = 209; + cTable[(byte)''] = 210; + + cTable[(byte)''] = 211; + cTable[(byte)''] = 212; + cTable[(byte)''] = 213; + cTable[(byte)''] = 214; + cTable[(byte)''] = 215; + cTable[(byte)''] = 216; + cTable[(byte)''] = 217; + cTable[(byte)''] = 218; + cTable[(byte)''] = 219; + cTable[(byte)''] = 220; + cTable[(byte)''] = 221; + cTable[(byte)''] = 222; + cTable[(byte)''] = 223; + cTable[(byte)''] = 224; + cTable[(byte)''] = 225; + + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 15; + lTable[(byte)''] = 14; + lTable[(byte)''] = 20; + lTable[(byte)''] = 7; + lTable[(byte)''] = 15; + lTable[(byte)''] = 20; + lTable[(byte)''] = 19; + lTable[(byte)''] = 16; + lTable[(byte)''] = 15; + lTable[(byte)''] = 13; + lTable[(byte)''] = 13; + + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 10; + lTable[(byte)''] = 12; + lTable[(byte)''] = 6; + lTable[(byte)''] = 10; + lTable[(byte)''] = 15; + lTable[(byte)''] = 12; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + + } else if (_vm->getLanguage() == Common::FR_FRA) { + // French + + cTable[(byte)''] = 226; + cTable[(byte)''] = 227; + cTable[(byte)''] = 228; + cTable[(byte)''] = 229; + cTable[(byte)''] = 230; + cTable[(byte)''] = 231; + cTable[(byte)''] = 232; + cTable[(byte)''] = 233; + + lTable[(byte)''] = 12; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + lTable[(byte)''] = 6; + lTable[(byte)''] = 10; + lTable[(byte)''] = 10; + lTable[(byte)''] = 11; + lTable[(byte)''] = 11; + + } else if (_vm->getLanguage() == Common::DE_DEU) { + // German + + cTable[(byte)''] = 234; + // 'SS' = 235 + + // old chars overrides + cTable[(byte)''] = cTable[(byte)''] = 55; + cTable[(byte)''] = cTable[(byte)''] = 67; + cTable[(byte)''] = cTable[(byte)''] = 71; + + lTable[(byte)''] = 11; + } } diff --git a/engines/tony/font.h b/engines/tony/font.h index 3ada4d76c0..dab07b79b3 100644 --- a/engines/tony/font.h +++ b/engines/tony/font.h @@ -77,10 +77,10 @@ protected: protected: // Conversione (da overloadare) - virtual int ConvertToLetter(int nChar) = 0; + virtual int ConvertToLetter(byte nChar) = 0; // Lunghezza dei caratteri (da overloadare) - virtual int LetterLength(int nChar, int nNext = 0) = 0; + virtual int LetterLength(byte nChar, byte nNext = 0) = 0; public: virtual int LetterHeight(void) = 0; @@ -126,10 +126,10 @@ protected: protected: // Overload dei metodi - int ConvertToLetter(int nChar) { + int ConvertToLetter(byte nChar) { return cTable[nChar]; } - int LetterLength(int nChar, int nNext = 0) { + int LetterLength(byte nChar, byte nNext = 0) { return (nChar != -1 ? lTable[nChar] + l2Table[nChar][nNext] : lDefault); } |