diff options
Diffstat (limited to 'engines/voyeur')
-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) { |