diff options
author | Max Horn | 2005-06-04 13:58:11 +0000 |
---|---|---|
committer | Max Horn | 2005-06-04 13:58:11 +0000 |
commit | 82281620175975f2e6a14fc9e6b8b768bea107c3 (patch) | |
tree | 375271c9ba56e3eef1411ecdfbebcd20a65e5f5f | |
parent | f8cadf0401bbcfd2d890c0da7ae3112e7ad5a318 (diff) | |
download | scummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.tar.gz scummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.tar.bz2 scummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.zip |
Patch #1184666 (SKY: More LINC charset fixes)
svn-id: r18337
-rw-r--r-- | sky/text.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sky/text.cpp b/sky/text.cpp index 6f1019eb3f..7e1f2582e1 100644 --- a/sky/text.cpp +++ b/sky/text.cpp @@ -203,12 +203,58 @@ void Text::patchLINCCharset() { 0x3800, 0x7c00, 0xFE00, 0x7c00, 0x0000, 0x0000 }; + // The next five are needed for at least the French version + + const uint16 e_acute[] = { + 0x0000, 0x1000, 0x2000, 0x0000, 0x3000, 0x4800, + 0x7800, 0x4000, 0x3000, 0x0000, 0x0000, 0x0000, + 0x1000, 0x3800, 0x7000, 0x7000, 0x7800, 0xFC00, + 0xFC00, 0xF800, 0x7800, 0x3000, 0x0000, 0x0000 + }; + + const uint16 e_grave[] = { + 0x0000, 0x2000, 0x1000, 0x0000, 0x3000, 0x4800, + 0x7800, 0x4000, 0x3000, 0x0000, 0x0000, 0x0000, + 0x2000, 0x7000, 0x3800, 0x3800, 0x7800, 0xFC00, + 0xFC00, 0xF800, 0x7800, 0x3000, 0x0000, 0x0000 + }; + + const uint16 e_circumflex[] = { + 0x0000, 0x1000, 0x2800, 0x0000, 0x3000, 0x4800, + 0x7800, 0x4000, 0x3000, 0x0000, 0x0000, 0x0000, + 0x1000, 0x3800, 0x7C00, 0x7800, 0x7800, 0xFC00, + 0xFC00, 0xF800, 0x7800, 0x3000, 0x0000, 0x0000 + }; + + const uint16 o_circumflex[] = { + 0x0000, 0x1000, 0x2800, 0x0000, 0x3000, 0x4800, + 0x4800, 0x4800, 0x3000, 0x0000, 0x0000, 0x0000, + 0x1000, 0x3800, 0x7C00, 0x3800, 0x7800, 0xFC00, + 0xFC00, 0xFC00, 0x7800, 0x3000, 0x0000, 0x0000 + }; + + const uint16 u_circumflex[] = { + 0x0000, 0x1000, 0x2800, 0x0000, 0x4800, 0x4800, + 0x4800, 0x4800, 0x3800, 0x0000, 0x0000, 0x0000, + 0x1000, 0x3800, 0x7C00, 0x7800, 0xFC00, 0xFC00, + 0xFC00, 0xFC00, 0x7C00, 0x3800, 0x0000, 0x0000 + }; + patchChar(charSetPtr, 5, charHeight, 3, u_umlaut); patchChar(charSetPtr, 5, charHeight, 8, german_sz); patchChar(charSetPtr, 5, charHeight, 9, o_umlaut); patchChar(charSetPtr, 5, charHeight, 93, U_umlaut); patchChar(charSetPtr, 5, charHeight, 74, normal_j); patchChar(charSetPtr, 6, charHeight, 17, normal_1); + + // TODO: Verify that these work in all versions + + patchChar(charSetPtr, 5, charHeight, 11, e_acute); + patchChar(charSetPtr, 5, charHeight, 61, e_grave); + patchChar(charSetPtr, 5, charHeight, 29, e_circumflex); + patchChar(charSetPtr, 5, charHeight, 32, o_circumflex); + patchChar(charSetPtr, 5, charHeight, 30, u_circumflex); + if (SkyEngine::_systemVars.gameVersion <= 303) { patchChar(charSetPtr, 5, charHeight, 10, a_umlaut); } else { |