diff options
| author | Willem Jan Palenstijn | 2016-07-08 21:20:19 +0200 | 
|---|---|---|
| committer | Willem Jan Palenstijn | 2016-07-08 22:08:53 +0200 | 
| commit | 862f12c71b94346a8653d2eba5b6fc0a0d59a782 (patch) | |
| tree | eca09c87e160b161b0464a3d61f7270d834286aa | |
| parent | 82eea1491bbc5bd4ba8b1d1a005d0975255edccd (diff) | |
| download | scummvm-rg350-862f12c71b94346a8653d2eba5b6fc0a0d59a782.tar.gz scummvm-rg350-862f12c71b94346a8653d2eba5b6fc0a0d59a782.tar.bz2 scummvm-rg350-862f12c71b94346a8653d2eba5b6fc0a0d59a782.zip  | |
SCI: Set isSample when starting digital sample from soundInitSnd
This fixes digital samples in at least QfG1, SQ3, LSL5. Bug #7159.
| -rw-r--r-- | engines/sci/sound/music.cpp | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index 3f34ecc2f8..487d30e840 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -354,12 +354,14 @@ void SciMusic::soundInitSnd(MusicEntry *pSnd) {  			pSnd->pStreamAud = Audio::makeRawStream(channelData + track->digitalSampleStart,  								track->digitalSampleSize - track->digitalSampleStart - endPart,  								track->digitalSampleRate, flags, DisposeAfterUse::NO); +			assert(pSnd->pStreamAud);  			delete pSnd->pLoopStream;  			pSnd->pLoopStream = 0;  			pSnd->soundType = Audio::Mixer::kSFXSoundType;  			pSnd->hCurrentAud = Audio::SoundHandle();  			pSnd->playBed = false;  			pSnd->overridePriority = false; +			pSnd->isSample = true;  		} else {  			// play MIDI track  			Common::StackLock lock(_mutex); @@ -659,6 +661,7 @@ void SciMusic::soundKill(MusicEntry *pSnd) {  		pSnd->pStreamAud = NULL;  		delete pSnd->pLoopStream;  		pSnd->pLoopStream = 0; +		pSnd->isSample = false;  	}  	_mutex.lock();  | 
