diff options
author | Sven Hesse | 2010-08-08 00:43:22 +0000 |
---|---|---|
committer | Sven Hesse | 2010-08-08 00:43:22 +0000 |
commit | a824bcefaaaff0acac79722e867875b9cb35e681 (patch) | |
tree | 4b2efd428a5a97db2308759db6054bf8b0ceb1f3 | |
parent | fecbdf60a98d2cbadfc26b406b7076ae74424066 (diff) | |
download | scummvm-rg350-a824bcefaaaff0acac79722e867875b9cb35e681.tar.gz scummvm-rg350-a824bcefaaaff0acac79722e867875b9cb35e681.tar.bz2 scummvm-rg350-a824bcefaaaff0acac79722e867875b9cb35e681.zip |
GOB: Make playImd() use the new VideoPlayer interface
svn-id: r51868
-rw-r--r-- | engines/gob/mult_v2.cpp | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/engines/gob/mult_v2.cpp b/engines/gob/mult_v2.cpp index 9faf446a5b..8c58183b3c 100644 --- a/engines/gob/mult_v2.cpp +++ b/engines/gob/mult_v2.cpp @@ -1100,50 +1100,56 @@ void Mult_v2::animate() { void Mult_v2::playImd(const char *imdFile, Mult::Mult_ImdKey &key, int16 dir, int16 startFrame) { - int16 x, y; - int16 palStart, palEnd; - int16 baseFrame, palFrame, lastFrame; - uint16 flags; + + VideoPlayer::Properties props; if (_vm->_draw->_renderFlags & 0x100) { - x = VAR(55); - y = VAR(56); - } else - x = y = -1; + props.x = VAR(55); + props.y = VAR(56); + } if (key.imdFile == -1) { - _vm->_vidPlayer->primaryClose(); + _vm->_vidPlayer->closeVideo(); return; } - flags = (key.flags >> 8) & 0xFF; - if (flags & 0x20) - flags = (flags & 0x9F) | 0x80; + props.flags = (key.flags >> 8) & 0xFF; + if (props.flags & 0x20) + props.flags = (props.flags & 0x9F) | 0x80; - palStart = key.palStart; - palEnd = key.palEnd; - palFrame = key.palFrame; - lastFrame = key.lastFrame; + props.palStart = key.palStart; + props.palEnd = key.palEnd; + props.palFrame = key.palFrame; + props.lastFrame = key.lastFrame; - if ((palFrame != -1) && (lastFrame != -1)) - if ((lastFrame - palFrame) < startFrame) + if ((props.palFrame != -1) && (props.lastFrame != -1)) + if ((props.lastFrame - props.palFrame) < props.startFrame) if (!(key.flags & 0x4000)) { - _vm->_vidPlayer->primaryClose(); + _vm->_vidPlayer->closeVideo(); return; } - if (!_vm->_vidPlayer->primaryOpen(imdFile, x, y, flags)) + int slot; + if ((slot = _vm->_vidPlayer->openVideo(true, imdFile, props)) < 0) return; - if (palFrame == -1) - palFrame = 0; + if (props.palFrame == -1) + props.palFrame = 0; + + if (props.lastFrame == -1) + props.lastFrame = _vm->_vidPlayer->getFrameCount() - 1; + + uint32 baseFrame = startFrame % (props.lastFrame - props.palFrame + 1); + + props.startFrame = baseFrame + props.palFrame; + props.lastFrame = baseFrame + props.palFrame; - if (lastFrame == -1) - lastFrame = _vm->_vidPlayer->getFrameCount() - 1; + debugC(2, kDebugVideo, "Playing mult video \"%s\" @ %d+%d, frame %d, " + "paletteCmd %d (%d - %d), flags %X", imdFile, + props.x, props.y, props.startFrame, + props.palCmd, props.palStart, props.palEnd, props.flags); - baseFrame = startFrame % (lastFrame - palFrame + 1); - _vm->_vidPlayer->primaryPlay(baseFrame + palFrame, baseFrame + palFrame, 0, - flags & 0x7F, palStart, palEnd, palFrame, lastFrame); + _vm->_vidPlayer->play(slot, props); } void Mult_v2::advanceObjects(int16 index) { |