mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 05:38:56 +00:00
274 lines
5.9 KiB
C++
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);
|