aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur
diff options
context:
space:
mode:
authorPaul Gilbert2013-12-02 22:09:21 -0500
committerPaul Gilbert2013-12-02 22:09:21 -0500
commit08d68be2dceb1d3d3029ea415a3316bb81a9fde4 (patch)
tree9b09bfd389ce0e4fe76bc2be53d13cbe61546dc9 /engines/voyeur
parent1fb422cde207b8b24ab9e8a545abb4c9204773c3 (diff)
downloadscummvm-rg350-08d68be2dceb1d3d3029ea415a3316bb81a9fde4.tar.gz
scummvm-rg350-08d68be2dceb1d3d3029ea415a3316bb81a9fde4.tar.bz2
scummvm-rg350-08d68be2dceb1d3d3029ea415a3316bb81a9fde4.zip
VOYEUR: Fix for playback of animations with a background
Diffstat (limited to 'engines/voyeur')
-rw-r--r--engines/voyeur/animation.cpp15
-rw-r--r--engines/voyeur/voyeur.cpp2
2 files changed, 11 insertions, 6 deletions
diff --git a/engines/voyeur/animation.cpp b/engines/voyeur/animation.cpp
index cbd7b0af18..4278d50d96 100644
--- a/engines/voyeur/animation.cpp
+++ b/engines/voyeur/animation.cpp
@@ -153,9 +153,6 @@ RL2Decoder::RL2VideoTrack::RL2VideoTrack(const RL2FileHeader &header, RL2AudioTr
} else {
_backSurface = new Graphics::Surface();
_backSurface->create(320, 200, Graphics::PixelFormat::createFormatCLUT8());
-
- stream->seek(0x324);
- rl2DecodeFrameWithoutBackground(0);
}
_videoBase = header._videoBase;
@@ -204,6 +201,9 @@ const Graphics::Surface *RL2Decoder::RL2VideoTrack::decodeNextFrame() {
// Read in the background frame
_fileStream->seek(0x324);
rl2DecodeFrameWithoutBackground(0);
+
+ Common::copy((byte *)_surface->getPixels(), (byte *)_surface->getPixels() + (320 * 200),
+ (byte *)_backSurface->getPixels());
_dirtyRects.push_back(Common::Rect(0, 0, _surface->w, _surface->h));
}
@@ -215,10 +215,15 @@ const Graphics::Surface *RL2Decoder::RL2VideoTrack::decodeNextFrame() {
_audioTrack->queueSound(_fileStream, _header._frameSoundSizes[_curFrame]);
// Decode the graphic data
- if (_backSurface)
+ if (_backSurface) {
+ if (_curFrame > 0)
+ Common::copy((byte *)_backSurface->getPixels(), (byte *)_backSurface->getPixels() + (320 * 200),
+ (byte *)_surface->getPixels());
+
rl2DecodeFrameWithBackground();
- else
+ } else {
rl2DecodeFrameWithoutBackground();
+ }
_curFrame++;
_nextFrameStartTime += _frameDelay;
diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp
index bafc360728..080d40fc21 100644
--- a/engines/voyeur/voyeur.cpp
+++ b/engines/voyeur/voyeur.cpp
@@ -164,7 +164,7 @@ bool VoyeurEngine::doHeadTitle() {
return false;
}
- showTitleScreen();
+// showTitleScreen();
// Opening
if (!_voy._incriminate) {