From 23314ed5d8028f384c9ff9e2138456a3fa6ecf48 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 4 Jul 2015 16:23:24 -0400 Subject: SHERLOCK: SS: Fix crash in intro when music finishes --- engines/sherlock/music.cpp | 13 +++++-------- engines/sherlock/music.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'engines') 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; -- cgit v1.2.3