diff options
author | Paul Gilbert | 2013-12-02 22:09:21 -0500 |
---|---|---|
committer | Paul Gilbert | 2013-12-02 22:09:21 -0500 |
commit | 08d68be2dceb1d3d3029ea415a3316bb81a9fde4 (patch) | |
tree | 9b09bfd389ce0e4fe76bc2be53d13cbe61546dc9 /engines | |
parent | 1fb422cde207b8b24ab9e8a545abb4c9204773c3 (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/voyeur/animation.cpp | 15 | ||||
-rw-r--r-- | engines/voyeur/voyeur.cpp | 2 |
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) { |