scummvm/engines/touche/detection.cpp
Thierry Crozat 254a63bcf9 TOUCHE: Fix use of utf-8 characters for engine and game names
The engine name in the configure.engine file was reverted to use
only ASCII characters. We cannot know what encoding will be assumed
by the terminal in which we run configure, so using non-ASCII
characters can result in unexpected results.

The engine and game name string literals in the source code were
changed to escape the non-ASCII character since there is no
guarantee that the compiler will assume utf-8 encoding for the
source code  files.
2022-10-18 22:30:18 +01:00

162 lines
4.4 KiB
C++

/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#include "engines/advancedDetector.h"
#include "base/plugins.h"
#include "touche/touche.h"
static const PlainGameDescriptor toucheGames[] = {
{ "touche", "Touch\303\251: The Adventures of the Fifth Musketeer" },
{ 0, 0 }
};
static const DebugChannelDef debugFlagList[] = {
{Touche::kDebugEngine, "Engine", "Engine debug level"},
{Touche::kDebugGraphics, "Graphics", "Graphics debug level"},
{Touche::kDebugResource, "Resource", "Resource debug level"},
{Touche::kDebugOpcodes, "Opcodes", "Opcodes debug level"},
{Touche::kDebugMenu, "Menu", "Menu debug level"},
{Touche::kDebugCharset, "Charset", "Charset debug level"},
DEBUG_CHANNEL_END
};
namespace Touche {
static const ADGameDescription gameDescriptions[] = {
{ // retail version
"touche",
"",
AD_ENTRY1s("touche.dat", "2af0177f8887e3430f345e6b4d8b1414", 26350211),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // retail version - tracker item #2923
"touche",
"",
AD_ENTRY1s("touche.dat", "95967f0b51d2e813e99ca00325098340", 26350190),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // retail version
"touche",
"",
AD_ENTRY1s("touche.dat", "1caa20bb4d4fc2ce8eb867b6610082b3", 26558232),
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // retail version - tracker item #2912
"touche",
"",
AD_ENTRY1s("touche.dat", "be2ae6454b3325e410946f2322547cd4", 26625537),
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // retail version - tracker item #3121
"touche",
"",
AD_ENTRY1s("touche.dat", "64e95ba1decf5a5a60f8fa1840f40c62", 26529523),
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // fan-made translation (http://www.iagtg.net/) - tracker item #2927
"touche",
"",
AD_ENTRY1s("touche.dat", "1f442331d4b327c3488a9f6ffe9bdd25", 26367792),
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // retail version - tracker item #3409
"touche",
"",
AD_ENTRY1s("touche.dat", "42d19a0bef65465109020440a9caa228", 26487370),
Common::PL_POL,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
{ // demo version
"touche",
"Demo",
AD_ENTRY1s("touche.dat", "ddaed436445b2e77294ed19e8ae4aa2c", 8720683),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
AD_TABLE_END_MARKER
};
static const ADFileBasedFallback fileBasedFallback[] = {
{ &gameDescriptions[0], { "touche.dat", 0 } }, // default to english version
{ 0, { 0 } }
};
} // End of namespace Touche
static const char *directoryGlobs[] = {
"database",
0
};
class ToucheMetaEngineDetection : public AdvancedMetaEngineDetection {
public:
ToucheMetaEngineDetection() : AdvancedMetaEngineDetection(Touche::gameDescriptions, sizeof(ADGameDescription), toucheGames) {
_md5Bytes = 4096;
_maxScanDepth = 2;
_directoryGlobs = directoryGlobs;
}
ADDetectedGame fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist, ADDetectedGameExtraInfo **extra) const override {
return detectGameFilebased(allFiles, Touche::fileBasedFallback);
}
const char *getName() const override {
return "touche";
}
const char *getEngineName() const override {
return "Touch\303\251: The Adventures of the Fifth Musketeer";
}
const char *getOriginalCopyright() const override {
return "Touch\303\251: The Adventures of the Fifth Musketeer (C) Clipper Software";
}
const DebugChannelDef *getDebugChannels() const override {
return debugFlagList;
}
};
REGISTER_PLUGIN_STATIC(TOUCHE_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, ToucheMetaEngineDetection);