aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur
diff options
context:
space:
mode:
Diffstat (limited to 'engines/voyeur')
-rw-r--r--engines/voyeur/animation.cpp8
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;
}