aboutsummaryrefslogtreecommitdiff
path: root/engines/saga
diff options
context:
space:
mode:
authorFilippos Karapetis2007-10-31 20:26:57 +0000
committerFilippos Karapetis2007-10-31 20:26:57 +0000
commit5add473048289ed235d69825cfc44a84a24118af (patch)
tree9c87fe3e9796186d9d7276c7a5787a41c5675b26 /engines/saga
parent47a2c28b6ed314a8099f1b9eabf63fd4c3fcafea (diff)
downloadscummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.tar.gz
scummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.tar.bz2
scummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.zip
Fix for bug #1800147 - "ITE: Scummvm exits with Audio warnings"
svn-id: r29345
Diffstat (limited to 'engines/saga')
-rw-r--r--engines/saga/music.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 171da1cc8c..ae834d8e3a 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -105,13 +105,19 @@ DigitalMusicInputStream::DigitalMusicInputStream(SagaEngine *vm, ResourceContext
soundType = kSoundFLAC;
}
+ _file->seek((long)resourceData->offset + 9, SEEK_SET);
createCompressedStream();
- resourceData->offset += 9; // Skip compressed header
}
// Determine the end position
_filePos = resourceData->offset;
_endPos = _filePos + resourceData->size;
+
+ if (_compressedStream != NULL) {
+ _filePos += 9; // skip compressed header
+ _endPos -= 9; // decrease size by the size of the compressed header
+ }
+
_startPos = _filePos + loopStart;
if (_startPos >= _endPos)
_startPos = _filePos;
@@ -126,7 +132,7 @@ DigitalMusicInputStream::~DigitalMusicInputStream() {
void DigitalMusicInputStream::createCompressedStream() {
uint numLoops = _looping ? 0 : 1;
- _memoryStream = _file->readStream(resourceData->size);
+ _memoryStream = _file->readStream(resourceData->size - 9);
switch (soundType) {
#ifdef USE_MAD