aboutsummaryrefslogtreecommitdiff
path: root/sky/text.cpp
diff options
context:
space:
mode:
authorMax Horn2005-06-04 13:58:11 +0000
committerMax Horn2005-06-04 13:58:11 +0000
commit82281620175975f2e6a14fc9e6b8b768bea107c3 (patch)
tree375271c9ba56e3eef1411ecdfbebcd20a65e5f5f /sky/text.cpp
parentf8cadf0401bbcfd2d890c0da7ae3112e7ad5a318 (diff)
downloadscummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.tar.gz
scummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.tar.bz2
scummvm-rg350-82281620175975f2e6a14fc9e6b8b768bea107c3.zip
Patch #1184666 (SKY: More LINC charset fixes)
svn-id: r18337
Diffstat (limited to 'sky/text.cpp')
-rw-r--r--sky/text.cpp46
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 {