mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 17:46:22 +00:00
When saving the music state, remember the name of the music file that was
open so that it can be re-opened afterwards. It's not so much that it may have changed, but it may have been closed. This should fix a crash when escaping the credits. svn-id: r12055
This commit is contained in:
parent
cde55eb4fa
commit
c85301b2a9
@ -196,6 +196,11 @@ void Sound::saveMusicState() {
|
||||
_music[2]._filePos = _music[saveStream]._filePos;
|
||||
_music[2]._fileEnd = _music[saveStream]._fileEnd;
|
||||
_music[2]._lastSample = _music[saveStream]._lastSample;
|
||||
|
||||
if (fpMus.isOpen())
|
||||
savedMusicFilename = strdup(fpMus.name());
|
||||
else
|
||||
savedMusicFilename = NULL;
|
||||
}
|
||||
|
||||
void Sound::restoreMusicState() {
|
||||
@ -226,6 +231,15 @@ void Sound::restoreMusicState() {
|
||||
_music[restoreStream]._filePos = _music[2]._filePos;
|
||||
_music[restoreStream]._fileEnd = _music[2]._fileEnd;
|
||||
_music[restoreStream]._lastSample = _music[2]._lastSample;
|
||||
|
||||
if (savedMusicFilename) {
|
||||
if (fpMus.isOpen())
|
||||
fpMus.close();
|
||||
|
||||
fpMus.open(savedMusicFilename);
|
||||
free(savedMusicFilename);
|
||||
savedMusicFilename = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void Sound::playLeadOut(uint8 *leadOut) {
|
||||
|
@ -109,6 +109,8 @@ private:
|
||||
|
||||
void updateCompSampleStreaming(int16 *data, uint len);
|
||||
|
||||
char *savedMusicFilename;
|
||||
|
||||
public:
|
||||
Sound(Sword2Engine *vm);
|
||||
~Sound();
|
||||
|
Loading…
x
Reference in New Issue
Block a user