aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/videoplayer.cpp
diff options
context:
space:
mode:
authorSven Hesse2011-01-20 18:17:39 +0000
committerSven Hesse2011-01-20 18:17:39 +0000
commitbb6c230587c65c92e1719809977e4625322dd2cb (patch)
tree7996d697e65930248da1113274b2abad2c87f222 /engines/gob/videoplayer.cpp
parent03415868b07cedd956185c5f5a56ff2daf09c735 (diff)
downloadscummvm-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.cpp17
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)