[Scummvm-cvs-logs] SF.net SVN: scummvm: [21373] scummvm/trunk/engines/scumm/he/sound_he.cpp
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Sat Mar 18 20:42:07 CET 2006
Revision: 21373
Author: kirben
Date: 2006-03-18 20:41:43 -0800 (Sat, 18 Mar 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=21373&view=rev
Log Message:
-----------
Skip HSHD block by set size, since there are sound resources (ie Caiman in jungle) which have incorrect size in HSHD header
Modified Paths:
--------------
scummvm/trunk/engines/scumm/he/sound_he.cpp
Modified: scummvm/trunk/engines/scumm/he/sound_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/sound_he.cpp 2006-03-19 04:36:54 UTC (rev 21372)
+++ scummvm/trunk/engines/scumm/he/sound_he.cpp 2006-03-19 04:41:43 UTC (rev 21373)
@@ -444,8 +444,10 @@
priority = (soundID > _vm->_numSounds) ? 255 : *(ptr + 18);
rate = READ_LE_UINT16(ptr + 22);
- ptr += 8 + READ_BE_UINT32(ptr + 12);
+ // Skip DIGI/TALK (8) and HSHD (24) blocks
+ ptr += 32;
+
if (_vm->_mixer->isSoundHandleActive(_heSoundChannels[heChannel])) {
int curSnd = _heChannel[heChannel].sound;
if (curSnd == 1 && soundID != 1)
@@ -461,7 +463,7 @@
}
assert(READ_BE_UINT32(ptr) == MKID_BE('SDAT'));
- size = READ_BE_UINT32(ptr+4) - 8;
+ size = READ_BE_UINT32(ptr + 4) - 8;
if (heOffset < 0 || heOffset > size) {
// Occurs when making fireworks in puttmoon
debug(0, "playSound: Invalid sound offset (offset %d, size %d) in sound %d", heOffset, size, soundID);
@@ -489,10 +491,12 @@
else if (READ_BE_UINT32(ptr) == MKID_BE('MRAW')) {
priority = *(ptr + 18);
rate = READ_LE_UINT16(ptr + 22);
- ptr += 8 + READ_BE_UINT32(ptr+12);
+ // Skip DIGI (8) and HSHD (24) blocks
+ ptr += 32;
+
assert(READ_BE_UINT32(ptr) == MKID_BE('SDAT'));
- size = READ_BE_UINT32(ptr+4) - 8;
+ size = READ_BE_UINT32(ptr + 4) - 8;
flags = Audio::Mixer::FLAG_AUTOFREE;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list