diff options
author | Strangerke | 2012-10-10 08:26:41 +0200 |
---|---|---|
committer | Strangerke | 2012-10-10 08:26:41 +0200 |
commit | b164cbb571fc4e0f2a6f002760a851d8ac592540 (patch) | |
tree | 4d25f2e1f8241f6f3352fd9fb1135f5faa36dfd4 /devtools | |
parent | b2f2f8d7b08b40e43702e8db325f8136066f10be (diff) | |
parent | 1e200620d673af4acdd2d128ed6e390df001aacf (diff) | |
download | scummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.tar.gz scummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.tar.bz2 scummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.zip |
Merge branch 'master' of github.com:scummvm/scummvm into mortevielle
Conflicts:
base/plugins.cpp
configure
Diffstat (limited to 'devtools')
25 files changed, 2062 insertions, 136 deletions
diff --git a/devtools/README b/devtools/README index 7db5259e7c..c7f08d6dfa 100644 --- a/devtools/README +++ b/devtools/README @@ -65,7 +65,7 @@ create_lure (dreammaster) create_project (LordHoto, Littleboy) -------------- - Creates project files for Visual Studio 2005, 2008, 2010, Xcode and + Creates project files for Visual Studio 2005, 2008, 2010, 2012, Xcode and Code::Blocks out of the configure / Makefile based build system. It also offers a way to enable or disable certain engines and the use of external libraries similar to configure. Run the tool without diff --git a/devtools/create_drascula/staticdata.h b/devtools/create_drascula/staticdata.h index 21b9a82622..e0e4f9da10 100644 --- a/devtools/create_drascula/staticdata.h +++ b/devtools/create_drascula/staticdata.h @@ -6031,10 +6031,10 @@ const char *_texthis[NUM_LANGS][NUM_TEXTHIS] = { }, { "", - "", - "", - "", - "" + "Hace mucho tiempo, parece ser que Drascula mato a la mujer de Von Braun, asi que, con la intencion de enfrentarse al conde, Von Braun empezo a investigar todo lo que pudo sobre vampiros.", + "Cuando creyo estar preparado, subio al castillo y tuvo un enfrentamiento muy violento con Drascula.", + "Nadie sabe que paso exactamente. Aunque Von Braun perdio, Drascula no pudo matarlo.", + "Von Braun se sintio humillado por su derrota, huyo del castillo y no ha tenido valor para enfrentarse de nuevo a Drascula." }, { "", diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index a87bde3e26..3b90ad0d85 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -47,7 +47,7 @@ #include <map> enum { - kKyraDatVersion = 82 + kKyraDatVersion = 83 }; const ExtractFilename extractFilenames[] = { diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index a2759b1e53..89229eb4f2 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -119,6 +119,7 @@ const Game lolGames[] = { { kLoL, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } }, { kLoL, { RU_RUS, -1, -1 }, kPlatformPC, kNoSpecial, { "80a9f9bf243bc6ed36d98584fc6988c4", 0 } }, { kLoL, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } }, + { kLoL, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } }, // PC98 (no language specifc strings) { kLoL, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } }, diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp index 1b9f90f18f..19b69d9410 100644 --- a/devtools/create_kyradat/tables.cpp +++ b/devtools/create_kyradat/tables.cpp @@ -3349,6 +3349,7 @@ const ExtractEntrySearchData kLoLCharacterDefsProvider[] = { { RU_RUS, kPlatformPC, { 0x00000492, 0x000052BA, { { 0x52, 0x29, 0x0D, 0x49, 0xFD, 0x17, 0xD7, 0x70, 0x6D, 0xCA, 0xEB, 0xB6, 0x7E, 0xFA, 0xBE, 0x08 } } } }, // floppy { EN_ANY, kPlatformPC, { 0x00000492, 0x000046B0, { { 0x7A, 0x94, 0x8B, 0xC6, 0xF7, 0xF1, 0x2F, 0xF3, 0xBC, 0x1B, 0x0B, 0x4E, 0x00, 0xC9, 0x44, 0x58 } } } }, // floppy { DE_DEU, kPlatformPC, { 0x00000492, 0x000047FD, { { 0x8C, 0x0B, 0x8B, 0xCE, 0xE0, 0xB0, 0x8F, 0xA9, 0x06, 0xC3, 0x98, 0xE6, 0x2E, 0x09, 0xB6, 0x93 } } } }, // floppy + { FR_FRA, kPlatformPC, { 0x00000492, 0x000047FD, { { 0x8C, 0x0B, 0x8B, 0xCE, 0xE0, 0xB0, 0x8F, 0xA9, 0x06, 0xC3, 0x98, 0xE6, 0x2E, 0x09, 0xB6, 0x93 } } } }, // floppy { EN_ANY, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD { DE_DEU, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD { FR_FRA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD diff --git a/devtools/create_project/config.h b/devtools/create_project/config.h index fecd95691e..de4703a47d 100644 --- a/devtools/create_project/config.h +++ b/devtools/create_project/config.h @@ -28,8 +28,10 @@ #define LIBS_DEFINE "SCUMMVM_LIBS" // Name of the include environment variable #define REVISION_DEFINE "SCUMMVM_INTERNAL_REVISION" -#define HAS_VIDEO_FOLDER 1 -//#define ADDITIONAL_LIBRARY "" -#define NEEDS_RTTI 0 +#define ENABLE_LANGUAGE_EXTENSIONS "" // Comma separated list of projects that need language extensions +#define DISABLE_EDIT_AND_CONTINUE "tinsel,tony" // Comma separated list of projects that need Edit&Continue to be disabled for co-routine support (the main project is automatically added) + +//#define ADDITIONAL_LIBRARY "" // Add a single library to the list of externally linked libraries +#define NEEDS_RTTI 0 // Enable RTTI globally #endif // TOOLS_CREATE_PROJECT_CONFIG_H diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 61c609be67..a8e09ff5eb 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -76,14 +76,6 @@ namespace { std::string unifyPath(const std::string &path); /** - * Returns the last path component. - * - * @param path Path string. - * @return Last path component. - */ -std::string getLastPathComponent(const std::string &path); - -/** * Display the help text for the program. * * @param exe Name of the executable. @@ -105,30 +97,6 @@ struct FSNode { }; typedef std::list<FSNode> FileList; - -typedef StringList TokenList; - -/** - * Takes a given input line and creates a list of tokens out of it. - * - * A token in this context is separated by whitespaces. A special case - * are quotation marks though. A string inside quotation marks is treated - * as single token, even when it contains whitespaces. - * - * Thus for example the input: - * foo bar "1 2 3 4" ScummVM - * will create a list with the following entries: - * "foo", "bar", "1 2 3 4", "ScummVM" - * As you can see the quotation marks will get *removed* too. - * - * You can also use this with non-whitespace by passing another separator - * character (e.g. ','). - * - * @param input The text to be tokenized. - * @param separator The token separator. - * @return A list of tokens. - */ -TokenList tokenize(const std::string &input, char separator = ' '); } // End of anonymous namespace enum ProjectType { @@ -221,7 +189,7 @@ int main(int argc, char *argv[]) { msvcVersion = atoi(argv[++i]); - if (msvcVersion != 8 && msvcVersion != 9 && msvcVersion != 10) { + if (msvcVersion != 8 && msvcVersion != 9 && msvcVersion != 10 && msvcVersion != 11) { std::cerr << "ERROR: Unsupported version: \"" << msvcVersion << "\" passed to \"--msvc-version\"!\n"; return -1; } @@ -534,7 +502,7 @@ int main(int argc, char *argv[]) { projectWarnings["agos"].push_back("4511"); projectWarnings["dreamweb"].push_back("4355"); - + projectWarnings["lure"].push_back("4189"); projectWarnings["lure"].push_back("4355"); @@ -575,7 +543,9 @@ int main(int argc, char *argv[]) { globalWarnings.push_back("-Wwrite-strings"); // The following are not warnings at all... We should consider adding them to // a different list of parameters. +#if !NEEDS_RTTI globalWarnings.push_back("-fno-rtti"); +#endif globalWarnings.push_back("-fno-exceptions"); globalWarnings.push_back("-fcheck-new"); @@ -604,14 +574,6 @@ std::string unifyPath(const std::string &path) { return result; } -std::string getLastPathComponent(const std::string &path) { - std::string::size_type pos = path.find_last_of('/'); - if (pos == std::string::npos) - return path; - else - return path.substr(pos + 1); -} - void displayHelp(const char *exe) { using std::cout; @@ -641,6 +603,7 @@ void displayHelp(const char *exe) { " 8 stands for \"Visual Studio 2005\"\n" " 9 stands for \"Visual Studio 2008\"\n" " 10 stands for \"Visual Studio 2010\"\n" + " 11 stands for \"Visual Studio 2012\"\n" " The default is \"9\", thus \"Visual Studio 2008\"\n" " --build-events Run custom build events as part of the build\n" " (default: false)\n" @@ -652,14 +615,14 @@ void displayHelp(const char *exe) { "\n" "Engines settings:\n" " --list-engines list all available engines and their default state\n" - " --enable-engine enable building of the engine with the name \"engine\"\n" - " --disable-engine disable building of the engine with the name \"engine\"\n" + " --enable-engine=<name> enable building of the engine with the name \"name\"\n" + " --disable-engine=<name> disable building of the engine with the name \"name\"\n" " --enable-all-engines enable building of all engines\n" " --disable-all-engines disable building of all engines\n" "\n" "Optional features settings:\n" - " --enable-name enable inclusion of the feature \"name\"\n" - " --disable-name disable inclusion of the feature \"name\"\n" + " --enable-<name> enable inclusion of the feature \"name\"\n" + " --disable-<name> disable inclusion of the feature \"name\"\n" "\n" " There are the following features available:\n" "\n"; @@ -691,7 +654,7 @@ bool parseEngine(const std::string &line, EngineDesc &engine); } // End of anonymous namespace EngineDescList parseConfigure(const std::string &srcDir) { - std::string configureFile = srcDir + "/configure"; + std::string configureFile = srcDir + "/engines/configure.engines"; std::ifstream configure(configureFile.c_str()); if (!configure) @@ -800,6 +763,7 @@ bool parseEngine(const std::string &line, EngineDesc &engine) { return true; } +} // End of anonymous namespace TokenList tokenize(const std::string &input, char separator) { TokenList result; @@ -832,7 +796,6 @@ TokenList tokenize(const std::string &input, char separator) { return result; } -} // End of anonymous namespace namespace { const Feature s_features[] = { @@ -998,7 +961,7 @@ bool isInList(const std::string &dir, const std::string &fileName, const StringL continue; } - const std::string lastPathComponent = getLastPathComponent(*i); + const std::string lastPathComponent = ProjectProvider::getLastPathComponent(*i); if (extensionName == "o") { return false; } else if (!producesObjectFile(fileName) && extensionName != "h") { @@ -1213,9 +1176,7 @@ void ProjectProvider::createProject(const BuildSetup &setup) { createModuleList(setup.srcDir + "/gui", setup.defines, in, ex); createModuleList(setup.srcDir + "/audio", setup.defines, in, ex); createModuleList(setup.srcDir + "/audio/softsynth/mt32", setup.defines, in, ex); -#if HAS_VIDEO_FOLDER createModuleList(setup.srcDir + "/video", setup.defines, in, ex); -#endif // Resource files in.push_back(setup.srcDir + "/icons/" + setup.projectName + ".ico"); @@ -1225,6 +1186,8 @@ void ProjectProvider::createProject(const BuildSetup &setup) { in.push_back(setup.srcDir + "/AUTHORS"); in.push_back(setup.srcDir + "/COPYING"); in.push_back(setup.srcDir + "/COPYING.LGPL"); + in.push_back(setup.srcDir + "/COPYING.BSD"); + in.push_back(setup.srcDir + "/COPYING.FREEFONT"); in.push_back(setup.srcDir + "/COPYRIGHT"); in.push_back(setup.srcDir + "/NEWS"); in.push_back(setup.srcDir + "/README"); @@ -1301,6 +1264,14 @@ std::string ProjectProvider::createUUID() const { #endif } +std::string ProjectProvider::getLastPathComponent(const std::string &path) { + std::string::size_type pos = path.find_last_of('/'); + if (pos == std::string::npos) + return path; + else + return path.substr(pos + 1); +} + void ProjectProvider::addFilesToProject(const std::string &dir, std::ofstream &projectFile, const StringList &includeList, const StringList &excludeList, const std::string &filePrefix) { diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h index 8719143f4a..de77793ee7 100644 --- a/devtools/create_project/create_project.h +++ b/devtools/create_project/create_project.h @@ -31,6 +31,30 @@ typedef std::list<std::string> StringList; +typedef StringList TokenList; + +/** + * Takes a given input line and creates a list of tokens out of it. + * + * A token in this context is separated by whitespaces. A special case + * are quotation marks though. A string inside quotation marks is treated + * as single token, even when it contains whitespaces. + * + * Thus for example the input: + * foo bar "1 2 3 4" ScummVM + * will create a list with the following entries: + * "foo", "bar", "1 2 3 4", "ScummVM" + * As you can see the quotation marks will get *removed* too. + * + * You can also use this with non-whitespace by passing another separator + * character (e.g. ','). + * + * @param input The text to be tokenized. + * @param separator The token separator. + * @return A list of tokens. + */ +TokenList tokenize(const std::string &input, char separator = ' '); + /** * Structure to describe a game engine to be built into ScummVM. * @@ -317,6 +341,14 @@ public: */ void createProject(const BuildSetup &setup); + /** + * Returns the last path component. + * + * @param path Path string. + * @return Last path component. + */ + static std::string getLastPathComponent(const std::string &path); + protected: const int _version; ///< Target project version StringList &_globalWarnings; ///< Global warnings diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp index f8768ecc73..0f77d91852 100644 --- a/devtools/create_project/msbuild.cpp +++ b/devtools/create_project/msbuild.cpp @@ -46,7 +46,13 @@ const char *MSBuildProvider::getPropertiesExtension() { } int MSBuildProvider::getVisualStudioVersion() { - return 2010; + if (_version == 10) + return 2010; + + if (_version == 11) + return 2012; + + error("Unsupported version passed to getVisualStudioVersion"); } namespace { @@ -58,9 +64,10 @@ inline void outputConfiguration(std::ostream &project, const std::string &config "\t\t</ProjectConfiguration>\n"; } -inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config) { +inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config, int version) { project << "\t<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='" << config << "'\" Label=\"Configuration\">\n" "\t\t<ConfigurationType>" << ((name == setup.projectName || setup.devTools) ? "Application" : "StaticLibrary") << "</ConfigurationType>\n" + "\t\t<PlatformToolset>v" << version << "0</PlatformToolset>\n" "\t</PropertyGroup>\n"; } @@ -98,17 +105,18 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri "\t\t<ProjectGuid>{" << uuid << "}</ProjectGuid>\n" "\t\t<RootNamespace>" << name << "</RootNamespace>\n" "\t\t<Keyword>Win32Proj</Keyword>\n" + "\t\t<VCTargetsPath Condition=\"'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''\">$(VCTargetsPath11)</VCTargetsPath>\n" "\t</PropertyGroup>\n"; // Shared configuration project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n"; - outputConfigurationType(setup, project, name, "Release|Win32"); - outputConfigurationType(setup, project, name, "Analysis|Win32"); - outputConfigurationType(setup, project, name, "Debug|Win32"); - outputConfigurationType(setup, project, name, "Release|x64"); - outputConfigurationType(setup, project, name, "Analysis|x64"); - outputConfigurationType(setup, project, name, "Debug|x64"); + outputConfigurationType(setup, project, name, "Release|Win32", _version); + outputConfigurationType(setup, project, name, "Analysis|Win32", _version); + outputConfigurationType(setup, project, name, "Debug|Win32", _version); + outputConfigurationType(setup, project, name, "Release|x64", _version); + outputConfigurationType(setup, project, name, "Analysis|x64", _version); + outputConfigurationType(setup, project, name, "Debug|x64", _version); project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n" "\t<ImportGroup Label=\"ExtensionSettings\">\n" @@ -233,9 +241,11 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s // Check for project-specific warnings: std::map<std::string, StringList>::iterator warningsIterator = _projectWarnings.find(name); + bool enableLanguageExtensions = find(_enableLanguageExtensions.begin(), _enableLanguageExtensions.end(), name) != _enableLanguageExtensions.end(); + bool disableEditAndContinue = find(_disableEditAndContinue.begin(), _disableEditAndContinue.end(), name) != _disableEditAndContinue.end(); // Nothing to add here, move along! - if (!setup.devTools && name != setup.projectName && name != "sword25" && name != "tinsel" && name != "grim" && warningsIterator == _projectWarnings.end()) + if (!setup.devTools && name != setup.projectName && !enableLanguageExtensions && !disableEditAndContinue && warningsIterator == _projectWarnings.end()) return; std::string warnings = ""; @@ -246,16 +256,17 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s project << "\t<ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='" << configuration << "|" << (isWin32 ? "Win32" : "x64") << "'\">\n" "\t\t<ClCompile>\n"; - // Compile configuration - if (setup.devTools || name == setup.projectName || name == "sword25" || name == "grim") { + // Language Extensions + if (setup.devTools || name == setup.projectName || enableLanguageExtensions) project << "\t\t\t<DisableLanguageExtensions>false</DisableLanguageExtensions>\n"; - } else { - if (name == "tinsel" && !isRelease) - project << "\t\t\t<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n"; - if (warningsIterator != _projectWarnings.end()) - project << "\t\t\t<DisableSpecificWarnings>" << warnings << ";%(DisableSpecificWarnings)</DisableSpecificWarnings>\n"; - } + // Edit and Continue + if ((name == setup.projectName || disableEditAndContinue) && !isRelease) + project << "\t\t\t<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n"; + + // Warnings + if (warningsIterator != _projectWarnings.end()) + project << "\t\t\t<DisableSpecificWarnings>" << warnings << ";%(DisableSpecificWarnings)</DisableSpecificWarnings>\n"; project << "\t\t</ClCompile>\n"; @@ -395,6 +406,7 @@ void MSBuildProvider::createBuildProp(const BuildSetup &setup, bool isRelease, b "\t\t</ClCompile>\n" "\t\t<Link>\n" "\t\t\t<GenerateDebugInformation>true</GenerateDebugInformation>\n" + "\t\t\t<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\n" "\t\t\t<IgnoreSpecificDefaultLibraries>libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\n"; } diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp index 96eaf643d1..b8d2401af9 100644 --- a/devtools/create_project/msvc.cpp +++ b/devtools/create_project/msvc.cpp @@ -33,6 +33,9 @@ namespace CreateProjectTool { ////////////////////////////////////////////////////////////////////////// MSVCProvider::MSVCProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, const int version) : ProjectProvider(global_warnings, project_warnings, version) { + + _enableLanguageExtensions = tokenize(ENABLE_LANGUAGE_EXTENSIONS, ','); + _disableEditAndContinue = tokenize(DISABLE_EDIT_AND_CONTINUE, ','); } void MSVCProvider::createWorkspace(const BuildSetup &setup) { @@ -75,10 +78,10 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) { solution << "Global\n" "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" "\t\tDebug|Win32 = Debug|Win32\n" - "\t\tAnalysis|Win32 = Analysis|Win32\n" + "\t\tAnalysis|Win32 = Analysis|Win32\n" "\t\tRelease|Win32 = Release|Win32\n" "\t\tDebug|x64 = Debug|x64\n" - "\t\tAnalysis|x64 = Analysis|x64\n" + "\t\tAnalysis|x64 = Analysis|x64\n" "\t\tRelease|x64 = Release|x64\n" "\tEndGlobalSection\n" "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n"; @@ -86,14 +89,14 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) { for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) { solution << "\t\t{" << i->second << "}.Debug|Win32.ActiveCfg = Debug|Win32\n" "\t\t{" << i->second << "}.Debug|Win32.Build.0 = Debug|Win32\n" - "\t\t{" << i->second << "}.Analysis|Win32.ActiveCfg = Analysis|Win32\n" - "\t\t{" << i->second << "}.Analysis|Win32.Build.0 = Analysis|Win32\n" + "\t\t{" << i->second << "}.Analysis|Win32.ActiveCfg = Analysis|Win32\n" + "\t\t{" << i->second << "}.Analysis|Win32.Build.0 = Analysis|Win32\n" "\t\t{" << i->second << "}.Release|Win32.ActiveCfg = Release|Win32\n" "\t\t{" << i->second << "}.Release|Win32.Build.0 = Release|Win32\n" "\t\t{" << i->second << "}.Debug|x64.ActiveCfg = Debug|x64\n" "\t\t{" << i->second << "}.Debug|x64.Build.0 = Debug|x64\n" - "\t\t{" << i->second << "}.Analysis|x64.ActiveCfg = Analysis|x64\n" - "\t\t{" << i->second << "}.Analysis|x64.Build.0 = Analysis|x64\n" + "\t\t{" << i->second << "}.Analysis|x64.ActiveCfg = Analysis|x64\n" + "\t\t{" << i->second << "}.Analysis|x64.Build.0 = Analysis|x64\n" "\t\t{" << i->second << "}.Release|x64.ActiveCfg = Release|x64\n" "\t\t{" << i->second << "}.Release|x64.Build.0 = Release|x64\n"; } @@ -139,7 +142,7 @@ void MSVCProvider::createGlobalProp(const BuildSetup &setup) { StringList x64EngineDefines = getEngineDefines(setup.engines); x64Defines.splice(x64Defines.end(), x64EngineDefines); - // HACK: This definitly should not be here, but otherwise we would not define SDL_BACKEND for x64. + // HACK: This definitely should not be here, but otherwise we would not define SDL_BACKEND for x64. x64Defines.push_back("WIN32"); x64Defines.push_back("SDL_BACKEND"); @@ -168,7 +171,7 @@ std::string MSVCProvider::getPostBuildEvent(bool isWin32, bool createInstaller) cmdLine += (isWin32) ? "x86" : "x64"; - cmdLine += " %SCUMMVM_LIBS% "; + cmdLine += " %" LIBS_DEFINE "% "; // Specify if installer needs to be built or not cmdLine += (createInstaller ? "1" : "0"); diff --git a/devtools/create_project/msvc.h b/devtools/create_project/msvc.h index 0a994667fa..5a854b596a 100644 --- a/devtools/create_project/msvc.h +++ b/devtools/create_project/msvc.h @@ -32,6 +32,8 @@ public: MSVCProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, const int version); protected: + StringList _enableLanguageExtensions; + StringList _disableEditAndContinue; void createWorkspace(const BuildSetup &setup); diff --git a/devtools/create_project/msvc11/create_project.sln b/devtools/create_project/msvc11/create_project.sln new file mode 100644 index 0000000000..1552c9f502 --- /dev/null +++ b/devtools/create_project/msvc11/create_project.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "create_project", "create_project.vcxproj", "{CF177559-077D-4A08-AABE-BE0FD35F6C63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Debug|Win32.Build.0 = Debug|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Release|Win32.ActiveCfg = Release|Win32 + {CF177559-077D-4A08-AABE-BE0FD35F6C63}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/devtools/create_project/msvc11/create_project.vcxproj b/devtools/create_project/msvc11/create_project.vcxproj new file mode 100644 index 0000000000..c87461c049 --- /dev/null +++ b/devtools/create_project/msvc11/create_project.vcxproj @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{CF177559-077D-4A08-AABE-BE0FD35F6C63}</ProjectGuid> + <RootNamespace>create_project</RootNamespace> + <VCTargetsPath Condition="'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''">$(VCTargetsPath11)</VCTargetsPath> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DisableLanguageExtensions>false</DisableLanguageExtensions> + <DisableSpecificWarnings>4003;4512;4127</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + <PostBuildEvent> + <Command>@echo off +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc11\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4003;4512;4127</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalDependencies>Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <PostBuildEvent> + <Command>@echo off +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc11\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\" +xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\"</Command> + </PostBuildEvent> + <PreBuildEvent> + <Command> + </Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\codeblocks.cpp" /> + <ClCompile Include="..\create_project.cpp" /> + <ClCompile Include="..\msbuild.cpp" /> + <ClCompile Include="..\msvc.cpp" /> + <ClCompile Include="..\visualstudio.cpp" /> + <ClCompile Include="..\xcode.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\codeblocks.h" /> + <ClInclude Include="..\config.h" /> + <ClInclude Include="..\create_project.h" /> + <ClInclude Include="..\msbuild.h" /> + <ClInclude Include="..\msvc.h" /> + <ClInclude Include="..\visualstudio.h" /> + <ClInclude Include="..\xcode.h" /> + </ItemGroup> + <ItemGroup> + <None Include="..\scripts\installer.vbs" /> + <None Include="..\scripts\postbuild.cmd" /> + <None Include="..\scripts\prebuild.cmd" /> + <None Include="..\scripts\revision.vbs" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/devtools/create_project/msvc11/create_project.vcxproj.filters b/devtools/create_project/msvc11/create_project.vcxproj.filters new file mode 100644 index 0000000000..b4f0b18774 --- /dev/null +++ b/devtools/create_project/msvc11/create_project.vcxproj.filters @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{2e3580c8-ec3a-4c81-8351-b668c668db2a}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{31aaf58c-d3cb-4ed6-8eca-163b4a9b31a6}</UniqueIdentifier> + </Filter> + <Filter Include="scripts"> + <UniqueIdentifier>{f980f6fb-41b6-4161-b035-58b200c85cad}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\codeblocks.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\create_project.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\msvc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\msbuild.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\visualstudio.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\xcode.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\config.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\codeblocks.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\create_project.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\msvc.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\msbuild.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\visualstudio.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\xcode.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="..\scripts\prebuild.cmd"> + <Filter>scripts</Filter> + </None> + <None Include="..\scripts\revision.vbs"> + <Filter>scripts</Filter> + </None> + <None Include="..\scripts\postbuild.cmd"> + <Filter>scripts</Filter> + </None> + <None Include="..\scripts\installer.vbs"> + <Filter>scripts</Filter> + </None> + </ItemGroup> +</Project> diff --git a/devtools/create_project/scripts/postbuild.cmd b/devtools/create_project/scripts/postbuild.cmd index dd52c0217c..8b70ec3dd8 100644 --- a/devtools/create_project/scripts/postbuild.cmd +++ b/devtools/create_project/scripts/postbuild.cmd @@ -24,7 +24,10 @@ echo Copying data files echo.
xcopy /F /Y "%~4/lib/%~3/SDL.dll" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~4/lib/%~3/freetype6.dll" "%~2" 1>NUL 2>&1
xcopy /F /Y "%~1/backends/vkeybd/packs/vkeybd_default.zip" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~1/gui/themes/translations.dat" "%~2" 1>NUL 2>&1
+
if "%~5"=="0" goto done
diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp index a0fd239db4..de2df96d78 100644 --- a/devtools/create_project/visualstudio.cpp +++ b/devtools/create_project/visualstudio.cpp @@ -103,6 +103,9 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: outputConfiguration(project, setup, libraries, "Release", "x64", "64", false); } else { + bool enableLanguageExtensions = find(_enableLanguageExtensions.begin(), _enableLanguageExtensions.end(), name) != _enableLanguageExtensions.end(); + bool disableEditAndContinue = find(_disableEditAndContinue.begin(), _disableEditAndContinue.end(), name) != _disableEditAndContinue.end(); + std::string warnings = ""; if (warningsIterator != _projectWarnings.end()) for (StringList::const_iterator i = warningsIterator->second.begin(); i != warningsIterator->second.end(); ++i) @@ -110,9 +113,8 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: std::string toolConfig; toolConfig = (!warnings.empty() ? "DisableSpecificWarnings=\"" + warnings + "\"" : ""); - toolConfig += (name == "tinsel" ? "DebugInformationFormat=\"3\" " : ""); - toolConfig += (name == "sword25" ? "DisableLanguageExtensions=\"false\" " : ""); - toolConfig += (name == "grim" ? "DisableLanguageExtensions=\"false\" " : ""); + toolConfig += (disableEditAndContinue ? "DebugInformationFormat=\"3\" " : ""); + toolConfig += (enableLanguageExtensions ? "DisableLanguageExtensions=\"false\" " : ""); // Win32 outputConfiguration(setup, project, toolConfig, "Debug", "Win32", ""); @@ -144,7 +146,7 @@ void VisualStudioProvider::createProjectFile(const std::string &name, const std: void VisualStudioProvider::outputConfiguration(std::ostream &project, const BuildSetup &setup, const std::string &libraries, const std::string &config, const std::string &platform, const std::string &props, const bool isWin32) { project << "\t\t<Configuration Name=\"" << config << "|" << platform << "\" ConfigurationType=\"1\" InheritedPropertySheets=\".\\" << setup.projectDescription << "_" << config << props << ".vsprops\">\n" - "\t\t\t<Tool\tName=\"VCCLCompilerTool\" DisableLanguageExtensions=\"false\" />\n" + "\t\t\t<Tool\tName=\"VCCLCompilerTool\" DisableLanguageExtensions=\"false\" DebugInformationFormat=\"3\" />\n" "\t\t\t<Tool\tName=\"VCLinkerTool\" OutputFile=\"$(OutDir)/" << setup.projectName << ".exe\"\n" "\t\t\t\tAdditionalDependencies=\"" << libraries << "\"\n" "\t\t\t/>\n"; diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp index eb51ab3da1..a9b8e7a752 100644 --- a/devtools/create_project/xcode.cpp +++ b/devtools/create_project/xcode.cpp @@ -20,6 +20,7 @@ * */ +#include "config.h" #include "xcode.h" #include <fstream> @@ -86,34 +87,34 @@ XCodeProvider::XCodeProvider(StringList &global_warnings, std::map<std::string, void XCodeProvider::createWorkspace(const BuildSetup &setup) { // Create project folder - std::string workspace = setup.outputDir + '/' + "scummvm.xcodeproj"; + std::string workspace = setup.outputDir + '/' + PROJECT_NAME ".xcodeproj"; #if defined(_WIN32) || defined(WIN32) if (!CreateDirectory(workspace.c_str(), NULL)) if (GetLastError() != ERROR_ALREADY_EXISTS) - error("Could not create folder \"" + setup.outputDir + '/' + "scummvm.xcodeproj\""); + error("Could not create folder \"" + setup.outputDir + '/' + PROJECT_NAME ".xcodeproj\""); #else if (mkdir(workspace.c_str(), 0777) == -1) { if (errno == EEXIST) { // Try to open as a folder (might be a file / symbolic link) DIR *dirp = opendir(workspace.c_str()); if (dirp == NULL) { - error("Could not create folder \"" + setup.outputDir + '/' + "scummvm.xcodeproj\""); + error("Could not create folder \"" + setup.outputDir + '/' + PROJECT_NAME ".xcodeproj\""); } else { // The folder exists, just close the stream and return closedir(dirp); } } else { - error("Could not create folder \"" + setup.outputDir + '/' + "scummvm.xcodeproj\""); + error("Could not create folder \"" + setup.outputDir + '/' + PROJECT_NAME ".xcodeproj\""); } } #endif // Setup global objects setupDefines(setup); - _targets.push_back("ScummVM-iPhone"); - _targets.push_back("ScummVM-OS X"); - _targets.push_back("ScummVM-Simulator"); + _targets.push_back(PROJECT_DESCRIPTION "-iPhone"); + _targets.push_back(PROJECT_DESCRIPTION "-OS X"); + _targets.push_back(PROJECT_DESCRIPTION "-Simulator"); setupCopyFilesBuildPhase(); setupFrameworksBuildPhase(); @@ -153,9 +154,9 @@ void XCodeProvider::createProjectFile(const std::string &, const std::string &, // Main Project file ////////////////////////////////////////////////////////////////////////// void XCodeProvider::ouputMainProjectFile(const BuildSetup &setup) { - std::ofstream project((setup.outputDir + '/' + "scummvm.xcodeproj" + '/' + "project.pbxproj").c_str()); + std::ofstream project((setup.outputDir + '/' + PROJECT_NAME ".xcodeproj" + '/' + "project.pbxproj").c_str()); if (!project) - error("Could not open \"" + setup.outputDir + '/' + "scummvm.xcodeproj" + '/' + "project.pbxproj\" for writing"); + error("Could not open \"" + setup.outputDir + '/' + PROJECT_NAME ".xcodeproj" + '/' + "project.pbxproj\" for writing"); ////////////////////////////////////////////////////////////////////////// // Header @@ -201,18 +202,38 @@ void XCodeProvider::writeFileListToProject(const FileNode &dir, std::ofstream &p // Init root group _groups.comment = "PBXGroup"; - Object *group = new Object(this, "PBXGroup", "PBXGroup", "PBXGroup", "", ""); - //Property children; - //children.flags = SettingsAsList; - //group->properties["children"] = children; - group->addProperty("children", "", "", SettingsNoValue|SettingsAsList); + // Create group + std::string name = getLastPathComponent(dir.name); + Object *group = new Object(this, "PBXGroup_" + name , "PBXGroup", "PBXGroup", "", name); + // List of children + Property children; + children.hasOrder = true; + children.flags = SettingsAsList; + + group->addProperty("name", name, "", SettingsNoValue|SettingsQuoteVariable); group->addProperty("sourceTree", "<group>", "", SettingsNoValue|SettingsQuoteVariable); - _groups.add(group); + int order = 0; + for (FileNode::NodeList::const_iterator i = dir.children.begin(); i != dir.children.end(); ++i) { + const FileNode *node = *i; + + std::string id = "FileReference_" + node->name; + FileProperty property = FileProperty(node->name, node->name, node->name, "<group>"); + + ADD_SETTING_ORDER_NOVALUE(children, getHash(id), node->name, order++); + ADD_BUILD_FILE(id, node->name, node->name + " in Sources"); + ADD_FILE_REFERENCE(node->name, property); - // TODO Add files + // Process child nodes + if (!node->children.empty()) + writeFileListToProject(*node, projectFile, indentation + 1, duplicate, objPrefix + node->name + '_', filePrefix + node->name + '/'); + } + + group->properties["children"] = children; + + _groups.add(group); } ////////////////////////////////////////////////////////////////////////// @@ -392,8 +413,8 @@ void XCodeProvider::setupNativeTarget() { target->addProperty("dependencies", "", "", SettingsNoValue|SettingsAsList); target->addProperty("name", _targets[i], "", SettingsNoValue|SettingsQuoteVariable); - target->addProperty("productName", "scummvm", "", SettingsNoValue); - target->addProperty("productReference", getHash("PBXFileReference_ScummVM.app_" + _targets[i]), "ScummVM.app", SettingsNoValue); + target->addProperty("productName", PROJECT_NAME, "", SettingsNoValue); + target->addProperty("productReference", getHash("PBXFileReference_" PROJECT_DESCRIPTION ".app_" + _targets[i]), PROJECT_DESCRIPTION ".app", SettingsNoValue); target->addProperty("productType", "com.apple.product-type.application", "", SettingsNoValue|SettingsQuoteVariable); _nativeTarget.add(target); @@ -405,7 +426,7 @@ void XCodeProvider::setupProject() { Object *project = new Object(this, "PBXProject", "PBXProject", "PBXProject", "", "Project object"); - project->addProperty("buildConfigurationList", getHash("XCConfigurationList_scummvm"), "Build configuration list for PBXProject \"scummvm\"", SettingsNoValue); + project->addProperty("buildConfigurationList", getHash("XCConfigurationList_scummvm"), "Build configuration list for PBXProject \"" PROJECT_NAME "\"", SettingsNoValue); project->addProperty("compatibilityVersion", "Xcode 3.2", "", SettingsNoValue|SettingsQuoteVariable); project->addProperty("developmentRegion", "English", "", SettingsNoValue); project->addProperty("hasScannedForEncodings", "1", "", SettingsNoValue); @@ -495,8 +516,8 @@ void XCodeProvider::setupResourcesBuildPhase() { } // Add custom files depending on the target - if (_targets[i] == "ScummVM-OS X") { - files.settings[getHash("PBXResources_scummvm.icns")] = Setting("", "scummvm.icns in Resources", SettingsNoValue, 0, 6); + if (_targets[i] == PROJECT_DESCRIPTION "-OS X") { + files.settings[getHash("PBXResources_" PROJECT_NAME ".icns")] = Setting("", PROJECT_NAME ".icns in Resources", SettingsNoValue, 0, 6); // Remove 2 iphone icon files files.settings.erase(getHash("PBXResources_Default.png")); @@ -526,7 +547,7 @@ void XCodeProvider::setupBuildConfiguration() { // ****************************************/ // Debug - Object *iPhone_Debug_Object = new Object(this, "XCBuildConfiguration_ScummVM-iPhone_Debug", _targets[0] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); + Object *iPhone_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Debug", _targets[0] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); Property iPhone_Debug; ADD_SETTING_QUOTE(iPhone_Debug, "ARCHS", "$(ARCHS_UNIVERSAL_IPHONE_OS)"); ADD_SETTING_QUOTE(iPhone_Debug, "CODE_SIGN_IDENTITY", "iPhone Developer"); @@ -558,7 +579,7 @@ void XCodeProvider::setupBuildConfiguration() { ADD_SETTING_LIST(iPhone_Debug, "LIBRARY_SEARCH_PATHS", iPhone_LibPaths, SettingsAsList, 5); ADD_SETTING(iPhone_Debug, "ONLY_ACTIVE_ARCH", "YES"); ADD_SETTING(iPhone_Debug, "PREBINDING", "NO"); - ADD_SETTING(iPhone_Debug, "PRODUCT_NAME", "ScummVM"); + ADD_SETTING(iPhone_Debug, "PRODUCT_NAME", PROJECT_DESCRIPTION); ADD_SETTING_QUOTE(iPhone_Debug, "PROVISIONING_PROFILE", "EF590570-5FAC-4346-9071-D609DE2B28D8"); ADD_SETTING_QUOTE_VAR(iPhone_Debug, "PROVISIONING_PROFILE[sdk=iphoneos*]", ""); ADD_SETTING(iPhone_Debug, "SDKROOT", "iphoneos4.0"); @@ -568,7 +589,7 @@ void XCodeProvider::setupBuildConfiguration() { iPhone_Debug_Object->properties["buildSettings"] = iPhone_Debug; // Release - Object *iPhone_Release_Object = new Object(this, "XCBuildConfiguration_ScummVM-iPhone_Release", _targets[0] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); + Object *iPhone_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Release", _targets[0] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); Property iPhone_Release(iPhone_Debug); ADD_SETTING(iPhone_Release, "GCC_OPTIMIZATION_LEVEL", "3"); ADD_SETTING(iPhone_Release, "COPY_PHASE_STRIP", "YES"); @@ -586,7 +607,7 @@ void XCodeProvider::setupBuildConfiguration() { ****************************************/ // Debug - Object *scummvm_Debug_Object = new Object(this, "XCBuildConfiguration_scummvm_Debug", "scummvm", "XCBuildConfiguration", "PBXProject", "Debug"); + Object *scummvm_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_NAME "_Debug", PROJECT_NAME, "XCBuildConfiguration", "PBXProject", "Debug"); Property scummvm_Debug; ADD_SETTING(scummvm_Debug, "ALWAYS_SEARCH_USER_PATHS", "NO"); ADD_SETTING_QUOTE(scummvm_Debug, "ARCHS", "$(ARCHS_STANDARD_32_BIT)"); @@ -623,7 +644,7 @@ void XCodeProvider::setupBuildConfiguration() { scummvm_Debug_Object->properties["buildSettings"] = scummvm_Debug; // Release - Object *scummvm_Release_Object = new Object(this, "XCBuildConfiguration_scummvm_Release", "scummvm", "XCBuildConfiguration", "PBXProject", "Release"); + Object *scummvm_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_NAME "_Release", PROJECT_NAME, "XCBuildConfiguration", "PBXProject", "Release"); Property scummvm_Release(scummvm_Debug); REMOVE_SETTING(scummvm_Release, "GCC_C_LANGUAGE_STANDARD"); // Not sure why we remove that, or any of the other warnings REMOVE_SETTING(scummvm_Release, "GCC_WARN_ABOUT_RETURN_TYPE"); @@ -641,7 +662,7 @@ void XCodeProvider::setupBuildConfiguration() { ****************************************/ // Debug - Object *scummvmOSX_Debug_Object = new Object(this, "XCBuildConfiguration_ScummVM-OSX_Debug", _targets[1] /* ScummVM-OS X */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); + Object *scummvmOSX_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Debug", _targets[1] /* ScummVM-OS X */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); Property scummvmOSX_Debug; ADD_SETTING_QUOTE(scummvmOSX_Debug, "ARCHS", "$(NATIVE_ARCH)"); ADD_SETTING(scummvmOSX_Debug, "COMPRESS_PNG_FILES", "NO"); @@ -687,13 +708,13 @@ void XCodeProvider::setupBuildConfiguration() { scummvmOSX_LdFlags.push_back("-lz"); ADD_SETTING_LIST(scummvmOSX_Debug, "OTHER_LDFLAGS", scummvmOSX_LdFlags, SettingsAsList, 5); ADD_SETTING(scummvmOSX_Debug, "PREBINDING", "NO"); - ADD_SETTING(scummvmOSX_Debug, "PRODUCT_NAME", "ScummVM"); + ADD_SETTING(scummvmOSX_Debug, "PRODUCT_NAME", PROJECT_DESCRIPTION); scummvmOSX_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue); scummvmOSX_Debug_Object->properties["buildSettings"] = scummvmOSX_Debug; // Release - Object *scummvmOSX_Release_Object = new Object(this, "XCBuildConfiguration_ScummVMOSX_Release", _targets[1] /* ScummVM-OS X */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); + Object *scummvmOSX_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Release", _targets[1] /* ScummVM-OS X */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); Property scummvmOSX_Release(scummvmOSX_Debug); ADD_SETTING(scummvmOSX_Release, "COPY_PHASE_STRIP", "YES"); REMOVE_SETTING(scummvmOSX_Release, "GCC_DYNAMIC_NO_PIC"); @@ -711,20 +732,22 @@ void XCodeProvider::setupBuildConfiguration() { ****************************************/ // Debug - Object *scummvmSimulator_Debug_Object = new Object(this, "XCBuildConfiguration_ScummVM-Simulator_Debug", _targets[2] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); + Object *scummvmSimulator_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-Simulator_Debug", _targets[2] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Debug"); Property scummvmSimulator_Debug(iPhone_Debug); ADD_SETTING_QUOTE(scummvmSimulator_Debug, "FRAMEWORK_SEARCH_PATHS", "$(inherited)"); ADD_SETTING_LIST(scummvmSimulator_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, SettingsNoQuote|SettingsAsList, 5); ADD_SETTING(scummvmSimulator_Debug, "SDKROOT", "iphonesimulator3.2"); + ADD_SETTING_QUOTE(scummvmSimulator_Debug, "VALID_ARCHS", "i386 x86_64"); REMOVE_SETTING(scummvmSimulator_Debug, "TARGETED_DEVICE_FAMILY"); scummvmSimulator_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue); scummvmSimulator_Debug_Object->properties["buildSettings"] = scummvmSimulator_Debug; // Release - Object *scummvmSimulator_Release_Object = new Object(this, "XCBuildConfiguration_ScummVM-Simulator_Release", _targets[2] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); + Object *scummvmSimulator_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-Simulator_Release", _targets[2] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Release"); Property scummvmSimulator_Release(scummvmSimulator_Debug); ADD_SETTING(scummvmSimulator_Release, "COPY_PHASE_STRIP", "YES"); + ADD_SETTING(scummvmSimulator_Release, "GCC_OPTIMIZATION_LEVEL", "3"); REMOVE_SETTING(scummvmSimulator_Release, "GCC_DYNAMIC_NO_PIC"); ADD_SETTING(scummvmSimulator_Release, "WRAPPER_EXTENSION", "app"); @@ -870,7 +893,9 @@ std::string XCodeProvider::writeProperty(const std::string &variable, Property & std::string XCodeProvider::writeSetting(const std::string &variable, std::string value, std::string comment, int flags, int indent) const { return writeSetting(variable, Setting(value, comment, flags, indent)); } -// Heavily modified (not in a good way) function, imported from QMake XCode project generator (licensed under the QT license) + +// Heavily modified (not in a good way) function, imported from the QMake +// XCode project generator pbuilder_pbx.cpp, writeSettings() (under LGPL 2.1) std::string XCodeProvider::writeSetting(const std::string &variable, const Setting &setting) const { std::string output; const std::string quote = (setting.flags & SettingsNoQuote) ? "" : "\""; @@ -892,7 +917,7 @@ std::string XCodeProvider::writeSetting(const std::string &variable, const Setti for (unsigned int i = 0, count = 0; i < setting.entries.size(); ++i) { std::string value = setting.entries.at(i).value; - if(!value.empty()) { + if (!value.empty()) { if (count++ > 0) output += "," + newline; diff --git a/devtools/create_teenagent/create_teenagent.cpp b/devtools/create_teenagent/create_teenagent.cpp index 9551acbaea..fc2ba4da0e 100644 --- a/devtools/create_teenagent/create_teenagent.cpp +++ b/devtools/create_teenagent/create_teenagent.cpp @@ -106,7 +106,5 @@ int main(int argc, char *argv[]) { fclose(fin); fclose(fout); - fprintf(stderr, "please run \"gzip -n %s\"\n", dat_name); - return 0; } 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..3075835bd9 --- /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 3 // 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/module.mk b/devtools/create_tony/module.mk new file mode 100644 index 0000000000..6ff919032b --- /dev/null +++ b/devtools/create_tony/module.mk @@ -0,0 +1,10 @@ +MODULE := devtools/create_tony + +MODULE_OBJS := \ + create_tony.o + +# Set the name of the executable +TOOL_EXECUTABLE := create_tony + +# Include common rules +include $(srcdir)/rules.mk diff --git a/devtools/create_tony/staticdata.h b/devtools/create_tony/staticdata.h new file mode 100644 index 0000000000..fff977d8dc --- /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, + 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 _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, + 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, 17, 26, 22, 26, + 26, 26, 17, 26, 26, 26, 26, 26, 26, 17, + 26, 22, 26, 26, 19, 26, 26, 26, 26, 26, + 15, 26, 26, 26, 26, 26, 26, 26, 17, 26, + 22, 26, 26, 26, 17, 26, 26, 26, 26, 26, + 26, 17, 26, 22, 26, 26, 19, 26, 26, 26, + 26, 26, 15, 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, 17, 26, 22, 26, + 26, 26, 17, 26, 26, 26, 26, 26, 26, 17, + 26, 22, 26, 26, 19, 26, 26, 26, 26, 26, + 15, 26, 26, 26, 26, 26, 26, 26, 17, 26, + 22, 26, 26, 26, 17, 26, 26, 26, 26, 26, + 26, 17, 26, 22, 26, 26, 19, 26, 26, 26, + 26, 26, 15, 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, + 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, 100, 67, + -1, 60, -1, -1, 66, 92, -1, -1, -1, 88, + -1, -1, -1, -1, 100, 85, -1, 61, -1, -1, + -1, 92, 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, + 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, 18, 26, + 26, 26, 26, 26, 26, 21, 26, 26, 26, 19, + 26, 26, 26, 26, 18, 20, 26, 26, 26, 26, + 26, 21, 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, + 91, 137, 131, 93, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 128, -1, 91, 137, 131, 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, 133, -1, -1, 70, 71, 86, -1, + 129, 135, 87, 73, 127, 134, -1, 136, -1, 89, + 138, 139, -1, -1, 79, -1, 130, 140, 141, -1, + 82, 132, -1, -1, -1, 133, -1, -1, 70, -1, + 86, 63, 129, 135, 87, -1, 127, 134, -1, 136, + -1, 89, 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, + 15, 24, 21, 21, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 15, 26, 15, 24, 21, 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, 18, 26, 26, 17, 26, 22, 26, + 22, 17, 17, 26, 17, 19, 26, 23, 26, 17, + 17, 22, 26, 26, 19, 26, 18, 16, 16, 26, + 15, 16, 26, 26, 26, 18, 26, 26, 17, 26, + 22, 26, 22, 17, 17, 26, 17, 19, 26, 23, + 26, 17, 17, 22, 26, 26, 19, 26, 18, 16, + 16, 26, 15, 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, + 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, 0, 0, 0, -1, 70, -1, + 86, 63, 4, 4, 87, -1, 8, 8, 8, -1, + -1, 89, 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, + 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, 17, 26, 22, 26, + 26, 26, 17, 26, 26, 26, 26, 26, 26, 17, + 26, 22, 26, 26, 19, 26, 26, 26, 26, 26, + 15, 26, 26, 26, 17, 17, 17, 26, 17, 26, + 22, 26, 15, 15, 17, 26, 16, 16, 16, 26, + 26, 17, 19, 19, 19, 26, 19, 26, 26, 15, + 26, 15, 15, 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, + 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, 142, -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 _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, + 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, 17, 26, 22, 26, + 26, 26, 17, 26, 26, 26, 26, 26, 26, 17, + 26, 22, 26, 26, 19, 26, 26, 26, 26, 26, + 15, 26, 26, 24, 26, 26, 26, 26, 17, 26, + 22, 26, 26, 26, 17, 26, 26, 26, 26, 26, + 26, 17, 26, 22, 26, 26, 19, 26, 26, 26, + 26, 26, 15, 26, 26, 26}; + +#endif diff --git a/devtools/credits.pl b/devtools/credits.pl index b3a506125f..e04e35d3be 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -48,7 +48,7 @@ if ($mode eq "") { $Text::Wrap::unexpand = 0; if ($mode eq "TEXT") { $Text::Wrap::columns = 78; - $max_name_width = 21; # The maximal width of a name. + $max_name_width = 23; # The maximal width of a name. } elsif ($mode eq "CPP") { $Text::Wrap::columns = 48; # Approx. } @@ -69,6 +69,7 @@ sub html_entities_to_ascii { # å -> aa # & -> & # ł -> l + # ś -> s # Š -> S $text =~ s/á/a/g; $text =~ s/é/e/g; @@ -76,6 +77,7 @@ sub html_entities_to_ascii { $text =~ s/ó/o/g; $text =~ s/ø/o/g; $text =~ s/ł/l/g; + $text =~ s/ś/s/g; $text =~ s/Š/S/g; $text =~ s/å/aa/g; @@ -101,6 +103,7 @@ sub html_entities_to_cpp { $text =~ s/ó/\\363/g; $text =~ s/ø/\\370/g; $text =~ s/ł/l/g; + $text =~ s/ś/s/g; $text =~ s/Š/S/g; $text =~ s/å/\\345/g; @@ -356,6 +359,9 @@ sub add_person { my $min_name_width = length $desc > 0 ? $max_name_width : 0; $name = $nick if $name eq ""; $name = html_entities_to_ascii($name); + if (length $name > $max_name_width) { + print STDERR "Warning: max_name_width is too small (" . $max_name_width . " < " . (length $name) . " for \"" . $name. "\")\n"; + } $desc = html_entities_to_ascii($desc); $tab = " " x ($section_level * 2 + 1); @@ -550,7 +556,9 @@ begin_credits("Credits"); begin_section("DreamWeb"); add_person("Torbjörn Andersson", "eriktorbjorn", ""); add_person("Bertrand Augereau", "Tramb", ""); + add_person("Filippos Karapetis", "[md5]", ""); add_person("Vladimir Menshakov", "whoozle", "(retired)"); + add_person("Willem Jan Palenstijn", "wjp", ""); end_section(); begin_section("Gob"); @@ -608,6 +616,10 @@ begin_credits("Credits"); add_person("", "peres", ""); end_section(); + begin_section("Pegasus"); + add_person("Matthew Hoops", "clone2727", ""); + end_section(); + begin_section("Queen"); add_person("David Eriksson", "twogood", "(retired)"); add_person("Gregory Montoir", "cyx", "(retired)"); @@ -675,6 +687,12 @@ begin_credits("Credits"); add_person("Joost Peters", "joostp", ""); end_section(); + begin_section("Tony"); + add_person("Arnaud Boutonné", "Strangerke", ""); + add_person("Paul Gilbert", "dreammaster", ""); + add_person("Alyssa Milburn", "fuzzie", ""); + end_section(); + begin_section("Toon"); add_person("Sylvain Dupont", "SylvainTV", ""); end_section(); @@ -692,6 +710,10 @@ begin_credits("Credits"); add_person("Gregory Montoir", "cyx", "(retired)"); end_section(); + begin_section("Wintermute"); + add_person("Einar Johan T. Sømåen", "somaen", ""); + end_section(); + end_section(); @@ -930,9 +952,12 @@ begin_credits("Credits"); begin_section("French"); add_person("Thierry Crozat", "criezy", ""); end_section(); + begin_section("Galician"); + add_person("Santiago G. Sanz", "sgsanz", ""); + end_section(); begin_section("German"); add_person("Simon Sawatzki", "SimSaw", ""); - add_person("Lothar Serra Mari", "Lothar93", ""); + add_person("Lothar Serra Mari", "Lothar93", "(retired)"); end_section(); begin_section("Hungarian"); add_person("Alex Bevilacqua", "", ""); @@ -942,10 +967,10 @@ begin_credits("Credits"); add_person("Matteo Angelino", "Maff", ""); end_section(); begin_section("Norwegian (Bokmål)"); - add_person("Einar Johan T. Sømåen", "", ""); + add_person("Einar Johan Sømåen", "somaen", ""); end_section(); begin_section("Norwegian (Nynorsk)"); - add_person("Einar Johan T. Sømåen", "", ""); + add_person("Einar Johan Sømåen", "somaen", ""); end_section(); begin_section("Polish"); add_person("GrajPoPolsku.pl Team", "", ""); @@ -1059,7 +1084,7 @@ begin_credits("Credits"); # HACK! - $max_name_width = 16; + $max_name_width = 17; begin_section("Special thanks to"); begin_persons(); @@ -1072,6 +1097,7 @@ begin_credits("Credits"); add_person("Ivan Dubrov", "", "For contributing the initial version of the Gobliiins engine"); add_person("Henrik Engqvist", "qvist", "For generously providing hosting for our buildbot, SVN repository, planet and doxygen sites as well as tons of HD space"); add_person("DOSBox Team", "", "For their awesome OPL2 and OPL3 emulator"); + add_person("Yusuke Kamiyamane", "", "For contributing some GUI icons "); add_person("Till Kresslein", "Krest", "For design of modern ScummVM GUI"); add_person("", "Jezar", "For his freeverb filter implementation"); add_person("Jim Leiterman", "", "Various info on his FM-TOWNS/Marty SCUMM ports"); @@ -1082,8 +1108,6 @@ begin_credits("Credits"); add_person("James Woodcock", "", "Soundtrack enhancements"); end_persons(); - add_paragraph("Some icons by Yusuke Kamiyamane"); - add_paragraph( "Tony Warriner and everyone at Revolution Software Ltd. for sharing ". "with us the source of some of their brilliant games, allowing us to ". @@ -1127,6 +1151,22 @@ begin_credits("Credits"); "Broken Sword 2.5 team for providing sources of their engine and their great ". "support."); + add_paragraph( + "Neil Dodwell and David Dew from Creative Reality for providing the source ". + "of Dreamweb and for their tremendous support."); + + add_paragraph( + "Janusz Wiśniewski and Miroslaw Liminowicz from Laboratorium Komputerowe Avalon ". + "for providing full source code for Sołtys and letting us redistribute the game."); + + add_paragraph( + "Jan Nedoma for providing the sources to the Wintermute-engine, and for his ". + "support while porting the engine to ScummVM."); + + add_paragraph( + "Bob Bell, Michel Kripalani, Tommy Yune, from Presto Studios for ". + "providing the source code of The Journeyman Project: Pegasus Prime."); + end_section(); end_credits(); diff --git a/devtools/module.mk b/devtools/module.mk index 95eca50d18..1d682cdf05 100644 --- a/devtools/module.mk +++ b/devtools/module.mk @@ -56,7 +56,7 @@ credits: $(srcdir)/devtools/credits.pl --text > $(srcdir)/AUTHORS # $(srcdir)/devtools/credits.pl --rtf > $(srcdir)/Credits.rtf $(srcdir)/devtools/credits.pl --cpp > $(srcdir)/gui/credits.h - $(srcdir)/devtools/credits.pl --xml-website > $(srcdir)/../../web/trunk/data/credits.xml + $(srcdir)/devtools/credits.pl --xml-website > $(srcdir)/../scummvm-web/data/credits.xml # $(srcdir)/devtools/credits.pl --xml-docbook > $(srcdir)/../../docs/trunk/docbook/credits.xml md5scumm: devtools/md5table$(EXEEXT) diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index eab7cbbcc8..42dcb27d1a 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -540,8 +540,8 @@ freddi3 Freddi Fish 3: The Case of the Stolen Conch Shell freddi4 Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch 4f580a021eee026f3b4589e17d130d78 -1 All All - - - Kirben, sev 14d48c95b43ddeb983254cf6c43851f1 -1 nl All - - - adutchguy, daniel9 + 3b832f4a90740bf22e9b8ed42ca0128c -1 gb All HE 99 - - Reckless d74122362a77ec24525fdd50297dfd82 -1 fr Mac - - - ThierryFR - 3b832f4a90740bf22e9b8ed42ca0128c -1 gb Windows HE 99 - - Reckless 07b810e37be7489263f7bc7627d4765d -1 ru Windows unenc Unencrypted - sev a336134914eaab4892d35625aa15ad1d -1 ru Windows HE 99 - - George Kormendi b5298a5c15ffbe8b381d51ea4e26d35c -1 de All HE 99 - - Joachim Eberhard @@ -575,6 +575,7 @@ maze Freddi Fish and Luther's Maze Madness 4f04b321a95d4315ce6d65f8e1dd0368 -1 us All HE 80 - - Kirben cd424f143a141bc59226ad83a6e40f51 -1 nl All HE 98.5 - - daniel9, sugarcube 4dbff3787aedcd96b0b325f2d92d7ad9 -1 us All HE 100 Updated - Kirben + 4522564b3c31aaf218b6a96826a549fd -1 us Windows HE 99 - - legoking831 water Freddi Fish and Luther's Water Worries 4ba37f835be11a59d969f90f272f575b -1 us All HE 80 - - Kirben @@ -590,6 +591,7 @@ FreddisFunShop Freddi Fish's One-Stop Fun Shop catalog Humongous Interactive Catalog 11e6e244078ff09b0f3832e35420e0a7 -1 en Windows - Demo - khalek, sev 037385a953789190298494d92b89b3d0 -1 en Windows HE 72 Demo - khalek, sev + f7635a0e2ab82c9a0f9ace5f232a488f -1 en Windows HE 72 Demo - Kirben a56e8d9d4281c53c3f63c9bd22a59e21 10978342 en All HE CUP Preview George Kormendi 74da3494fbe1a7d20213b0afe0954755 10841544 fr All HE CUP Preview - George Kormendi 4c4820518e16e1a0e3616a3b021a04f3 10927456 de All HE CUP Preview - Kirben @@ -631,9 +633,9 @@ pajama Pajama Sam 1: No Need to Hide When It's Dark Outside a095e33061606d231ff37dca4c64c8ac -1 de All HE 99 - - Joachim Eberhard 898eaa21f79cf8d4f08db856244689ff 66505 en Windows HE 99 Updated - Joachim Eberhard 37aed3f91c1ef959e0bd265f9b13781f -1 us All HE 100 Updated - Kirben - 782393c5934ecd0b536eaf5fd541bd26 -1 en Windows HE 100 Updated - Jonathan 4aa93cb30e485b728504ba3a693f12bf -1 ru Windows HE 100 - - sev - c225bec1b6c0798a2b8c89ac226dc793 -1 en Wii HE 100 - - sanguinehearts + 782393c5934ecd0b536eaf5fd541bd26 -1 en Windows HE 101 Updated - Jonathan + c225bec1b6c0798a2b8c89ac226dc793 -1 en Wii HE 101 - - sanguinehearts f237bf8a5ef9af78b2a6a4f3901da341 18354 en All - Demo - khalek, sev 7f945525abcd48015adf1632637a44a1 -1 fr All - Demo - Kirben @@ -775,6 +777,7 @@ puttzoo Putt-Putt Saves the Zoo f3d55aea441e260e9e9c7d2a187097e0 14337 en Windows - Demo - khalek 65fa23d6884e8ca23d5d2406d70de7e8 -1 fr Windows - Demo - gist974 2a446817ffcabfef8716e0c456ecaf81 -1 de Windows - Demo - Joachim Eberhard + 4e859d3ef1e146b41e7d93c35cd6cc62 -1 en iOS HE 100 Lite - clone2727 PuttTime Putt-Putt Travels Through Time fcb78ebecab2757264c590890c319cc5 -1 nl All HE 85 - - adutchguy, daniel9 @@ -801,6 +804,7 @@ balloon Putt-Putt and Pep's Balloon-O-Rama 145bd3373574feb668cc2eea2ec6cf86 -1 ru Windows HE 80 - - sev 27b2ef1653089fe5b897d9cc89ce784f -1 ru Windows HE 80 - - George Kormendi 2232b0b9411575b1f9961713ebc9de61 -1 All Windows HE 80 - ES and NL exiltd (ES), Ben Castricum (NL) + a22af0ad0e3126d19d22707b0267a37d -1 nl Windows HE 80 - - Ben Castricum a56a05c6b865b9956639f8c51269e5ab -1 nl Mac HE 80 - - Ben Castricum d7b247c26bf1f01f8f7daf142be84de3 -1 en Windows HE 99 Updated - iziku 8e3241ddd6c8dadf64305e8740d45e13 -1 en All HE 100 Updated - Kirben @@ -838,7 +842,8 @@ spyfox SPY Fox 1: Dry Cereal 72ac6bc980d5101c2142189d746bd62f -1 ru Windows HE 99 - - sev 3de99ef0523f8ca7958faa3afccd035a -1 us All HE 100 Updated - Kirben 23394c8d29cc63c61313959431a12476 -1 en Windows HE 100 Updated - Jonathan - 50b831f11b8c4b83784cf81f4dcc69ea -1 en Wii HE 100 - - sanguinehearts + 50b831f11b8c4b83784cf81f4dcc69ea -1 en Wii HE 101 - - sanguinehearts + 15878e3bee2e1e759184abee98589eaa -1 en iOS HE 100 - - clone2727 53e94115b55dd51d4b8ff0871aa1df1e 20103 en All - Demo - khalek, sev fbdd947d21e8f5bac6d6f7a316af1c5a 15693 en All - Demo - sev |