diff options
author | Paul Gilbert | 2015-07-04 16:23:24 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-07-04 16:23:24 -0400 |
commit | 23314ed5d8028f384c9ff9e2138456a3fa6ecf48 (patch) | |
tree | cd642587502ef58353da0bb1e067f6a8cc102de1 /engines/sherlock | |
parent | 3f31b5ba64115b0823da2c2137fe3ee4a5251b0e (diff) | |
download | scummvm-rg350-23314ed5d8028f384c9ff9e2138456a3fa6ecf48.tar.gz scummvm-rg350-23314ed5d8028f384c9ff9e2138456a3fa6ecf48.tar.bz2 scummvm-rg350-23314ed5d8028f384c9ff9e2138456a3fa6ecf48.zip |
SHERLOCK: SS: Fix crash in intro when music finishes
Diffstat (limited to 'engines/sherlock')
-rw-r--r-- | engines/sherlock/music.cpp | 13 | ||||
-rw-r--r-- | engines/sherlock/music.h | 2 |
2 files changed, 6 insertions, 9 deletions
diff --git a/engines/sherlock/music.cpp b/engines/sherlock/music.cpp index 1f211f4c51..49c48126f4 100644 --- a/engines/sherlock/music.cpp +++ b/engines/sherlock/music.cpp @@ -210,6 +210,8 @@ void MidiParser_SH::unloadMusic() { _musData = NULL; _musDataSize = 0; } + + MidiParser::unloadMusic(); } /*----------------------------------------------------------------*/ @@ -504,14 +506,7 @@ bool Music::playMusic(const Common::String &name) { } void Music::stopMusic() { - if (isPlaying()) { - if (!IS_3DO) - _midiParser->stopPlaying(); - else - _mixer->stopHandle(_digitalMusicHandle); - } - - _musicPlaying = false; + freeSong(); } void Music::startSong() { @@ -531,6 +526,8 @@ void Music::freeSong() { // Free the MIDI MUS data buffer _midiParser->unloadMusic(); } + + _musicPlaying = false; } void Music::waitTimerRoland(uint time) { diff --git a/engines/sherlock/music.h b/engines/sherlock/music.h index 1bcedf273b..93c565c162 100644 --- a/engines/sherlock/music.h +++ b/engines/sherlock/music.h @@ -52,7 +52,7 @@ protected: public: bool loadMusic(byte *musData, uint32 musSize); - void unloadMusic(); + virtual void unloadMusic(); private: byte *_musData; |