mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 23:43:34 +00:00
MOHAWK: Add an engine specific option to play the Myst fly by movie
It is disabled by default since the original engine never plays it. When enabled, it is only played when first arriving on Myst.
This commit is contained in:
parent
21317eec72
commit
833b800a32
@ -26,6 +26,7 @@
|
||||
#include "common/savefile.h"
|
||||
#include "common/system.h"
|
||||
#include "common/textconsole.h"
|
||||
#include "common/translation.h"
|
||||
|
||||
#include "mohawk/livingbooks.h"
|
||||
|
||||
@ -160,9 +161,23 @@ static const char *directoryGlobs[] = {
|
||||
0
|
||||
};
|
||||
|
||||
static const ADExtraGuiOptionsMap optionsList[] = {
|
||||
{
|
||||
GAMEOPTION_PLAY_MYST_FLYBY,
|
||||
{
|
||||
_s("Play the Myst fly by movie"),
|
||||
_s("The Myst fly by movie was not played by the original engine."),
|
||||
"playmystflyby",
|
||||
false
|
||||
}
|
||||
},
|
||||
|
||||
AD_EXTRA_GUI_OPTIONS_TERMINATOR
|
||||
};
|
||||
|
||||
class MohawkMetaEngine : public AdvancedMetaEngine {
|
||||
public:
|
||||
MohawkMetaEngine() : AdvancedMetaEngine(Mohawk::gameDescriptions, sizeof(Mohawk::MohawkGameDescription), mohawkGames) {
|
||||
MohawkMetaEngine() : AdvancedMetaEngine(Mohawk::gameDescriptions, sizeof(Mohawk::MohawkGameDescription), mohawkGames, optionsList) {
|
||||
_singleid = "mohawk";
|
||||
_maxScanDepth = 2;
|
||||
_directoryGlobs = directoryGlobs;
|
||||
|
@ -22,6 +22,13 @@
|
||||
|
||||
namespace Mohawk {
|
||||
|
||||
#define GAMEOPTION_PLAY_MYST_FLYBY GUIO_GAMEOPTIONS1
|
||||
|
||||
#define GUI_OPTIONS_MYST GUIO1(GUIO_NOASPECT)
|
||||
#define GUI_OPTIONS_MYST_ME GUIO2(GUIO_NOASPECT, GAMEOPTION_PLAY_MYST_FLYBY)
|
||||
#define GUI_OPTIONS_MYST_DEMO GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
#define GUI_OPTIONS_MYST_MAKING_OF GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
|
||||
static const MohawkGameDescription gameDescriptions[] = {
|
||||
// Myst
|
||||
// English Windows 3.11
|
||||
@ -34,7 +41,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::EN_ANY,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -52,7 +59,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::EN_ANY,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_DEMO | ADGF_UNSTABLE,
|
||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
GUI_OPTIONS_MYST_DEMO
|
||||
},
|
||||
GType_MYST,
|
||||
GF_DEMO,
|
||||
@ -70,7 +77,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::DE_DEU,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -88,7 +95,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::DE_DEU,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -106,7 +113,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::ES_ESP,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -124,7 +131,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::IT_ITA,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -142,7 +149,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::JA_JPN,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -160,7 +167,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::FR_FRA,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -178,7 +185,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::EN_ANY,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
GUI_OPTIONS_MYST_MAKING_OF
|
||||
},
|
||||
GType_MAKINGOF,
|
||||
0,
|
||||
@ -196,7 +203,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::JA_JPN,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
GUI_OPTIONS_MYST_MAKING_OF
|
||||
},
|
||||
GType_MAKINGOF,
|
||||
0,
|
||||
@ -214,7 +221,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::EN_ANY,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST_ME
|
||||
},
|
||||
GType_MYST,
|
||||
GF_ME,
|
||||
@ -232,7 +239,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::DE_DEU,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST_ME
|
||||
},
|
||||
GType_MYST,
|
||||
GF_ME,
|
||||
@ -250,7 +257,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::FR_FRA,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST_ME
|
||||
},
|
||||
GType_MYST,
|
||||
GF_ME,
|
||||
@ -268,7 +275,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||
Common::PL_POL,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST_ME
|
||||
},
|
||||
GType_MYST,
|
||||
GF_ME,
|
||||
@ -2698,7 +2705,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||
Common::UNK_LANG,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST
|
||||
},
|
||||
GType_MYST,
|
||||
0,
|
||||
@ -2713,7 +2720,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||
Common::UNK_LANG,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
||||
GUI_OPTIONS_MYST_MAKING_OF
|
||||
},
|
||||
GType_MAKINGOF,
|
||||
0,
|
||||
@ -2728,7 +2735,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||
Common::UNK_LANG,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_UNSTABLE,
|
||||
GUIO1(GUIO_NOASPECT)
|
||||
GUI_OPTIONS_MYST_ME
|
||||
},
|
||||
GType_MYST,
|
||||
GF_ME,
|
||||
|
@ -66,11 +66,6 @@ MohawkEngine_Myst::MohawkEngine_Myst(OSystem *syst, const MohawkGameDescription
|
||||
DebugMan.addDebugChannel(kDebugHelp, "Help", "Track Help File (HELP) Parsing");
|
||||
DebugMan.addDebugChannel(kDebugCache, "Cache", "Track Resource Cache Accesses");
|
||||
|
||||
// Engine tweaks
|
||||
// Disabling this makes engine behavior as per
|
||||
// original, including bugs, missing bits etc. :)
|
||||
_tweaksEnabled = true;
|
||||
|
||||
_currentCursor = 0;
|
||||
_mainCursor = kDefaultMystCursor;
|
||||
_showResourceRects = false;
|
||||
@ -503,8 +498,9 @@ void MohawkEngine_Myst::changeToStack(uint16 stack, uint16 card, uint16 linkSrcS
|
||||
flyby = "stoneship flyby";
|
||||
break;
|
||||
// Myst Flyby Movie not used in Original Masterpiece Edition Engine
|
||||
// We play it when first arriving on Myst, and if the user has chosen so.
|
||||
case kMystStack:
|
||||
if (_tweaksEnabled)
|
||||
if (ConfMan.getBool("playmystflyby") && card == 4134)
|
||||
flyby = "myst flyby";
|
||||
break;
|
||||
case kMechanicalStack:
|
||||
|
@ -192,7 +192,6 @@ public:
|
||||
MystSoundBlock readSoundBlock(Common::ReadStream *stream) const;
|
||||
void applySoundBlock(const MystSoundBlock &block);
|
||||
|
||||
bool _tweaksEnabled;
|
||||
bool _needsUpdate;
|
||||
bool _needsPageDrop;
|
||||
bool _needsShowMap;
|
||||
|
Loading…
x
Reference in New Issue
Block a user