aboutsummaryrefslogtreecommitdiff
path: root/engines/tony
diff options
context:
space:
mode:
authorStrangerke2012-08-26 23:33:46 +0200
committerStrangerke2012-08-26 23:33:46 +0200
commit7cb29f1522095484e44d0529e73d3712f33fca92 (patch)
tree4fe475daa030fa55e5cf3a97234a08df16f46fb3 /engines/tony
parent5cc63df5134834a49a44a929dd549dc924040793 (diff)
downloadscummvm-rg350-7cb29f1522095484e44d0529e73d3712f33fca92.tar.gz
scummvm-rg350-7cb29f1522095484e44d0529e73d3712f33fca92.tar.bz2
scummvm-rg350-7cb29f1522095484e44d0529e73d3712f33fca92.zip
TONY: Move font related arrays to a DAT file
Diffstat (limited to 'engines/tony')
-rw-r--r--engines/tony/font.cpp1426
-rw-r--r--engines/tony/tony.cpp92
-rw-r--r--engines/tony/tony.h12
3 files changed, 113 insertions, 1417 deletions
diff --git a/engines/tony/font.cpp b/engines/tony/font.cpp
index a3d253a52c..55e3b7627a 100644
--- a/engines/tony/font.cpp
+++ b/engines/tony/font.cpp
@@ -222,387 +222,10 @@ void RMFontDialog::init() {
_lDefault = 13;
_hDefault = 18;
Common::fill(&_l2Table[0][0], &_l2Table[0][0] + (256 * 256), '\0');
- for (i = 0; i < 256; i++) {
- _cTable[i] = -1;
- _lTable[i] = _lDefault;
- }
- for (i = 0; i < 26; i++)
- _cTable['A' + i] = i + 0;
-
- for (i = 0; i < 26; i++)
- _cTable['a' + i] = i + 26;
-
- for (i = 0; i < 10; i++)
- _cTable['0' + i] = i + 52;
-
- _cTable[';'] = 62;
- _cTable[','] = 63;
- _cTable['.'] = 64;
- _cTable[':'] = 65;
- _cTable['-'] = 66;
- _cTable['_'] = 67;
- _cTable['+'] = 68;
- _cTable['<'] = 69;
- _cTable['>'] = 70;
- _cTable['!'] = 71;
- //_cTable['!'] = 72; Exclamation countdown
- _cTable['?'] = 73;
- //_cTable['?'] = 74; Question down
- _cTable['('] = 75;
- _cTable[')'] = 76;
- _cTable['\"'] = 77;
- _cTable['^'] = 77;
- _cTable['/'] = 78;
- _cTable[(byte)''] = 79;
- _cTable['$'] = 80;
- _cTable['%'] = 81;
- _cTable['&'] = 82;
- _cTable['='] = 83;
- _cTable[(byte)''] = 84;
- _cTable[(byte)''] = 85;
- _cTable[(byte)''] = 86;
- _cTable[(byte)''] = 87;
- _cTable[(byte)''] = 88;
- _cTable[(byte)''] = 89;
- _cTable[(byte)''] = 89;
- _cTable[(byte)''] = 90;
- _cTable[(byte)''] = 91;
- _cTable[(byte)''] = 92;
- _cTable[(byte)''] = 93;
- _cTable[(byte)''] = 94;
- _cTable[(byte)''] = 95;
- _cTable[(byte)''] = 96;
- _cTable[(byte)''] = 97;
- _cTable[(byte)''] = 98;
- _cTable[(byte)''] = 99;
- //_cTable[' '] = 100; e circlet
- //_cTable[' '] = 101; i circlet
- //_cTable[' '] = 102; o circlet
- //_cTable[' '] = 103; u circlet
- _cTable[(byte)''] = 104;
- _cTable[(byte)''] = 105;
- _cTable[(byte)''] = 106;
- _cTable[(byte)''] = 107;
- _cTable[(byte)''] = 108;
- _cTable[(byte)''] = 109;
- //_cTable[''] = 110; integral
- _cTable['\''] = 111;
-
- // Little lengths
- _lTable[' '] = 9;
- _lTable['\''] = 5;
- _lTable['.'] = 5;
- _lTable[','] = 5;
- _lTable[':'] = 5;
- _lTable[';'] = 5;
- _lTable['!'] = 5;
- _lTable['?'] = 10;
- _lTable['\"'] = 5;
- _lTable['^'] = 5;
- _lTable['('] = 7;
- _lTable[')'] = 7;
-
- _lTable['4'] = 10;
-
- _lTable['a'] = 14;
- _lTable['b'] = 15;
- _lTable['c'] = 12;
- _lTable['e'] = 12;
- _lTable['i'] = 6;
- _lTable[''] = 6;
- _lTable['l'] = 5;
- _lTable['m'] = 16;
- _lTable['n'] = 12;
- _lTable['o'] = 11;
- _lTable['p'] = 11;
- _lTable['s'] = 12;
- _lTable['u'] = 12;
-
- _lTable['E'] = 10;
- _lTable['F'] = 11;
-
- if (g_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)''] = 14;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 13;
-
- } else if (g_vm->getLanguage() == Common::RU_RUS) {
-
- // Russian Characters
- // WARNING: The Russian font uses many of the ISO-Latin-1 font,
- // allowing for further translations. To support Tonyin other langauges,
- // these mappings could be used as a basis
-
- _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)''] = 13;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 18;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 17;
- _lTable[(byte)''] = 18;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 18;
- _lTable[(byte)''] = 19;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 14;
-
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 8;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 14;
-
- } else if (g_vm->getLanguage() == Common::CZ_CZE) {
- // 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)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 19;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
-
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 15;
- _lTable[(byte)''] = 7;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 17;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
-
- } else if (g_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)''] = 15;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
-
- } else if (g_vm->getLanguage() == Common::DE_DEU) {
- _cTable[(byte)''] = 234;
- // 'SS' = 235
- _cTable[(byte)''] = 236;
- _cTable[(byte)''] = 237;
- _cTable[(byte)''] = 238;
-
- _lTable[(byte)''] = 15;
+ for (i = 0; i < 256; i++) {
+ _cTable[i] = g_vm->_cTableDialog[i];
+ _lTable[i] = g_vm->_lTableDialog[i];
}
}
@@ -632,342 +255,8 @@ void RMFontMacc::init() {
Common::fill(&_l2Table[0][0], &_l2Table[0][0] + (256 * 256), '\0');
for (i = 0; i < 256; i++) {
- _cTable[i] = -1;
- _lTable[i] = _lDefault;
- }
-
- for (i = 0; i < 26; i++)
- _cTable['A' + i] = i + 0;
-
- for (i = 0; i < 26; i++)
- _cTable['a' + i] = i + 26;
-
- for (i = 0; i < 10; i++)
- _cTable['0' + i] = i + 52;
-
- _cTable['!'] = 62;
- //_cTable['!'] = 63; // ! rovescia
- _cTable['\"'] = 64;
- _cTable['$'] = 65;
- _cTable['%'] = 66;
- _cTable['&'] = 67;
- _cTable['/'] = 68;
- _cTable['('] = 69;
- _cTable[')'] = 70;
- _cTable['='] = 71;
- _cTable['?'] = 72;
- //_cTable['?'] = 73; // ? rovescia
- _cTable['*'] = 74;
- _cTable['+'] = 75;
- _cTable[(byte)''] = 76;
- _cTable[';'] = 77;
- _cTable[','] = 78;
- _cTable['.'] = 79;
- _cTable[':'] = 80;
- _cTable['-'] = 81;
- _cTable['<'] = 82;
- _cTable['>'] = 83;
- _cTable['/'] = 84;
- _cTable[(byte)''] = 85;
- _cTable[(byte)''] = 86;
- _cTable[(byte)''] = 87;
- _cTable[(byte)''] = 88;
- _cTable[(byte)''] = 89;
- _cTable[(byte)''] = 90;
- //_cTable[(byte)''] = 91; // e with ball
- _cTable[(byte)''] = 92;
- _cTable[(byte)''] = 93;
- //_cTable[(byte)''] = 94; // i with ball
- _cTable[(byte)''] = 95;
- _cTable[(byte)''] = 96;
- //_cTable[(byte)''] = 97; // o with ball
- _cTable[(byte)''] = 98;
- _cTable[(byte)''] = 99;
- //_cTable[(byte)''] = 100; // u with ball
- _cTable[(byte)''] = 101;
-
- if (g_vm->getLanguage() == Common::PL_POL) {
- // Polish characters
- //AaCcEeLlNnOoSsZzZz
- //ꣳ󌜯
-
- _cTable[(byte)''] = 102;
- _cTable[(byte)''] = 103;
- _cTable[(byte)''] = 104;
- _cTable[(byte)''] = 105;
- _cTable[(byte)''] = 106;
- _cTable[(byte)''] = 107;
- _cTable[(byte)''] = 108;
- _cTable[(byte)''] = 109;
- _cTable[(byte)''] = 110;
- _cTable[(byte)''] = 111;
- _cTable[(byte)''] = 112;
- _cTable[(byte)''] = 113;
- _cTable[(byte)''] = 114;
- _cTable[(byte)''] = 115;
- _cTable[(byte)''] = 116;
- _cTable[(byte)''] = 117;
- _cTable[(byte)''] = 118;
- _cTable[(byte)''] = 119;
-
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 16;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 12;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 13;
- _lTable[(byte)''] = 14;
- _lTable[(byte)''] = 13;
-
- } else if (g_vm->getLanguage() == Common::RU_RUS) {
- // Russian Characters
- // WARNING: The Russian font uses many of the ISO-Latin-1 font,
- // allowing for further translations. To support Tonyin other langauges,
- // these mappings could be used as a basis
- _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;
- _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;
-
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 8;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
-
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
-
- } else if (g_vm->getLanguage() == Common::CZ_CZE) {
- // Czech
-
- _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;
- _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;
-
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
-
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 9;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
-
- } else if (g_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)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 8;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 11;
- _lTable[(byte)''] = 10;
- _lTable[(byte)''] = 10;
-
- } else if (g_vm->getLanguage() == Common::DE_DEU) {
- // German
-
- _cTable[(byte)''] = 234;
- // 'SS' = 235
- _cTable[(byte)''] = 236;
- _cTable[(byte)''] = 237;
- _cTable[(byte)''] = 238;
-
- _lTable[(byte)''] = 11;
+ _cTable[i] = g_vm->_cTableMacc[i];
+ _lTable[i] = g_vm->_lTableMacc[i];
}
}
@@ -996,430 +285,8 @@ void RMFontCredits::init() {
Common::fill(&_l2Table[0][0], &_l2Table[0][0] + (256 * 256), '\0');
for (i = 0; i < 256; i++) {
- _cTable[i] = -1;
- _lTable[i] = _lDefault;
- }
-
- for (i = 0; i < 26; i++)
- _cTable['A' + i] = i + 0;
-
- for (i = 0; i < 26; i++)
- _cTable['a' + i] = i + 26;
-
-
-
- _cTable[(byte)''] = 52;
- _cTable[(byte)''] = 53;
-// _cTable[''] = 54; // a ^
-// _cTable[''] = 55; // a pallini
- _cTable[(byte)''] = 56;
- _cTable[(byte)''] = 57;
-// _cTable[''] = 58; // e ^
-// _cTable[''] = 59; // e pallini
- _cTable[(byte)''] = 60;
- _cTable[(byte)''] = 61;
-// _cTable[''] = 62; // i ^
-// _cTable[''] = 63; // i pallini
- _cTable[(byte)''] = 64;
- _cTable[(byte)''] = 65;
-// _cTable[''] = 66; // o ^
-// _cTable[''] = 67; // o pallini
- _cTable[(byte)''] = 68;
- _cTable[(byte)''] = 69;
-// _cTable[''] = 70; // u ^
-// _cTable[''] = 71; // u pallini
-// _cTable[''] = 72; // y pallini
- _cTable[(byte)''] = 73;
- _cTable[(byte)''] = 74;
-// _cTable[''] = 75; // o barrato
-// _cTable[''] = 76; // ac
- _cTable[(byte)''] = 77;
-// _cTable[''] = 78; // ? rovesciato
- _cTable['?'] = 79;
-// _cTable[''] = 80; // ! rovesciato
- _cTable['!'] = 81;
-// _cTable[''] = 82; // 1/2
-// _cTable[''] = 83; // 1/4
- _cTable['('] = 84;
- _cTable[')'] = 85;
- _cTable[(byte)''] = 86;
- _cTable[(byte)''] = 87;
-// _cTable[''] = 88; // AE
- _cTable[':'] = 89;
- _cTable['%'] = 90;
- _cTable['&'] = 91;
- _cTable['/'] = 92;
- _cTable['+'] = 93;
- _cTable[';'] = 94;
- _cTable[','] = 95;
- _cTable['^'] = 96;
- _cTable['='] = 97;
- _cTable['_'] = 98;
- _cTable['*'] = 99;
- _cTable['.'] = 100;
-
- for (i = 0; i < 10; i++)
- _cTable['0' + i] = i + 101;
- _cTable['\''] = 111;
-
- _lTable[' '] = 11;
- _lTable[(byte)''] = _lTable['A'] = 19;
- _lTable['B'] = 15;
- _lTable['C'] = 14;
- _lTable['D'] = 13;
- _lTable['E'] = 14;
- _lTable['F'] = 13;
- _lTable['G'] = 16;
- _lTable['H'] = 15;
- _lTable['I'] = 5;
- _lTable['J'] = 8;
- _lTable['K'] = 15;
- _lTable['L'] = 13;
- _lTable['M'] = 17;
- _lTable['N'] = 15;
- _lTable[''] = _lTable['O'] = 14;
- _lTable['P'] = 12;
- _lTable['Q'] = 14;
- _lTable['R'] = 14;
- _lTable['S'] = 15;
- _lTable['T'] = 11;
- _lTable[''] = _lTable['U'] = 12;
- _lTable['V'] = 12;
- _lTable['W'] = 16;
- _lTable['X'] = 12;
- _lTable['Y'] = 13;
- _lTable['Z'] = 14;
-
- _lTable['a'] = 11;
- _lTable['b'] = 9;
- _lTable['c'] = 9;
- _lTable['d'] = 10;
- _lTable['e'] = 9;
- _lTable['f'] = 8;
- _lTable['g'] = 9;
- _lTable['h'] = 10;
- _lTable['i'] = 5;
- _lTable['j'] = 6;
- _lTable['k'] = 12;
- _lTable['l'] = 6;
- _lTable['m'] = 14;
- _lTable['n'] = 10;
- _lTable['o'] = 11;
- _lTable['p'] = 11;
- _lTable['q'] = 9;
- _lTable['r'] = 9;
- _lTable['s'] = 9;
- _lTable['t'] = 6;
- _lTable['u'] = 9;
- _lTable['v'] = 10;
- _lTable['w'] = 14;
- _lTable['x'] = 9;
- _lTable['y'] = 10;
- _lTable['z'] = 9;
-
- _lTable['0'] = 12;
- _lTable['1'] = 8;
- _lTable['2'] = 10;
- _lTable['3'] = 11;
- _lTable['4'] = 12;
- _lTable['5'] = 11;
- _lTable['6'] = 12;
- _lTable['7'] = 10;
- _lTable['8'] = 11;
- _lTable['9'] = 10;
-
- _lTable['/'] = 10;
- _lTable['^'] = 9;
- _lTable[','] = 5;
- _lTable['.'] = 5;
- _lTable[';'] = 5;
- _lTable[':'] = 5;
- _lTable['\''] = 5;
-
- if (g_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 (g_vm->getLanguage() == Common::RU_RUS) {
- // Russian Characters
- // WARNING: The Russian font uses many of the ISO-Latin-1 font,
- // allowing for further translations. To support Tonyin other langauges,
- // these mappings could be used as a basis
- _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 (g_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 (g_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 (g_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;
+ _cTable[i] = g_vm->_cTableCred[i];
+ _lTable[i] = g_vm->_lTableCred[i];
}
}
@@ -1461,112 +328,10 @@ void RMFontObj::init() {
Common::fill(&_l2Table[0][0], &_l2Table[0][0] + (256 * 256), '\0');
for (i = 0; i < 256; i++) {
- _cTable[i] = -1;
- _lTable[i] = _lDefault;
- }
-
- for (i = 0; i < 26; i++) {
- _cTable['A' + i] = i + 0;
- _cTable['a' + i] = i + 0;
+ _cTable[i] = g_vm->_cTableObj[i];
+ _lTable[i] = g_vm->_lTableObj[i];
}
- for (i = 0; i < 10; i++)
- _cTable['0' + i] = i + 26;
-
- _cTable[','] = 36;
- _cTable[';'] = 37;
- _cTable['.'] = 38;
- _cTable[':'] = 39;
- _cTable['-'] = 40;
- _cTable['+'] = 41;
- _cTable['!'] = 42;
- // _cTable['!'] = 43; Exclamation countdown
- _cTable['?'] = 44;
- // _cTable['?'] = 45; Interrogativo alla rovescia
- _cTable['/'] = 46;
- _cTable['('] = 47;
- _cTable[')'] = 48;
- _cTable['='] = 49;
- _cTable['\''] = 50;
- _cTable['\"'] = 51;
- _cTable[(byte)''] = 52;
- _cTable[(byte)'$'] = 53;
- _cTable[(byte)'%'] = 54;
- _cTable[(byte)'&'] = 55;
- _cTable[(byte)'^'] = 56;
- _cTable[(byte)'*'] = 57;
- _cTable[(byte)'<'] = 58;
- _cTable[(byte)'>'] = 59;
- _cTable[(byte)''] = 60;
- _cTable[(byte)''] = 61;
- _cTable[(byte)''] = 62;
- _cTable[(byte)''] = 63;
- //_cTable[(byte)''] = 64; integral
- _cTable[(byte)''] = 65;
- _cTable[(byte)''] = 66;
- _cTable[(byte)''] = 67;
- _cTable[(byte)''] = 68;
- _cTable[(byte)''] = 69;
- _cTable[(byte)''] = _cTable[(byte)''] = 70;
- _cTable[(byte)''] = 71;
- _cTable[(byte)''] = 72;
- _cTable[(byte)''] = 73;
- //_cTable[(byte)' '] = 74; e circlet
- _cTable[(byte)''] = 75;
- _cTable[(byte)''] = 76;
- //_cTable[(byte)' '] = 77; i circlet
- _cTable[(byte)''] = 78;
- _cTable[(byte)''] = _cTable[(byte)''] = 79;
- //_cTable[(byte)' '] = 80; o circlet
- _cTable[(byte)''] = 81;
- _cTable[(byte)''] = _cTable[(byte)''] = 82;
- //_cTable[' '] = 83; u circlet
- //_cTable[' '] = 84; y dieresi
-
- /* Little lengths */
- _lTable[' '] = 11;
- _lTable['.'] = 8;
- _lTable['-'] = 12;
- _lTable['\''] = 8;
- _lTable['0'] = 20;
- _lTable['1'] = 20;
- _lTable['2'] = 15;
- _lTable['3'] = 20;
- _lTable['4'] = 20;
- _lTable['5'] = 20;
- _lTable['6'] = 20;
- _lTable['7'] = 20;
- _lTable['8'] = 20;
- _lTable['9'] = 20;
-
-
- _lTable['a'] = _lTable['A'] = _lTable[''] = _lTable[''] = 17;
- _lTable['b'] = _lTable['B'] = 17;
- _lTable['c'] = _lTable['C'] = 19;
- _lTable['d'] = _lTable['D'] = 17;
- _lTable['e'] = _lTable['E'] = 15;
- _lTable['f'] = _lTable['F'] = 17;
- _lTable['g'] = _lTable['G'] = 19;
- _lTable['i'] = _lTable['I'] = 16;
- _lTable['h'] = _lTable['H'] = 17;
- _lTable['k'] = _lTable['K'] = 17;
- _lTable['l'] = _lTable['L'] = 14;
- _lTable['m'] = _lTable['M'] = 19;
- _lTable['n'] = _lTable['N'] = 17;
- _lTable['o'] = _lTable['O'] = _lTable[''] = _lTable[''] = 19;
- _lTable['p'] = _lTable['P'] = 17;
- _lTable['q'] = _lTable['Q'] = 19;
- _lTable['r'] = _lTable['R'] = 14;
- _lTable['s'] = _lTable['S'] = 13;
- _lTable['t'] = _lTable['T'] = 15;
- _lTable['u'] = _lTable['U'] = _lTable[''] = _lTable[''] = 15;
- _lTable['v'] = _lTable['V'] = 13;
- _lTable['x'] = _lTable['X'] = 15;
- _lTable['y'] = _lTable['Y'] = 13;
- _lTable['w'] = _lTable['W'] = 19;
- _lTable['z'] = _lTable['Z'] = 20;
- _lTable[(byte)''] = 17;
-
/* Casi particolari */
setBothCase('C', 'C', 2);
setBothCase('A', 'T', -2);
@@ -1579,179 +344,6 @@ void RMFontObj::init() {
setBothCase('Z', 'A', -1);
setBothCase('R', 'R', 1);
setBothCase('R', 'U', 3);
-
- if (g_vm->getLanguage() == Common::PL_POL) {
- // Polish characters
- //ꣳ󌜯
- //AaCcEeLlNnOoSsZzZz
- _cTable[(byte)''] = _cTable[(byte)''] = 85;
- _lTable[(byte)''] = _lTable[(byte)''] = 20;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 86;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 87;
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 88;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 89;
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 90;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 91;
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 92;
- _lTable[(byte)''] = _lTable[(byte)''] = 21;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 93;
- _lTable[(byte)''] = _lTable[(byte)''] = 21;
-
- } else if (g_vm->getLanguage() == Common::RU_RUS) {
- // Russian Characters
- // WARNING: The Russian font uses many of the ISO-Latin-1 font,
- // allowing for further translations. To support Tonyin other langauges,
- // these mappings could be used as a basis
-
- _cTable[(byte)''] = _cTable[(byte)''] = 85;
- _lTable[(byte)''] = _lTable[(byte)''] = 20;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 94;
- _cTable[(byte)''] = _cTable[(byte)''] = 95;
- _cTable[(byte)''] = _cTable[(byte)''] = 96;
- _cTable[(byte)''] = _cTable[(byte)''] = 97;
- _cTable[(byte)''] = _cTable[(byte)''] = 98;
- _cTable[(byte)''] = _cTable[(byte)''] = 99;
- _cTable[(byte)''] = _cTable[(byte)''] = 100;
- _cTable[(byte)''] = _cTable[(byte)''] = 101;
- _cTable[(byte)''] = _cTable[(byte)''] = 102;
- _cTable[(byte)''] = _cTable[(byte)''] = 103;
- _cTable[(byte)''] = _cTable[(byte)''] = 104;
- _cTable[(byte)''] = _cTable[(byte)''] = 105;
- _cTable[(byte)''] = _cTable[(byte)''] = 106;
- _cTable[(byte)''] = _cTable[(byte)''] = 107;
- _cTable[(byte)''] = _cTable[(byte)''] = 108;
- _cTable[(byte)''] = _cTable[(byte)''] = 109;
- _cTable[(byte)''] = _cTable[(byte)''] = 110;
- _cTable[(byte)''] = _cTable[(byte)''] = 111;
- _cTable[(byte)''] = _cTable[(byte)''] = 112;
- _cTable[(byte)''] = _cTable[(byte)''] = 113;
- _cTable[(byte)''] = _cTable[(byte)''] = 114;
- _cTable[(byte)''] = _cTable[(byte)''] = 115;
- _cTable[(byte)''] = _cTable[(byte)''] = 116;
- _cTable[(byte)''] = _cTable[(byte)''] = 117;
- _cTable[(byte)''] = _cTable[(byte)''] = 118;
- _cTable[(byte)''] = _cTable[(byte)''] = 119;
- _cTable[(byte)''] = _cTable[(byte)''] = 120;
- _cTable[(byte)''] = _cTable[(byte)''] = 121;
- _cTable[(byte)''] = _cTable[(byte)''] = 122;
- _cTable[(byte)''] = _cTable[(byte)''] = 123;
- _cTable[(byte)''] = _cTable[(byte)''] = 124;
- _cTable[(byte)''] = _cTable[(byte)''] = 125;
- _cTable[(byte)''] = _cTable[(byte)''] = 126;
-
-
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 20;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 21;
- _lTable[(byte)''] = _lTable[(byte)''] = 20;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
-
- } else if (g_vm->getLanguage() == Common::CZ_CZE) {
- // Czech
-
- _cTable[(byte)''] = _cTable[(byte)''] = 127;
- _cTable[(byte)''] = _cTable[(byte)''] = 128;
- _cTable[(byte)''] = _cTable[(byte)''] = 129;
- _cTable[(byte)''] = _cTable[(byte)''] = 130;
- _cTable[(byte)''] = _cTable[(byte)''] = 131;
- _cTable[(byte)''] = _cTable[(byte)''] = 132;
- _cTable[(byte)''] = _cTable[(byte)''] = 133;
- _cTable[(byte)''] = _cTable[(byte)''] = 134;
- _cTable[(byte)''] = _cTable[(byte)''] = 135;
- _cTable[(byte)''] = _cTable[(byte)''] = 136;
- _cTable[(byte)''] = _cTable[(byte)''] = 137;
- _cTable[(byte)''] = _cTable[(byte)''] = 138;
- _cTable[(byte)''] = _cTable[(byte)''] = 139;
- _cTable[(byte)''] = _cTable[(byte)''] = 140;
- _cTable[(byte)''] = _cTable[(byte)''] = 141;
-
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 21;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 18;
- _lTable[(byte)''] = _lTable[(byte)''] = 19;
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
- _lTable[(byte)''] = _lTable[(byte)''] = 23;
- _lTable[(byte)''] = _lTable[(byte)''] = 24;
- _lTable[(byte)''] = _lTable[(byte)''] = 17;
- _lTable[(byte)''] = _lTable[(byte)''] = 22;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
- _lTable[(byte)''] = _lTable[(byte)''] = 16;
-
- } else if (g_vm->getLanguage() == Common::FR_FRA) {
- // French
-
- // Translate accented characters as normal letters
-
- _cTable[(byte)''] = _cTable[(byte)''] = _cTable[(byte)''] = 0; // a
- _lTable[(byte)''] = _lTable[(byte)''] = _lTable[(byte)''] = 17;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 4; // e
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
-
- _cTable[(byte)''] = _cTable[(byte)''] = _cTable[(byte)''] = 8; // i
- _lTable[(byte)''] = _lTable[(byte)''] = _lTable[(byte)''] = 16;
-
- _cTable[(byte)''] = _cTable[(byte)''] = _cTable[(byte)''] = _cTable[(byte)''] = 14; // o
- _lTable[(byte)''] = _lTable[(byte)''] = _lTable[(byte)''] = _lTable[(byte)''] = 19;
-
- _cTable[(byte)''] = _cTable[(byte)''] = 20; // u
- _lTable[(byte)''] = _lTable[(byte)''] = 15;
-
- } else if (g_vm->getLanguage() == Common::DE_DEU) {
- // German
-
- _cTable[''] = 142;
- // SS = 143
-
- _lTable[''] = 24;
- }
}
diff --git a/engines/tony/tony.cpp b/engines/tony/tony.cpp
index ec2ee49ba2..9124bed50d 100644
--- a/engines/tony/tony.cpp
+++ b/engines/tony/tony.cpp
@@ -111,6 +111,10 @@ Common::Error TonyEngine::run() {
* Initialize the game
*/
Common::ErrorCode TonyEngine::init() {
+ // Load DAT file (used by font manager)
+ if (!loadTonyDat())
+ return Common::kUnknownError;
+
if (isCompressed()) {
Common::SeekableReadStream *stream = SearchMan.createReadStreamForMember("data1.cab");
if (!stream)
@@ -177,6 +181,94 @@ Common::ErrorCode TonyEngine::init() {
return Common::kNoError;
}
+bool TonyEngine::loadTonyDat() {
+ Common::String msg;
+ Common::File in;
+
+ in.open("tony.dat");
+
+ if (!in.isOpen()) {
+ msg = "You're missing the 'tony.dat' file. Get it from the ScummVM website";
+ GUIErrorMessage(msg);
+ warning("%s", msg.c_str());
+ return false;
+ }
+
+ // Read header
+ char buf[4+1];
+ in.read(buf, 4);
+ buf[4] = '\0';
+
+ if (strcmp(buf, "TONY")) {
+ msg = "File 'tony.dat' is corrupt. Get it from the ScummVM website";
+ GUIErrorMessage(msg);
+ warning("%s", msg.c_str());
+ return false;
+ }
+
+ int majVer = in.readByte();
+ int minVer = in.readByte();
+
+ if ((majVer != TONY_DAT_VER_MAJ) || (minVer != TONY_DAT_VER_MIN)) {
+ msg = Common::String::format("File 'tony.dat' is wrong version. Expected %d.%d but got %d.%d. Get it from the ScummVM website", TONY_DAT_VER_MAJ, TONY_DAT_VER_MIN, majVer, minVer);
+ GUIErrorMessage(msg);
+ warning("%s", msg.c_str());
+
+ return false;
+ }
+
+ int expectedLangVariant = -1;
+ switch (g_vm->getLanguage()) {
+ case Common::IT_ITA:
+ expectedLangVariant = 0;
+ break;
+ case Common::PL_POL:
+ expectedLangVariant = 1;
+ break;
+ case Common::RU_RUS:
+ expectedLangVariant = 2;
+ break;
+ case Common::CZ_CZE:
+ expectedLangVariant = 3;
+ break;
+ case Common::FR_FRA:
+ expectedLangVariant = 4;
+ break;
+ case Common::DE_DEU:
+ expectedLangVariant = 5;
+ break;
+ default:
+ msg = Common::String::format("Font variant not present in 'tony.dat'. Get it from the ScummVM website");
+ GUIErrorMessage(msg);
+ warning("%s", msg.c_str());
+
+ return false;
+ }
+
+ int numVariant = in.readUint16BE();
+ if (expectedLangVariant > numVariant) {
+ msg = Common::String::format("Font variant not present in 'tony.dat'. Get it from the ScummVM website");
+ GUIErrorMessage(msg);
+ warning("%s", msg.c_str());
+
+ return false;
+ }
+
+ in.seek(in.pos() + (2 * 256 * 8 * expectedLangVariant));
+ for (int i = 0; i < 256; i++) {
+ _cTableDialog[i] = in.readSint16BE();
+ _lTableDialog[i] = in.readSint16BE();
+ _cTableMacc[i] = in.readSint16BE();
+ _lTableMacc[i] = in.readSint16BE();
+ _cTableCred[i] = in.readSint16BE();
+ _lTableCred[i] = in.readSint16BE();
+ _cTableObj[i] = in.readSint16BE();
+ _lTableObj[i] = in.readSint16BE();
+ }
+
+ return true;
+}
+
void TonyEngine::initCustomFunctionMap() {
INIT_CUSTOM_FUNCTION(_funcList, _funcListStrings);
}
diff --git a/engines/tony/tony.h b/engines/tony/tony.h
index 18cddf3f2a..f8358b15a7 100644
--- a/engines/tony/tony.h
+++ b/engines/tony/tony.h
@@ -70,6 +70,8 @@ enum {
struct TonyGameDescription;
#define MAX_SFX_CHANNELS 32
+#define TONY_DAT_VER_MAJ 0
+#define TONY_DAT_VER_MIN 1
struct VoiceHeader {
int _offset;
@@ -81,6 +83,7 @@ struct VoiceHeader {
class TonyEngine : public Engine {
private:
Common::ErrorCode init();
+ bool loadTonyDat();
void initMusic();
void closeMusic();
bool openVoiceDatabase();
@@ -106,6 +109,15 @@ public:
Globals _globals;
Debugger *_debugger;
+ int16 _cTableDialog[256];
+ int16 _lTableDialog[256];
+ int16 _cTableMacc[256];
+ int16 _lTableMacc[256];
+ int16 _cTableCred[256];
+ int16 _lTableCred[256];
+ int16 _cTableObj[256];
+ int16 _lTableObj[256];
+
enum DataDir {
DD_BASE = 1,
DD_SAVE,