diff options
author | Sven Hesse | 2010-08-08 00:44:33 +0000 |
---|---|---|
committer | Sven Hesse | 2010-08-08 00:44:33 +0000 |
commit | 2296aad042aad1c9983b4a9bf2e187912c361407 (patch) | |
tree | 15951e4b16b520be3bc28376fa045a155bad38bb /engines/gob | |
parent | 2bcc02a27a5261fab4d769e3160ff490573a6be1 (diff) | |
download | scummvm-rg350-2296aad042aad1c9983b4a9bf2e187912c361407.tar.gz scummvm-rg350-2296aad042aad1c9983b4a9bf2e187912c361407.tar.bz2 scummvm-rg350-2296aad042aad1c9983b4a9bf2e187912c361407.zip |
VIDEO/GOB: Fix IMD playing
Fix IMD playing for some fringe cases, especially when seeking
beforehand.
svn-id: r51871
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/mult_v2.cpp | 9 | ||||
-rw-r--r-- | engines/gob/videoplayer.h | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/engines/gob/mult_v2.cpp b/engines/gob/mult_v2.cpp index 8c58183b3c..d9e94199c3 100644 --- a/engines/gob/mult_v2.cpp +++ b/engines/gob/mult_v2.cpp @@ -1129,6 +1129,8 @@ void Mult_v2::playImd(const char *imdFile, Mult::Mult_ImdKey &key, int16 dir, return; } + _vm->_vidPlayer->evaluateFlags(props); + int slot; if ((slot = _vm->_vidPlayer->openVideo(true, imdFile, props)) < 0) return; @@ -1141,13 +1143,16 @@ void Mult_v2::playImd(const char *imdFile, Mult::Mult_ImdKey &key, int16 dir, uint32 baseFrame = startFrame % (props.lastFrame - props.palFrame + 1); + props.endFrame = props.lastFrame; props.startFrame = baseFrame + props.palFrame; props.lastFrame = baseFrame + props.palFrame; + props.flags &= 0x7F; + debugC(2, kDebugVideo, "Playing mult video \"%s\" @ %d+%d, frame %d, " - "paletteCmd %d (%d - %d), flags %X", imdFile, + "paletteCmd %d (%d - %d; %d), flags %X", imdFile, props.x, props.y, props.startFrame, - props.palCmd, props.palStart, props.palEnd, props.flags); + props.palCmd, props.palStart, props.palEnd, props.endFrame, props.flags); _vm->_vidPlayer->play(slot, props); } diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h index f1245bca48..1b60e7ffd6 100644 --- a/engines/gob/videoplayer.h +++ b/engines/gob/videoplayer.h @@ -79,8 +79,8 @@ public: int16 breakKey; ///< Keycode of the break/abort key. uint16 palCmd; ///< Palette command. - uint16 palStart; ///< Palette entry to start with. - uint16 palEnd; ///< Palette entry to end at. + int16 palStart; ///< Palette entry to start with. + int16 palEnd; ///< Palette entry to end at. int32 palFrame; ///< Frame to apply the palette command at. bool fade; ///< Fade in? |