diff options
Diffstat (limited to 'engines/cine/unpack.cpp')
| -rw-r--r-- | engines/cine/unpack.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/cine/unpack.cpp b/engines/cine/unpack.cpp index 5d85ff6cab..7915fd1cf8 100644 --- a/engines/cine/unpack.cpp +++ b/engines/cine/unpack.cpp @@ -100,6 +100,14 @@ bool CineUnpacker::unpack(const byte *src, uint srcLen, byte *dst, uint dstLen)  	_dstBegin = dst;  	_dstEnd   = dst + dstLen; +	// Handle already unpacked data here +	if (srcLen == dstLen) { +		// Source length is same as destination length so the source +		// data is already unpacked. Let's just copy it then. +		memcpy(dst, src, srcLen); +		return true; +	} +  	// Initialize other variables  	_src = _srcBegin + srcLen - 4;  	uint32 unpackedLength = readSource(); // Unpacked length in bytes  | 
