aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2009-07-24 21:34:17 +0000
committerSven Hesse2009-07-24 21:34:17 +0000
commitb2154f612da6d92cb86338accd8a23f51c49e1f4 (patch)
treea09b4004ee8250c4761540e0aca975660c110105
parent90d8dcca5f7bcbaf309f72eca8c2a0d3863657d0 (diff)
downloadscummvm-rg350-b2154f612da6d92cb86338accd8a23f51c49e1f4.tar.gz
scummvm-rg350-b2154f612da6d92cb86338accd8a23f51c49e1f4.tar.bz2
scummvm-rg350-b2154f612da6d92cb86338accd8a23f51c49e1f4.zip
Adding stubs for newer VMDs found in Addy 5
svn-id: r42710
-rw-r--r--graphics/video/coktelvideo/coktelvideo.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/graphics/video/coktelvideo/coktelvideo.cpp b/graphics/video/coktelvideo/coktelvideo.cpp
index 1c0ed08167..80106215cb 100644
--- a/graphics/video/coktelvideo/coktelvideo.cpp
+++ b/graphics/video/coktelvideo/coktelvideo.cpp
@@ -1118,8 +1118,17 @@ bool Vmd::load(Common::SeekableReadStream &stream) {
handle = _stream->readUint16LE();
_version = _stream->readUint16LE();
+ bool readPalette;
+
// Version checking
- if (headerLength != 814) {
+ if (headerLength == 50) {
+ // Newer version, used in Addy 5 upwards
+ warning("Vmd::load(): TODO: Addy 5 videos");
+ readPalette = false;
+ } else if (headerLength == 814) {
+ // Old version
+ readPalette = true;
+ } else {
warning("Vmd::load(): Version incorrect (%d, %d, %d)", headerLength, handle, _version);
unload();
return false;
@@ -1162,7 +1171,8 @@ bool Vmd::load(Common::SeekableReadStream &stream) {
_videoCodec = _stream->readUint32BE();
- _stream->read((byte *) _palette, 768);
+ if (readPalette)
+ _stream->read((byte *) _palette, 768);
_frameDataSize = _stream->readUint32LE();
_vidBufferSize = _stream->readUint32LE();
@@ -1398,6 +1408,10 @@ CoktelVideo::State Vmd::processFrame(uint16 frame) {
}
_stream->skip(part.size);
+ } else if (part.flags == 4) {
+ warning("Vmd::processFrame(): TODO: Addy 5 sound type 4 (%d)", part.size);
+ disableSound();
+ _stream->skip(part.size);
} else {
warning("Vmd::processFrame(): Unknown sound type %d", part.flags);
_stream->skip(part.size);