aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk
diff options
context:
space:
mode:
authorMatthew Hoops2010-01-19 19:21:31 +0000
committerMatthew Hoops2010-01-19 19:21:31 +0000
commit3738507d7fac1b9a349e658e59eb6532a63fa9c5 (patch)
tree15651f9d67458986e36301bee40cb171f40123fb /engines/mohawk
parent425d0f7da3306487d2964f57dba1bac5c28938e7 (diff)
downloadscummvm-rg350-3738507d7fac1b9a349e658e59eb6532a63fa9c5.tar.gz
scummvm-rg350-3738507d7fac1b9a349e658e59eb6532a63fa9c5.tar.bz2
scummvm-rg350-3738507d7fac1b9a349e658e59eb6532a63fa9c5.zip
Add support for the flyby videos in Myst ME Macintosh.
svn-id: r47388
Diffstat (limited to 'engines/mohawk')
-rw-r--r--engines/mohawk/myst.cpp7
-rw-r--r--engines/mohawk/myst_scripts.cpp31
2 files changed, 28 insertions, 10 deletions
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index cf9837043f..753ab83b7b 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -118,6 +118,10 @@ static const char *mystFiles[] = {
// qtw/myst/libelev.mov: libup.mov is basically the same with sound
Common::String MohawkEngine_Myst::wrapMovieFilename(Common::String movieName, uint16 stack) {
+ // The Macintosh release of Myst ME stores its videos in a different folder
+ if ((getFeatures() & GF_ME) && getPlatform() == Common::kPlatformMacintosh)
+ return Common::String("CD Data/m/") + movieName + ".mov";
+
const char* prefix;
switch (stack) {
@@ -151,9 +155,6 @@ Common::String MohawkEngine_Myst::wrapMovieFilename(Common::String movieName, ui
break;
}
- if ((getFeatures() & GF_ME) && getPlatform() == Common::kPlatformMacintosh)
- return Common::String("CD Data/m/") + movieName + ".mov";
-
return Common::String("qtw/") + prefix + movieName + ".mov";
}
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp
index 39ce212dd6..dc49e72d75 100644
--- a/engines/mohawk/myst_scripts.cpp
+++ b/engines/mohawk/myst_scripts.cpp
@@ -1334,25 +1334,42 @@ void MystScriptParser::opcode_100(uint16 op, uint16 var, uint16 argc, uint16 *ar
while (_vm->_mixer->isSoundHandleActive(*handle))
_vm->_system->delayMillis(10);
- // Play Flyby Entry Movie on Masterpiece Edition..
+ // Play Flyby Entry Movie on Masterpiece Edition. The Macintosh version is currently hooked
+ // up to the Cinepak versions of the video (the 'c' suffix) until the SVQ1 decoder is completed.
if ((_vm->getFeatures() & GF_ME)) {
switch (stack_map[_vm->_varStore->getVar(var)]) {
case kSeleniticStack:
- _vm->_video->playMovieCentered(_vm->wrapMovieFilename("selenitic flyby", kMasterpieceOnly));
+ if (_vm->getPlatform() == Common::kPlatformMacintosh)
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_SEc", kMasterpieceOnly));
+ else
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("selenitic flyby", kMasterpieceOnly));
break;
case kStoneshipStack:
- _vm->_video->playMovieCentered(_vm->wrapMovieFilename("stoneship flyby", kMasterpieceOnly));
+ if (_vm->getPlatform() == Common::kPlatformMacintosh)
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_STc", kMasterpieceOnly));
+ else
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("stoneship flyby", kMasterpieceOnly));
break;
// Myst Flyby Movie not used in Original Masterpiece Edition Engine
case kMystStack:
- if (_vm->_tweaksEnabled)
- _vm->_video->playMovieCentered(_vm->wrapMovieFilename("myst flyby", kMasterpieceOnly));
+ if (_vm->_tweaksEnabled) {
+ if (_vm->getPlatform() == Common::kPlatformMacintosh)
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_MYc", kMasterpieceOnly));
+ else
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("myst flyby", kMasterpieceOnly));
+ }
break;
case kMechanicalStack:
- _vm->_video->playMovieCentered(_vm->wrapMovieFilename("mech age flyby", kMasterpieceOnly));
+ if (_vm->getPlatform() == Common::kPlatformMacintosh)
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_MEc", kMasterpieceOnly));
+ else
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("mech age flyby", kMasterpieceOnly));
break;
case kChannelwoodStack:
- _vm->_video->playMovieCentered(_vm->wrapMovieFilename("channelwood flyby", kMasterpieceOnly));
+ if (_vm->getPlatform() == Common::kPlatformMacintosh)
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_CHc", kMasterpieceOnly));
+ else
+ _vm->_video->playMovieCentered(_vm->wrapMovieFilename("channelwood flyby", kMasterpieceOnly));
break;
default:
break;