aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMatthew Hoops2010-11-21 00:02:25 +0000
committerMatthew Hoops2010-11-21 00:02:25 +0000
commit5616bde4e7ec28f886aeb2c98c6a2fec52f9fa9d (patch)
treeff98642c251f828d52ccce5b29c5a2e43cbbdabe /engines
parent0f2bcd2f9fcc6d5c8ba67b75f625290db126d231 (diff)
downloadscummvm-rg350-5616bde4e7ec28f886aeb2c98c6a2fec52f9fa9d.tar.gz
scummvm-rg350-5616bde4e7ec28f886aeb2c98c6a2fec52f9fa9d.tar.bz2
scummvm-rg350-5616bde4e7ec28f886aeb2c98c6a2fec52f9fa9d.zip
MOHAWK: Fix Living Books v1 sound (courtesy of fuzzie)
svn-id: r54397
Diffstat (limited to 'engines')
-rw-r--r--engines/mohawk/resource.cpp4
-rw-r--r--engines/mohawk/sound.cpp5
2 files changed, 5 insertions, 4 deletions
diff --git a/engines/mohawk/resource.cpp b/engines/mohawk/resource.cpp
index 11e2226847..1ae069e459 100644
--- a/engines/mohawk/resource.cpp
+++ b/engines/mohawk/resource.cpp
@@ -376,8 +376,8 @@ void LivingBooksArchive_v1::open(Common::SeekableReadStream *stream) {
for (uint16 j = 0; j < _types[i].resTable.resources; j++) {
_types[i].resTable.entries[j].id = _mhk->readUint16LE();
_types[i].resTable.entries[j].offset = _mhk->readUint32LE();
- _types[i].resTable.entries[j].size = _mhk->readUint16LE();
- _mhk->readUint32LE(); // Unknown (always 0?)
+ _types[i].resTable.entries[j].size = _mhk->readUint32LE();
+ _mhk->readUint16LE(); // Unknown (always 0?)
debug (4, "Entry[%02x]: ID = %04x (%d)\tOffset = %08x, Size = %08x", j, _types[i].resTable.entries[j].id, _types[i].resTable.entries[j].id, _types[i].resTable.entries[j].offset, _types[i].resTable.entries[j].size);
}
diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp
index f03fd71005..27a5a828dd 100644
--- a/engines/mohawk/sound.cpp
+++ b/engines/mohawk/sound.cpp
@@ -462,11 +462,12 @@ Audio::AudioStream *Sound::makeOldMohawkWaveStream(Common::SeekableReadStream *s
if (header == 'Wv') { // Big Endian
rate = stream->readUint16BE();
- stream->skip(10); // Loop chunk, like the newer format?
+ stream->skip(10); // Unknown
size = stream->readUint32BE();
} else if (header == 'vW') { // Little Endian
+ stream->readUint16LE(); // Unknown
rate = stream->readUint16LE();
- stream->skip(10); // Loop chunk, like the newer format?
+ stream->skip(8); // Unknown
size = stream->readUint32LE();
} else
error("Could not find Old Mohawk Sound header");