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
4 changed files with 42 additions and 25 deletions
|
@ -26,6 +26,7 @@
|
||||||
#include "common/savefile.h"
|
#include "common/savefile.h"
|
||||||
#include "common/system.h"
|
#include "common/system.h"
|
||||||
#include "common/textconsole.h"
|
#include "common/textconsole.h"
|
||||||
|
#include "common/translation.h"
|
||||||
|
|
||||||
#include "mohawk/livingbooks.h"
|
#include "mohawk/livingbooks.h"
|
||||||
|
|
||||||
|
@ -160,9 +161,23 @@ static const char *directoryGlobs[] = {
|
||||||
0
|
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 {
|
class MohawkMetaEngine : public AdvancedMetaEngine {
|
||||||
public:
|
public:
|
||||||
MohawkMetaEngine() : AdvancedMetaEngine(Mohawk::gameDescriptions, sizeof(Mohawk::MohawkGameDescription), mohawkGames) {
|
MohawkMetaEngine() : AdvancedMetaEngine(Mohawk::gameDescriptions, sizeof(Mohawk::MohawkGameDescription), mohawkGames, optionsList) {
|
||||||
_singleid = "mohawk";
|
_singleid = "mohawk";
|
||||||
_maxScanDepth = 2;
|
_maxScanDepth = 2;
|
||||||
_directoryGlobs = directoryGlobs;
|
_directoryGlobs = directoryGlobs;
|
||||||
|
|
|
@ -22,6 +22,13 @@
|
||||||
|
|
||||||
namespace Mohawk {
|
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[] = {
|
static const MohawkGameDescription gameDescriptions[] = {
|
||||||
// Myst
|
// Myst
|
||||||
// English Windows 3.11
|
// English Windows 3.11
|
||||||
|
@ -34,7 +41,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::EN_ANY,
|
Common::EN_ANY,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -52,7 +59,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::EN_ANY,
|
Common::EN_ANY,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_DEMO | ADGF_UNSTABLE,
|
ADGF_DEMO | ADGF_UNSTABLE,
|
||||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
GUI_OPTIONS_MYST_DEMO
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_DEMO,
|
GF_DEMO,
|
||||||
|
@ -70,7 +77,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::DE_DEU,
|
Common::DE_DEU,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -88,7 +95,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::DE_DEU,
|
Common::DE_DEU,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -106,7 +113,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::ES_ESP,
|
Common::ES_ESP,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -124,7 +131,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::IT_ITA,
|
Common::IT_ITA,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -142,7 +149,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::JA_JPN,
|
Common::JA_JPN,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -160,7 +167,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::FR_FRA,
|
Common::FR_FRA,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -178,7 +185,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::EN_ANY,
|
Common::EN_ANY,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
GUI_OPTIONS_MYST_MAKING_OF
|
||||||
},
|
},
|
||||||
GType_MAKINGOF,
|
GType_MAKINGOF,
|
||||||
0,
|
0,
|
||||||
|
@ -196,7 +203,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::JA_JPN,
|
Common::JA_JPN,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
GUI_OPTIONS_MYST_MAKING_OF
|
||||||
},
|
},
|
||||||
GType_MAKINGOF,
|
GType_MAKINGOF,
|
||||||
0,
|
0,
|
||||||
|
@ -214,7 +221,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::EN_ANY,
|
Common::EN_ANY,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST_ME
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_ME,
|
GF_ME,
|
||||||
|
@ -232,7 +239,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::DE_DEU,
|
Common::DE_DEU,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST_ME
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_ME,
|
GF_ME,
|
||||||
|
@ -250,7 +257,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::FR_FRA,
|
Common::FR_FRA,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST_ME
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_ME,
|
GF_ME,
|
||||||
|
@ -268,7 +275,7 @@ static const MohawkGameDescription gameDescriptions[] = {
|
||||||
Common::PL_POL,
|
Common::PL_POL,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST_ME
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_ME,
|
GF_ME,
|
||||||
|
@ -2698,7 +2705,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||||
Common::UNK_LANG,
|
Common::UNK_LANG,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
0,
|
0,
|
||||||
|
@ -2713,7 +2720,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||||
Common::UNK_LANG,
|
Common::UNK_LANG,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO2(GUIO_NOASPECT, GUIO_NOLAUNCHLOAD)
|
GUI_OPTIONS_MYST_MAKING_OF
|
||||||
},
|
},
|
||||||
GType_MAKINGOF,
|
GType_MAKINGOF,
|
||||||
0,
|
0,
|
||||||
|
@ -2728,7 +2735,7 @@ static const MohawkGameDescription fallbackDescs[] = {
|
||||||
Common::UNK_LANG,
|
Common::UNK_LANG,
|
||||||
Common::kPlatformWindows,
|
Common::kPlatformWindows,
|
||||||
ADGF_UNSTABLE,
|
ADGF_UNSTABLE,
|
||||||
GUIO1(GUIO_NOASPECT)
|
GUI_OPTIONS_MYST_ME
|
||||||
},
|
},
|
||||||
GType_MYST,
|
GType_MYST,
|
||||||
GF_ME,
|
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(kDebugHelp, "Help", "Track Help File (HELP) Parsing");
|
||||||
DebugMan.addDebugChannel(kDebugCache, "Cache", "Track Resource Cache Accesses");
|
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;
|
_currentCursor = 0;
|
||||||
_mainCursor = kDefaultMystCursor;
|
_mainCursor = kDefaultMystCursor;
|
||||||
_showResourceRects = false;
|
_showResourceRects = false;
|
||||||
|
@ -503,8 +498,9 @@ void MohawkEngine_Myst::changeToStack(uint16 stack, uint16 card, uint16 linkSrcS
|
||||||
flyby = "stoneship flyby";
|
flyby = "stoneship flyby";
|
||||||
break;
|
break;
|
||||||
// Myst Flyby Movie not used in Original Masterpiece Edition Engine
|
// 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:
|
case kMystStack:
|
||||||
if (_tweaksEnabled)
|
if (ConfMan.getBool("playmystflyby") && card == 4134)
|
||||||
flyby = "myst flyby";
|
flyby = "myst flyby";
|
||||||
break;
|
break;
|
||||||
case kMechanicalStack:
|
case kMechanicalStack:
|
||||||
|
|
|
@ -192,7 +192,6 @@ public:
|
||||||
MystSoundBlock readSoundBlock(Common::ReadStream *stream) const;
|
MystSoundBlock readSoundBlock(Common::ReadStream *stream) const;
|
||||||
void applySoundBlock(const MystSoundBlock &block);
|
void applySoundBlock(const MystSoundBlock &block);
|
||||||
|
|
||||||
bool _tweaksEnabled;
|
|
||||||
bool _needsUpdate;
|
bool _needsUpdate;
|
||||||
bool _needsPageDrop;
|
bool _needsPageDrop;
|
||||||
bool _needsShowMap;
|
bool _needsShowMap;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue