/* 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 . * */ #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 { 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);