diff options
author | Sven Hesse | 2011-01-20 18:17:39 +0000 |
---|---|---|
committer | Sven Hesse | 2011-01-20 18:17:39 +0000 |
commit | bb6c230587c65c92e1719809977e4625322dd2cb (patch) | |
tree | 7996d697e65930248da1113274b2abad2c87f222 /engines/gob/videoplayer.cpp | |
parent | 03415868b07cedd956185c5f5a56ff2daf09c735 (diff) | |
download | scummvm-rg350-bb6c230587c65c92e1719809977e4625322dd2cb.tar.gz scummvm-rg350-bb6c230587c65c92e1719809977e4625322dd2cb.tar.bz2 scummvm-rg350-bb6c230587c65c92e1719809977e4625322dd2cb.zip |
GOB: Implement looping live videos
Needed for the buttons in the Playtoons series
svn-id: r55359
Diffstat (limited to 'engines/gob/videoplayer.cpp')
-rw-r--r-- | engines/gob/videoplayer.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index 6151bafa35..4c1f724609 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -40,7 +40,7 @@ VideoPlayer::Properties::Properties() : type(kVideoTypeTry), sprite(Draw::kFront x(-1), y(-1), width(-1), height(-1), flags(kFlagFrontSurface), switchColorMode(false), startFrame(-1), lastFrame(-1), endFrame(-1), forceSeek(false), breakKey(kShortKeyEscape), palCmd(8), palStart(0), palEnd(255), palFrame(-1), - fade(false), waitEndFrame(true), canceled(false) { + loop(false), fade(false), waitEndFrame(true), canceled(false) { } @@ -313,11 +313,16 @@ void VideoPlayer::updateLive(bool force) { if (_liveProperties.startFrame >= (int32)(video->decoder->getFrameCount() - 1)) { // Video ended - WRITE_VAR_OFFSET(212, (uint32)-1); - if (video->surface == _vm->_draw->_frontSurface) - _vm->_draw->forceBlit(true); - _vm->_vidPlayer->closeVideo(); - return; + if (!_liveProperties.loop) { + WRITE_VAR_OFFSET(212, (uint32)-1); + if (video->surface == _vm->_draw->_frontSurface) + _vm->_draw->forceBlit(true); + _vm->_vidPlayer->closeVideo(); + return; + } else { + video->decoder->seek(0, SEEK_SET, true); + _liveProperties.startFrame = -1; + } } if (_liveProperties.startFrame == _liveProperties.lastFrame) |