LURE: Move the engine options into the MetaEngine subclass

This commit is contained in:
Cameron Cawley 2022-11-03 21:05:39 +00:00 committed by Eugene Sandulenko
parent ca29054d6b
commit 0a3d7be2e8
4 changed files with 31 additions and 27 deletions

View File

@ -1,2 +1,3 @@
engines/lure/lure.cpp
engines/lure/detection.cpp
engines/lure/metaengine.cpp

View File

@ -33,28 +33,6 @@ static const PlainGameDescriptor lureGames[] = {
{nullptr, nullptr}
};
#ifdef USE_TTS
#define GAMEOPTION_TTS_NARRATOR GUIO_GAMEOPTIONS1
static const ADExtraGuiOptionsMap optionsList[] = {
{
GAMEOPTION_TTS_NARRATOR,
{
_s("TTS Narrator"),
_s("Use TTS to read the descriptions (if TTS is available)"),
"tts_narrator",
false,
0,
0
}
},
AD_EXTRA_GUI_OPTIONS_TERMINATOR
};
#endif
static const DebugChannelDef debugFlagList[] = {
{Lure::kLureDebugScripts, "scripts", "Scripts debugging"},
{Lure::kLureDebugAnimations, "animations", "Animations debugging"},
@ -266,11 +244,7 @@ static const LureGameDescription gameDescriptions[] = {
class LureMetaEngineDetection : public AdvancedMetaEngineDetection {
public:
LureMetaEngineDetection() : AdvancedMetaEngineDetection(Lure::gameDescriptions, sizeof(Lure::LureGameDescription), lureGames
#ifdef USE_TTS
, optionsList
#endif
) {
LureMetaEngineDetection() : AdvancedMetaEngineDetection(Lure::gameDescriptions, sizeof(Lure::LureGameDescription), lureGames) {
_md5Bytes = 1024;
// Use kADFlagUseExtraAsHint to distinguish between EGA and VGA versions

View File

@ -39,6 +39,8 @@ struct LureGameDescription {
uint32 features;
};
#define GAMEOPTION_TTS_NARRATOR GUIO_GAMEOPTIONS1
} // End of namespace Lure
#endif // LURE_DETECTION_H

View File

@ -21,6 +21,7 @@
#include "common/savefile.h"
#include "common/system.h"
#include "common/translation.h"
#include "engines/advancedDetector.h"
@ -29,6 +30,26 @@
namespace Lure {
#ifdef USE_TTS
static const ADExtraGuiOptionsMap optionsList[] = {
{
GAMEOPTION_TTS_NARRATOR,
{
_s("TTS Narrator"),
_s("Use TTS to read the descriptions (if TTS is available)"),
"tts_narrator",
false,
0,
0
}
},
AD_EXTRA_GUI_OPTIONS_TERMINATOR
};
#endif
uint32 LureEngine::getFeatures() const { return _gameDescription->features; }
Common::Language LureEngine::getLanguage() const { return _gameDescription->desc.language; }
Common::Platform LureEngine::getPlatform() const { return _gameDescription->desc.platform; }
@ -56,6 +77,12 @@ public:
return "lure";
}
#ifdef USE_TTS
const ADExtraGuiOptionsMap *getAdvancedExtraGuiOptions() const override {
return Lure::optionsList;
}
#endif
bool hasFeature(MetaEngineFeature f) const override;
Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override;