diff options
-rw-r--r-- | devtools/create_tony/create_tony.cpp | 183 | ||||
-rw-r--r-- | devtools/create_tony/create_tony.h | 44 | ||||
-rw-r--r-- | devtools/create_tony/staticdata.h | 1370 | ||||
-rw-r--r-- | dists/engine-data/tony.dat | bin | 0 -> 24584 bytes | |||
-rw-r--r-- | engines/tony/font.cpp | 1426 | ||||
-rw-r--r-- | engines/tony/tony.cpp | 92 | ||||
-rw-r--r-- | engines/tony/tony.h | 12 |
7 files changed, 1710 insertions, 1417 deletions
diff --git a/devtools/create_tony/create_tony.cpp b/devtools/create_tony/create_tony.cpp new file mode 100644 index 0000000000..f2d086c083 --- /dev/null +++ b/devtools/create_tony/create_tony.cpp @@ -0,0 +1,183 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * This is a utility for storing all the hardcoded data of Tony Tough in a separate + * data file, used by the game engine + */ + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +// HACK to allow building with the SDL backend on MinGW +// see bug #1800764 "TOOLS: MinGW tools building broken" +#ifdef main +#undef main +#endif // main + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "common/scummsys.h" +#include "common/events.h" + +#include "create_tony.h" +#include "staticdata.h" + +static void writeByte(FILE *fp, uint8 b) { + fwrite(&b, 1, 1, fp); +} + +static void writeUint16BE(FILE *fp, uint16 value) { + writeByte(fp, (uint8)(value >> 8)); + writeByte(fp, (uint8)(value & 0xFF)); +} + +void writeSint16BE(FILE *fp, int16 value) { + writeUint16BE(fp, (uint16)value); +} + +static void writeUint32BE(FILE *fp, uint32 value) { + writeByte(fp, (uint8)(value >> 24)); + writeByte(fp, (uint8)((value >> 16) & 0xFF)); + writeByte(fp, (uint8)((value >> 8) & 0xFF)); + writeByte(fp, (uint8)(value & 0xFF)); +} + +void writeSint32BE(FILE *fp, int32 value) { + writeUint32BE(fp, (uint16)value); +} + +int main(int argc, char *argv[]) { + FILE *outFile; + + outFile = fopen("tony.dat", "wb"); + + // Write header + fwrite("TONY", 4, 1, outFile); + + writeByte(outFile, TONY_DAT_VER_MAJ); + writeByte(outFile, TONY_DAT_VER_MIN); + + // game versions/variants + writeUint16BE(outFile, NUM_VARIANTS); + + // Italian + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogIta[i]); + writeSint16BE(outFile, _lTableDialogIta[i]); + writeSint16BE(outFile, _cTableMaccIta[i]); + writeSint16BE(outFile, _lTableMaccIta[i]); + writeSint16BE(outFile, _cTableCredIta[i]); + writeSint16BE(outFile, _lTableCredIta[i]); + writeSint16BE(outFile, _cTableObjIta[i]); + writeSint16BE(outFile, _lTableObjIta[i]); + } + + // Polish + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogPol[i]); + writeSint16BE(outFile, _lTableDialogPol[i]); + writeSint16BE(outFile, _cTableMaccPol[i]); + writeSint16BE(outFile, _lTableMaccPol[i]); + writeSint16BE(outFile, _cTableCredPol[i]); + writeSint16BE(outFile, _lTableCredPol[i]); + writeSint16BE(outFile, _cTableObjPol[i]); + writeSint16BE(outFile, _lTableObjPol[i]); + } + + //Russian + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogRus[i]); + writeSint16BE(outFile, _lTableDialogRus[i]); + writeSint16BE(outFile, _cTableMaccRus[i]); + writeSint16BE(outFile, _lTableMaccRus[i]); + writeSint16BE(outFile, _cTableCredRus[i]); + writeSint16BE(outFile, _lTableCredRus[i]); + writeSint16BE(outFile, _cTableObjRus[i]); + writeSint16BE(outFile, _lTableObjRus[i]); + } + + // Czech + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogCze[i]); + writeSint16BE(outFile, _lTableDialogCze[i]); + writeSint16BE(outFile, _cTableMaccCze[i]); + writeSint16BE(outFile, _lTableMaccCze[i]); + writeSint16BE(outFile, _cTableCredCze[i]); + writeSint16BE(outFile, _lTableCredCze[i]); + writeSint16BE(outFile, _cTableObjCze[i]); + writeSint16BE(outFile, _lTableObjCze[i]); + } + + // French + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogFra[i]); + writeSint16BE(outFile, _lTableDialogFra[i]); + writeSint16BE(outFile, _cTableMaccFra[i]); + writeSint16BE(outFile, _lTableMaccFra[i]); + writeSint16BE(outFile, _cTableCredFra[i]); + writeSint16BE(outFile, _lTableCredFra[i]); + writeSint16BE(outFile, _cTableObjFra[i]); + writeSint16BE(outFile, _lTableObjFra[i]); + } + + // Deutsch + for (int i = 0; i < 256; i++) { + writeSint16BE(outFile, _cTableDialogDeu[i]); + writeSint16BE(outFile, _lTableDialogDeu[i]); + writeSint16BE(outFile, _cTableMaccDeu[i]); + writeSint16BE(outFile, _lTableMaccDeu[i]); + writeSint16BE(outFile, _cTableCredDeu[i]); + writeSint16BE(outFile, _lTableCredDeu[i]); + writeSint16BE(outFile, _cTableObjDeu[i]); + writeSint16BE(outFile, _lTableObjDeu[i]); + } + + fclose(outFile); + return 0; +} + +void writeTextArray(FILE *outFile, const char *textArray[], int nbrText) { + int len, len1, pad; + uint8 padBuf[DATAALIGNMENT]; + + for (int i = 0; i < DATAALIGNMENT; i++) + padBuf[i] = 0; + + writeUint16BE(outFile, nbrText); + len = DATAALIGNMENT - 2; + for (int i = 0; i < nbrText; i++) { + len1 = strlen(textArray[i]) + 1; + pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT; + len += 2 + len1 + pad; + } + writeUint16BE(outFile, len); + + fwrite(padBuf, DATAALIGNMENT - 2, 1, outFile); // padding + for (int i = 0; i < nbrText; i++) { + len = strlen(textArray[i]) + 1; + pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT; + + writeUint16BE(outFile, len + pad + 2); + fwrite(textArray[i], len, 1, outFile); + fwrite(padBuf, pad, 1, outFile); + } +} diff --git a/devtools/create_tony/create_tony.h b/devtools/create_tony/create_tony.h new file mode 100644 index 0000000000..cc23eca1b7 --- /dev/null +++ b/devtools/create_tony/create_tony.h @@ -0,0 +1,44 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef CREATE_TONY_H +#define CREATE_TONY_H + +#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0]))) + +#define DATAALIGNMENT 4 + +#define TONY_DAT_VER_MAJ 0 // 1 byte +#define TONY_DAT_VER_MIN 1 // 1 byte + +// Number of variants of the game. For the moment, it's the same +// as the number of languages +#define NUM_VARIANTS 6 + +typedef unsigned char uint8; +typedef unsigned char byte; +typedef unsigned short uint16; +typedef signed short int16; + +void writeTextArray(FILE *outFile, const char *textData[], int nbrText); + +#endif // CREATE_TONY_H diff --git a/devtools/create_tony/staticdata.h b/devtools/create_tony/staticdata.h new file mode 100644 index 0000000000..793f897aba --- /dev/null +++ b/devtools/create_tony/staticdata.h @@ -0,0 +1,1370 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef STATICDATA_H +#define STATICDATA_H + +const int _cTableDialogIta[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, -1, -1, -1, -1, 87, + -1, 84, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 88, -1, -1, -1, 93, 99, + 107, 106, 89, 89, -1, 94, 90, -1, -1, 95, + -1, 104, 91, -1, -1, -1, 96, -1, 109, 92, + -1, -1, 97, -1, -1, 98}; + +const int _lTableDialogIta[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13}; + +const int _cTableDialogPol[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, -1, -1, 128, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, 129, + -1, -1, -1, 118, -1, 112, -1, -1, -1, 87, + -1, 84, -1, -1, 86, 126, -1, -1, -1, 119, + -1, -1, -1, -1, -1, 113, -1, 85, -1, -1, + -1, 127, -1, -1, -1, -1, -1, -1, 114, -1, + -1, -1, 116, -1, -1, -1, -1, -1, -1, 120, + -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 88, -1, -1, -1, 93, 99, + 115, 106, 89, 89, 117, 94, 90, -1, -1, 95, + -1, 121, 91, 123, -1, -1, 96, -1, 109, 92, + -1, -1, 97, -1, -1, 98}; + +const int _lTableDialogPol[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 12, 13, 13, 14, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, + 13, 13, 13, 14, 13, 14, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, + 13, 13, 13, 13, 13, 16, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, + 13, 13, 11, 13, 13, 13, 13, 13, 13, 10, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 12, 13, 13, 13, 12, 13, 13, 13, 13, 13, + 13, 11, 13, 11, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13}; + +const int _cTableDialogRus[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, -1, -1, -1, 136, 87, + -1, 84, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 169, -1, -1, 85, -1, -1, + -1, -1, 130, 131, 132, 133, 134, 135, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, + 157, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 191, 192, 190, 193, 194, 195}; + +const int _lTableDialogRus[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 11, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 12, 13, 13, 13, 13, 13, + 13, 13, 13, 15, 15, 11, 15, 11, 15, 10, + 13, 13, 12, 13, 14, 14, 13, 11, 12, 12, + 18, 11, 13, 12, 13, 12, 17, 18, 18, 19, + 16, 11, 16, 14, 14, 15, 10, 12, 13, 12, + 12, 10, 10, 10, 11, 12, 12, 12, 12, 10, + 11, 10, 14, 8, 11, 11, 12, 10, 15, 16, + 16, 16, 14, 9, 15, 14}; + +const int _cTableDialogCze[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, + -1, 206, 200, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 212, -1, -1, 221, 215, -1, + -1, -1, -1, 79, -1, -1, -1, -1, -1, 87, + -1, 84, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, 202, -1, -1, -1, -1, 108, -1, + 198, 204, -1, -1, 196, 203, -1, 205, -1, 105, + 207, 208, -1, -1, -1, -1, 199, 209, 210, -1, + -1, 201, -1, -1, 88, 217, -1, -1, 93, 99, + 107, 106, 213, 219, -1, 94, 211, 218, -1, 220, + -1, 104, 222, 223, -1, -1, 96, -1, 214, 224, + 225, -1, 97, 216, -1, 98}; + +const int _lTableDialogCze[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, + 13, 19, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 12, 13, 13, 16, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 12, 11, 13, 13, 11, 11, 13, 15, 13, 13, + 10, 13, 13, 13, 13, 13, 14, 13, 13, 13, + 13, 11, 13, 13, 13, 15, 13, 13, 13, 13, + 13, 13, 12, 12, 13, 13, 12, 7, 13, 17, + 13, 13, 11, 11, 13, 13, 13, 13, 12, 13, + 13, 13, 13, 11, 13, 13}; + +const int _cTableDialogFra[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, -1, -1, -1, -1, 87, + -1, 84, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 88, -1, 226, -1, 93, 99, + 107, 106, 89, 227, 228, 94, 90, -1, 229, 95, + -1, 104, 91, -1, 232, -1, 233, -1, 109, 230, + -1, 231, 97, -1, -1, 98}; + +const int _lTableDialogFra[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 15, 13, 13, 13, + 13, 13, 13, 12, 12, 13, 13, 13, 9, 13, + 13, 13, 13, 13, 11, 13, 11, 13, 13, 13, + 13, 13, 13, 13, 13, 13}; + +const int _cTableDialogDeu[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 77, -1, 80, 81, 82, 111, + 75, 76, -1, 68, 63, 66, 64, 78, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 65, 62, + 69, 83, 70, 73, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 77, 67, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, -1, -1, -1, -1, 87, + -1, 84, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, 236, -1, 108, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, + 238, -1, -1, 234, 88, -1, -1, -1, 93, 99, + 107, 106, 89, 89, -1, 94, 90, -1, -1, 95, + -1, 104, 91, -1, -1, -1, 96, -1, 109, 92, + -1, -1, 97, -1, -1, 98}; + +const int _lTableDialogDeu[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 9, 5, 5, 13, 13, 13, 13, 5, + 7, 7, 13, 13, 5, 13, 5, 13, 13, 13, + 13, 13, 10, 13, 13, 13, 13, 13, 5, 5, + 13, 13, 13, 10, 13, 13, 13, 13, 13, 10, + 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 5, 13, 13, 14, 15, 12, + 13, 12, 13, 13, 13, 6, 13, 13, 5, 16, + 12, 11, 11, 13, 13, 12, 13, 12, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 15, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13}; + +const int _cTableMaccIta[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 86, -1, -1, -1, 87, 88, + -1, 101, 89, -1, -1, 90, 92, -1, -1, 93, + -1, 76, 95, -1, -1, -1, 96, -1, -1, 98, + -1, -1, 99, -1, -1, 85}; + +const int _lTableMaccIta[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableMaccPol[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 114, -1, -1, 118, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 115, -1, -1, 119, + -1, -1, -1, 108, -1, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 116, -1, -1, -1, 109, + -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, + -1, 117, -1, -1, -1, -1, -1, -1, 104, -1, + -1, -1, 106, -1, -1, -1, -1, -1, -1, 110, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 86, -1, -1, -1, 87, 88, + 105, 101, 89, -1, 107, 90, 92, -1, -1, 93, + -1, 111, 95, 113, -1, -1, 96, -1, -1, 98, + -1, -1, 99, -1, -1, 85}; + +const int _lTableMaccPol[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 12, 10, 10, 14, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 12, 10, 10, 13, + 10, 10, 10, 14, 10, 14, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 13, 10, 10, 10, 9, + 10, 10, 10, 10, 10, 16, 10, 10, 10, 10, + 10, 13, 10, 10, 10, 10, 10, 10, 12, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 10, + 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 12, 10, 10, 10, 12, 10, 10, 10, 10, 10, + 10, 11, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableMaccRus[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, + -1, -1, 120, 121, 122, 123, 124, 125, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 148, 149, + 147, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 181, 182, 180, 183, 184, 185}; + +const int _lTableMaccRus[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 9, 10, 10, 10, 10, 10, + 10, 10, 11, 11, 11, 9, 10, 10, 11, 10, + 10, 10, 11, 9, 11, 10, 11, 8, 10, 10, + 11, 11, 11, 11, 10, 10, 10, 10, 11, 11, + 11, 11, 11, 11, 10, 10, 11, 10, 9, 10, + 10, 9, 11, 11, 11, 11, 11, 11, 10, 9, + 11, 10, 9, 11, 10, 11, 10, 10, 11, 11, + 10, 10, 10, 9, 11, 11}; + +const int _cTableMaccCze[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 187, -1, + -1, 196, 190, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 202, -1, -1, 211, 205, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, + 188, 194, -1, -1, 186, 193, -1, 195, -1, -1, + 197, 198, -1, -1, -1, -1, 189, 199, 200, -1, + -1, 191, -1, -1, 86, 207, -1, -1, 87, 88, + -1, 101, 203, 209, -1, 90, 201, 208, -1, 210, + -1, 76, 212, 213, -1, -1, 96, -1, 204, 214, + 215, -1, 99, 206, -1, 85}; + +const int _lTableMaccCze[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 11, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 9, 10, 10, 11, 9, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 9, 10, 11, 10, 10, + 11, 11, 10, 10, 10, 10, 11, 11, 11, 10, + 10, 11, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 9, 10, 11, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 11, + 11, 10, 10, 11, 10, 10}; + +const int _cTableMaccFra[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 86, -1, 226, -1, 87, 88, + -1, 101, 228, 227, -1, 90, 92, -1, 229, 93, + -1, 76, 95, -1, 232, -1, 233, -1, -1, 230, + -1, 231, 99, -1, -1, 85}; + +const int _lTableMaccFra[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 8, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, + 10, 11, 10, 10, 10, 10}; + +const int _cTableMaccDeu[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 62, 64, -1, 65, 66, 67, -1, + 69, 70, 74, 75, 78, 81, 79, 84, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 80, 77, + 82, 71, 83, 72, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, + 238, -1, -1, 234, 86, -1, -1, -1, 87, 88, + -1, 101, 89, -1, -1, 90, 92, -1, -1, 93, + -1, 76, 95, -1, -1, -1, 96, -1, -1, 98, + -1, -1, 99, -1, -1, 85}; + +const int _lTableMaccDeu[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableCredIta[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 52, 53, -1, -1, -1, -1, + -1, 74, 56, 57, -1, -1, 60, 61, -1, -1, + -1, 73, 64, 65, -1, -1, -1, -1, -1, 68, + 69, -1, -1, -1, -1, -1}; + +const int _lTableCredIta[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 19, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableCredPol[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, -1, -1, 128, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, 129, + -1, -1, -1, 118, -1, 112, -1, -1, -1, 77, + -1, 86, -1, -1, -1, 126, -1, -1, -1, 119, + -1, -1, -1, -1, -1, 113, -1, 87, -1, -1, + -1, 127, -1, -1, -1, -1, -1, -1, 114, -1, + -1, -1, 116, -1, -1, -1, -1, -1, -1, 120, + -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 52, 53, -1, -1, -1, -1, + 115, 74, 56, 57, 117, -1, 60, 61, -1, -1, + -1, 121, 64, 123, -1, -1, -1, -1, -1, 68, + 69, -1, -1, -1, -1, -1}; + +const int _lTableCredPol[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 15, 10, 10, 15, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 14, 10, 20, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 15, 10, 10, 10, 11, + 10, 10, 10, 10, 10, 12, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 19, 10, 15, 10, + 10, 10, 15, 10, 10, 10, 10, 10, 10, 16, + 10, 15, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableCredRus[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 136, 77, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 169, -1, -1, 87, -1, -1, + -1, -1, 130, 131, 132, 133, 134, 135, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, + 157, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 191, 192, 190, 193, 194, 195}; + +const int _lTableCredRus[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 15, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 11, 10, 10, 10, 10, 10, + 10, 10, 20, 16, 16, 14, 22, 15, 20, 12, + 16, 16, 16, 22, 18, 16, 15, 14, 13, 15, + 12, 14, 15, 13, 16, 14, 23, 23, 12, 16, + 10, 12, 20, 15, 12, 10, 10, 11, 16, 10, + 13, 12, 13, 13, 12, 13, 14, 11, 11, 11, + 12, 10, 10, 10, 11, 10, 11, 10, 15, 15, + 12, 16, 10, 11, 13, 11}; + +const int _cTableCredCze[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, + -1, 206, 200, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 212, -1, -1, 221, 215, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, 202, -1, -1, -1, -1, -1, -1, + 198, 204, -1, -1, 196, 203, -1, 205, -1, -1, + 207, 208, -1, -1, -1, -1, 199, 209, 210, -1, + -1, 201, -1, -1, 52, 217, -1, -1, -1, -1, + -1, 74, 213, 219, -1, -1, 211, 218, -1, 220, + -1, 73, 222, 223, -1, -1, -1, -1, 214, 224, + 225, -1, -1, 216, -1, -1}; + +const int _lTableCredCze[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 15, 10, + 10, 19, 15, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 11, 10, 10, 12, 11, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 20, 10, 10, 19, 10, 10, 10, + 15, 15, 10, 10, 15, 7, 10, 20, 10, 10, + 16, 15, 10, 10, 10, 10, 15, 13, 13, 10, + 10, 14, 10, 10, 10, 12, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 11, 6, 10, 15, + 10, 10, 11, 11, 10, 10, 10, 10, 11, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableCredFra[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 52, 53, 226, -1, -1, -1, + -1, 74, 56, 227, 228, -1, 60, 61, 229, -1, + -1, 73, 64, 65, 232, -1, 233, -1, -1, 230, + 69, 231, -1, -1, -1, -1}; + +const int _lTableCredFra[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 19, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 12, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 6, 10, + 10, 10, 10, 10, 11, 10, 11, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableCredDeu[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 90, 91, 111, + 84, 85, 99, 93, 95, -1, 100, 92, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 89, 94, + -1, 97, -1, 79, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 96, 98, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, + 71, -1, -1, 234, 52, 53, -1, -1, 55, -1, + -1, 74, 56, 57, -1, -1 , 60, 61, -1, -1, + -1, 73, 64, 65, -1, -1, 67, -1, -1, 68, + 69, -1, 71, -1, -1, -1}; + +const int _lTableCredDeu[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 11, 10, 10, 10, 10, 10, 10, 5, + 10, 10, 10, 10, 5, 10, 5, 10, 12, 8, + 10, 11, 12, 11, 12, 10, 11, 10, 5, 5, + 10, 10, 10, 10, 10, 19, 15, 14, 13, 14, + 13, 16, 15, 5, 8, 15, 13, 17, 15, 14, + 12, 14, 14, 15, 11, 12, 12, 16, 12, 13, + 14, 10, 10, 10, 9, 10, 10, 11, 9, 9, + 10, 9, 8, 9, 10, 5, 6, 12, 6, 14, + 10, 11, 11, 9, 9, 9, 6, 9, 10, 14, + 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 19, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10}; + +const int _cTableObjIta[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, -1, -1, -1, -1, 67, + -1, 60, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 69, -1, -1, 70, 71, 68, -1, + 72, -1, -1, 73, 75, -1, -1, 76, -1, 65, + 78, -1, -1, -1, 79, -1, -1, 81, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 70, -1, + -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 79, -1, 62, -1, + -1, -1, 82, -1, -1, -1}; + +const int _lTableObjIta[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 17, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26}; + +const int _cTableObjPol[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 91, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 91, -1, -1, 93, + -1, -1, -1, 88, -1, 85, -1, -1, -1, 67, + -1, 60, -1, -1, 66, 92, -1, -1, -1, 88, + -1, -1, -1, -1, -1, 85, -1, 61, -1, -1, + -1, 92, -1, 69, -1, -1, 70, 71, 86, -1, + 72, -1, 87, 73, 75, -1, -1, 76, -1, 89, + 78, 90, -1, -1, 79, -1, -1, 81, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 70, -1, + 86, 63, -1, -1, 87, -1, -1, -1, -1, -1, + -1, 89, -1, 90, -1, -1, 79, -1, 62, -1, + -1, -1, 82, -1, -1, -1}; + +const int _lTableObjPol[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 15, 26, 26, 21, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 15, 26, 26, 21, + 26, 26, 26, 19, 26, 20, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 21, 26, 26, 26, 19, + 26, 26, 26, 26, 26, 20, 26, 26, 26, 26, + 26, 21, 26, 26, 26, 26, 26, 26, 22, 26, + 26, 26, 17, 26, 26, 26, 26, 26, 26, 17, + 26, 22, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 22, 26, 26, 26, 17, 26, 26, 26, 26, 26, + 26, 17, 26, 22, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26}; + +const int _cTableObjRus[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 85, -1, -1, 100, 67, + -1, 60, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 85, -1, 61, -1, -1, + -1, -1, 94, 95, 96, 97, 98, 99, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, + 121, 124, 125, 126, 94, 95, 96, 97, 98, 99, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 122, 123, 121, 124, 125, 126}; + +const int _lTableObjRus[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 20, 26, 26, 18, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 18, 20, 26, 26, 26, 26, + 26, 26, 18, 18, 18, 17, 16, 18, 20, 18, + 18, 18, 18, 16, 18, 15, 22, 15, 18, 22, + 19, 16, 21, 20, 16, 16, 19, 22, 19, 19, + 18, 15, 18, 18, 18, 18, 18, 17, 16, 18, + 20, 18, 18, 18, 18, 16, 18, 15, 22, 15, + 18, 22, 19, 16, 21, 20, 16, 16, 19, 22, + 19, 19, 18, 15, 18, 18}; + +const int _cTableObjCze[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, + -1, 137, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 128, -1, -1, 137, 131, -1, + -1, -1, -1, 52, -1, -1, -1, -1, -1, 67, + -1, 60, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 133, -1, -1, 70, 71, 68, -1, + 129, 135, -1, 73, 127, 134, -1, 136, -1, 65, + 138, 139, -1, -1, 79, -1, 130, 140, 141, -1, + 82, 132, -1, -1, -1, 133, -1, -1, 70, -1, + -1, 63, 129, 135, -1, -1, 127, 134, -1, 136, + -1, -1, 138, 139, -1, -1, 79, -1, 130, 140, + 141, -1, 82, 132, -1, -1}; + +const int _lTableObjCze[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 15, 26, + 26, 24, 21, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 15, 26, 26, 24, 21, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 18, 26, 26, 26, 26, 26, 26, + 22, 17, 26, 26, 17, 19, 26, 23, 26, 17, + 17, 22, 26, 26, 26, 26, 18, 16, 16, 26, + 26, 16, 26, 26, 26, 18, 26, 26, 26, 26, + 26, 26, 22, 17, 26, 26, 17, 19, 26, 23, + 26, 26, 17, 22, 26, 26, 26, 26, 18, 16, + 16, 26, 26, 16, 26, 26}; + +const int _cTableObjFra[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, -1, -1, -1, -1, 67, + -1, 60, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 69, -1, -1, 70, 71, 68, -1, + 72, -1, -1, 73, 75, -1, -1, 76, -1, 65, + 78, -1, -1, -1, 79, -1, -1, 81, -1, -1, + 82, -1, -1, -1, 0, 0, 0, -1, 70, -1, + -1, 63, 4, 4, -1, -1, 8, 8, 8, -1, + -1, -1, 14, 14, 14, -1, 14, -1, 62, 20, + -1, 20, 82, -1, -1, -1}; + +const int _lTableObjFra[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 17, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 17, 17, 17, 26, 26, 26, + 26, 26, 15, 15, 26, 26, 16, 16, 16, 26, + 26, 26, 19, 19, 19, 26, 19, 26, 26, 15, + 26, 15, 26, 26, 26, 26}; + +const int _cTableObjDeu[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 51, -1, 53, 54, 55, 50, + 47, 48, 57, 41, 36, 40, 38, 46, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 39, 37, + 58, 49, 59, 44, -1, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 56, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, -1, -1, -1, -1, 67, + -1, 60, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 69, -1, -1, 70, 71, 68, -1, + 72, -1, -1, 73, 75, -1, -1, 76, -1, 65, + 78, -1, -1, -1, 79, -1, -1, 81, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 70, -1, + -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 79, -1, 62, -1, + -1, -1, 82, -1, -1, -1}; + +const int _lTableObjDeu[] = { + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 11, 26, 26, 26, 26, 26, 26, 8, + 26, 26, 26, 26, 26, 12, 8, 26, 20, 20, + 15, 20, 20, 20, 20, 20, 20, 20, 26, 26, + 26, 26, 26, 26, 26, 17, 17, 19, 17, 15, + 17, 19, 17, 16, 26, 17, 14, 19, 17, 19, + 17, 19, 14, 13, 15, 15, 13, 19, 15, 13, + 20, 26, 26, 26, 26, 26, 26, 17, 17, 19, + 17, 15, 17, 19, 17, 16, 26, 17, 14, 19, + 17, 19, 17, 19, 14, 13, 15, 15, 13, 19, + 15, 13, 20, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 17, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 142, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26}; + +#endif diff --git a/dists/engine-data/tony.dat b/dists/engine-data/tony.dat Binary files differnew file mode 100644 index 0000000000..70a9ac8776 --- /dev/null +++ b/dists/engine-data/tony.dat 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, |