scummvm/engines/lure/detection.cpp

274 lines
5.9 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 "base/plugins.h"
#include "engines/advancedDetector.h"
#include "common/translation.h"
#include "lure/detection.h"
#include "lure/lure.h"
static const PlainGameDescriptor lureGames[] = {
{"lure", "Lure of the Temptress"},
{nullptr, nullptr}
};
static const DebugChannelDef debugFlagList[] = {
{Lure::kLureDebugScripts, "scripts", "Scripts debugging"},
{Lure::kLureDebugAnimations, "animations", "Animations debugging"},
{Lure::kLureDebugHotspots, "hotspots", "Hotspots debugging"},
{Lure::kLureDebugFights, "fights", "Fights debugging"},
{Lure::kLureDebugSounds, "sounds", "Sounds debugging"},
{Lure::kLureDebugStrings, "strings", "Strings debugging"},
DEBUG_CHANNEL_END
};
namespace Lure {
static const LureGameDescription gameDescriptions[] = {
{
{
"lure",
"VGA",
AD_ENTRY1("disk1.vga", "b2a8aa6d7865813a17a3c636e063572e"),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
#ifdef USE_TTS
GUIO2(GAMEOPTION_TTS_NARRATOR, GAMEOPTION_COPY_PROTECTION)
#else
GUIO1(GAMEOPTION_COPY_PROTECTION)
#endif
},
GF_FLOPPY
},
{ // Konami VGA version. Assembled 11:13:50 on 08/04/92
// Bugreport #11441
{
"lure",
"Konami VGA",
AD_ENTRY1s("disk1.vga", "fbb0fca025579c0eda81d832d1fa5567", 615008),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
#ifdef USE_TTS
GUIO2(GAMEOPTION_TTS_NARRATOR, GAMEOPTION_COPY_PROTECTION)
#else
GUIO1(GAMEOPTION_COPY_PROTECTION)
#endif
},
GF_FLOPPY | GF_KONAMI
},
{ // Konami VGA version. Assembled 09:19:10 on 09/23/92
{
"lure",
"Konami VGA",
AD_ENTRY1s("disk1.vga", "fe11231363593982f76e0a64e988a284", 612352),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
#ifdef USE_TTS
GUIO2(GAMEOPTION_TTS_NARRATOR, GAMEOPTION_COPY_PROTECTION)
#else
GUIO1(GAMEOPTION_COPY_PROTECTION)
#endif
},
GF_FLOPPY | GF_KONAMI
},
{
{
"lure",
"EGA",
AD_ENTRY1("disk1.ega", "e9c9fdd8a19f7910d68e53cb84651273"),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
#ifdef USE_TTS
GUIO2(GAMEOPTION_TTS_NARRATOR, GAMEOPTION_COPY_PROTECTION)
#else
GUIO1(GAMEOPTION_COPY_PROTECTION)
#endif
},
GF_FLOPPY | GF_EGA
},
{
{
"lure",
"VGA",
AD_ENTRY1("disk1.vga", "cf69d5ada228dd74f89046691c16aafb"),
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
{
{
"lure",
"EGA",
AD_ENTRY1("disk1.ega", "b80aced0321f64c58df2c7d3d74dfe79"),
Common::IT_ITA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY | GF_EGA
},
{
{
"lure",
"",
AD_ENTRY1("disk1.vga", "7aa19e444dab1ac7194d9f7a40ffe54a"),
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
{
{
"lure",
"",
AD_ENTRY1("disk1.vga", "894a2c2caeccbad2fc2f4a79a8ee47b0"),
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
{
{
"lure",
"",
AD_ENTRY1("disk1.vga", "1c94475c1bb7e0e88c1757d3b5377e94"),
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
{
{
"lure",
"",
AD_ENTRY1("disk1.vga", "1751145b653959f7a64fe1618d6b97ac"),
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
// Russian OG Edition v1.0
{
{
"lure",
"1.0",
AD_ENTRY1("disk1.vga", "04cdcaa9f0cadca492f7aff0c8adfe06"),
Common::RU_RUS,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
// Russian OG Edition v1.1
{
{
"lure",
"1.1",
AD_ENTRY1("disk1.vga", "3f27adff8e8b279f12aaf3d808e84f02"),
Common::RU_RUS,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GAMEOPTION_COPY_PROTECTION)
},
GF_FLOPPY
},
// Unsupported demo
// Bugreport #11501
{
{
"lure",
MetaEngineDetection::GAME_NOT_IMPLEMENTED, // Reason for being unsupported
AD_ENTRY1s("disk1.vga", "7a6aa0e958450c33b70b664d9f841ad1", 621984),
Common::RU_RUS,
Common::kPlatformDOS,
ADGF_DEMO | ADGF_UNSUPPORTED,
GUIO0()
},
GF_FLOPPY
},
{ AD_TABLE_END_MARKER, 0 }
};
} // End of namespace Lure
class LureMetaEngineDetection : public AdvancedMetaEngineDetection<Lure::LureGameDescription> {
public:
LureMetaEngineDetection() : AdvancedMetaEngineDetection(Lure::gameDescriptions, lureGames) {
_md5Bytes = 1024;
// Use kADFlagUseExtraAsHint to distinguish between EGA and VGA versions
// of italian Lure when their datafiles sit in the same directory.
_flags = kADFlagUseExtraAsHint;
_guiOptions = GUIO1(GUIO_NOSPEECH);
}
const char *getName() const override {
return "lure";
}
const char *getEngineName() const override {
return "Lure of the Temptress";
}
const char *getOriginalCopyright() const override {
return "Lure of the Temptress (C) Revolution";
}
const DebugChannelDef *getDebugChannels() const override {
return debugFlagList;
}
};
REGISTER_PLUGIN_STATIC(LURE_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, LureMetaEngineDetection);