diff options
Diffstat (limited to 'engines/voyeur')
-rw-r--r-- | engines/voyeur/animation.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/engines/voyeur/animation.cpp b/engines/voyeur/animation.cpp index 7dc53b9e60..301c8d1c43 100644 --- a/engines/voyeur/animation.cpp +++ b/engines/voyeur/animation.cpp @@ -116,7 +116,7 @@ void RL2Decoder::readNextPacket() { // Handle queueing sound data if (_soundFrameNumber == -1) - _soundFrameNumber = frameNumber; + _soundFrameNumber = (frameNumber == -1) ? 0 : frameNumber; while (audioTrack->numQueuedStreams() < SOUND_FRAMES_READAHEAD && (_soundFrameNumber < (int)_soundFrames.size())) { @@ -225,7 +225,7 @@ RL2Decoder::RL2VideoTrack::RL2VideoTrack(const RL2FileHeader &header, RL2AudioTr _videoBase = header._videoBase; _dirtyPalette = header._colorCount > 0; - _curFrame = 0; + _curFrame = -1; _initialFrame = true; } @@ -283,7 +283,7 @@ const Graphics::Surface *RL2Decoder::RL2VideoTrack::decodeNextFrame() { } // Move to the next frame data - _fileStream->seek(_header._frameOffsets[_curFrame]); + _fileStream->seek(_header._frameOffsets[++_curFrame]); // If there's any sound data, pass it to the audio track _fileStream->seek(_header._frameSoundSizes[_curFrame], SEEK_CUR); @@ -296,8 +296,6 @@ const Graphics::Surface *RL2Decoder::RL2VideoTrack::decodeNextFrame() { rl2DecodeFrameWithoutTransparency(_videoBase); } - _curFrame++; - return _surface; } |