From bcc840c95c6f5f4ec62523cd007ea415e474c6d8 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sun, 13 Sep 2009 11:02:39 +0000 Subject: Fixed crash when reaching the end of the movie, riggered by recent Stream changes. svn-id: r44052 --- engines/groovie/vdx.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'engines/groovie') diff --git a/engines/groovie/vdx.cpp b/engines/groovie/vdx.cpp index 3e3e88a01d..6e0762a9fe 100644 --- a/engines/groovie/vdx.cpp +++ b/engines/groovie/vdx.cpp @@ -123,17 +123,21 @@ uint16 VDXPlayer::loadInternal() { bool VDXPlayer::playFrameInternal() { byte currRes = 0x80; Common::ReadStream *vdxData = 0; - while (!_file->eos() && currRes == 0x80) { + while (currRes == 0x80) { currRes = _file->readByte(); // Skip unknown data: 1 byte, ref Edward byte tmp = _file->readByte(); - debugC(5, kGroovieDebugVideo | kGroovieDebugUnknown | kGroovieDebugAll, "Groovie::VDX: Edward = 0x%04X", tmp); uint32 compSize = _file->readUint32LE(); uint8 lengthmask = _file->readByte(); uint8 lengthbits = _file->readByte(); + if (_file->eos()) + break; + + debugC(5, kGroovieDebugVideo | kGroovieDebugUnknown | kGroovieDebugAll, "Groovie::VDX: Edward = 0x%04X", tmp); + // Read the chunk data and decompress if needed if (compSize) vdxData = _file->readStream(compSize); -- cgit v1.2.3