diff options
-rw-r--r-- | graphics/video/coktel_decoder.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/graphics/video/coktel_decoder.cpp b/graphics/video/coktel_decoder.cpp index 7fba516d5b..9ed91b1b3f 100644 --- a/graphics/video/coktel_decoder.cpp +++ b/graphics/video/coktel_decoder.cpp @@ -1559,12 +1559,25 @@ bool VMDDecoder::seek(int32 frame, int whence, bool restart) { _audioStream = Audio::makeQueuingAudioStream(_soundFreq, _soundStereo != 0); } + _subtitle = -1; + + if ((_blitMode > 0) && (_flags & 0x4000)) { + if (_curFrame > frame) { + _stream->seek(_frames[0].offset); + _curFrame = -1; + } + + while (frame > _curFrame) + decodeNextFrame(); + + return true; + } + // Seek _stream->seek(_frames[frame + 1].offset); _curFrame = frame; _startTime = g_system->getMillis() - ((frame + 2) * getStaticTimeToNextFrame()); - _subtitle = -1; return true; } |