diff options
Diffstat (limited to 'engines/sci/gfx/seq_decoder.cpp')
-rw-r--r-- | engines/sci/gfx/seq_decoder.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/sci/gfx/seq_decoder.cpp b/engines/sci/gfx/seq_decoder.cpp index 829eea004a..c5978c39bf 100644 --- a/engines/sci/gfx/seq_decoder.cpp +++ b/engines/sci/gfx/seq_decoder.cpp @@ -129,9 +129,13 @@ bool SeqDecoder::decodeNextFrame() { _videoInfo.startTime = g_system->getMillis(); if (frameType == kSeqFrameFull) { - assert (frameLeft == 0); - assert (frameWidth == 320); - _fileStream->read(_videoFrameBuffer + 320 * frameTop, frameSize); + if (frameLeft != 0 && frameWidth != 320) { + // This case should never happen, but apparently it does in the + // seagulls video in KQ6 CD (most likely due to bad/incomplete data) + _fileStream->skip(frameSize); + } else { + _fileStream->read(_videoFrameBuffer + 320 * frameTop, frameSize); + } } else { byte *buf = new byte[frameSize]; _fileStream->read(buf, frameSize); |