diff options
author | Jaromir Wysoglad | 2019-07-15 08:23:49 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | 448db9f4321f5854385e1726284d2ba35c76866f (patch) | |
tree | eea91b3beffe5a0e066062c72e2cdc30e8e1b48a | |
parent | df008c12908c7b4b6d4841821d31b9b6fd9be622 (diff) | |
download | scummvm-rg350-448db9f4321f5854385e1726284d2ba35c76866f.tar.gz scummvm-rg350-448db9f4321f5854385e1726284d2ba35c76866f.tar.bz2 scummvm-rg350-448db9f4321f5854385e1726284d2ba35c76866f.zip |
SUPERNOVA: Make improved mode an engine option.
-rw-r--r-- | engines/supernova/detection.cpp | 60 | ||||
-rw-r--r-- | engines/supernova/supernova.cpp | 10 |
2 files changed, 22 insertions, 48 deletions
diff --git a/engines/supernova/detection.cpp b/engines/supernova/detection.cpp index 417d06fcf8..1f5ada00e4 100644 --- a/engines/supernova/detection.cpp +++ b/engines/supernova/detection.cpp @@ -22,7 +22,9 @@ #include "base/plugins.h" #include "common/file.h" +#include "common/gui_options.h" #include "common/savefile.h" +#include "common/translation.h" #include "common/system.h" #include "graphics/thumbnail.h" #include "engines/advancedDetector.h" @@ -31,11 +33,23 @@ #define GAMEOPTION_IMPROVED GUIO_GAMEOPTIONS1 +static const ADExtraGuiOptionsMap optionsList[] = { + { + GAMEOPTION_IMPROVED, + { + _s("Improved mode"), + _s("Removes some repetitive actions, adds possibility to change verbs by keyboard"), + "improved", + false + } + }, + + AD_EXTRA_GUI_OPTIONS_TERMINATOR +}; + static const PlainGameDescriptor supernovaGames[] = { {"msn1", "Mission Supernova 1"}, {"msn2", "Mission Supernova 2"}, - {"msn1-i", "Mission Supernova 1 improved"}, - {"msn2-i", "Mission Supernova 2 improved"}, {nullptr, nullptr} }; @@ -49,28 +63,10 @@ static const ADGameDescription gameDescriptions[] = { Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, - GUIO1(GUIO_NONE) - }, - { - "msn1", - nullptr, - AD_ENTRY1s("msn_data.000", "f64f16782a86211efa919fbae41e7568", 24163), - Common::EN_ANY, - Common::kPlatformDOS, - ADGF_UNSTABLE, - GUIO1(GUIO_NONE) - }, - { - "msn1-i", - nullptr, - AD_ENTRY1s("msn_data.000", "f64f16782a86211efa919fbae41e7568", 24163), - Common::DE_DEU, - Common::kPlatformDOS, - ADGF_UNSTABLE, GUIO1(GAMEOPTION_IMPROVED) }, { - "msn1-i", + "msn1", nullptr, AD_ENTRY1s("msn_data.000", "f64f16782a86211efa919fbae41e7568", 24163), Common::EN_ANY, @@ -86,28 +82,10 @@ static const ADGameDescription gameDescriptions[] = { Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, - GUIO1(GUIO_NONE) - }, - { - "msn2", - nullptr, - AD_ENTRY1s("ms2_data.000", "e595610cba4a6d24a763e428d05cc83f", 24805), - Common::EN_ANY, - Common::kPlatformDOS, - ADGF_UNSTABLE, - GUIO1(GUIO_NONE) - }, - { - "msn2-i", - nullptr, - AD_ENTRY1s("ms2_data.000", "e595610cba4a6d24a763e428d05cc83f", 24805), - Common::DE_DEU, - Common::kPlatformDOS, - ADGF_UNSTABLE, GUIO1(GAMEOPTION_IMPROVED) }, { - "msn2-i", + "msn2", nullptr, AD_ENTRY1s("ms2_data.000", "e595610cba4a6d24a763e428d05cc83f", 24805), Common::EN_ANY, @@ -121,7 +99,7 @@ static const ADGameDescription gameDescriptions[] = { class SupernovaMetaEngine: public AdvancedMetaEngine { public: - SupernovaMetaEngine() : AdvancedMetaEngine(Supernova::gameDescriptions, sizeof(ADGameDescription), supernovaGames) { + SupernovaMetaEngine() : AdvancedMetaEngine(Supernova::gameDescriptions, sizeof(ADGameDescription), supernovaGames, optionsList) { // _singleId = "supernova"; } diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp index 7969731276..894cdce180 100644 --- a/engines/supernova/supernova.cpp +++ b/engines/supernova/supernova.cpp @@ -96,14 +96,10 @@ SupernovaEngine::SupernovaEngine(OSystem *syst) _MSPart = 1; else if (ConfMan.get("gameid") == "msn2") _MSPart = 2; - else if (ConfMan.get("gameid") == "msn1-i") { - _MSPart = 1; - _improved = true; - } else if (ConfMan.get("gameid") == "msn2-i") { - _MSPart = 2; - _improved = true; - } else + else _MSPart = 0; + + _improved = ConfMan.getBool("improved"); DebugMan.addDebugChannel(kDebugGeneral, "general", "Supernova general debug channel"); } |