mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 09:36:21 +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]._filePos = _music[saveStream]._filePos;
|
||||||
_music[2]._fileEnd = _music[saveStream]._fileEnd;
|
_music[2]._fileEnd = _music[saveStream]._fileEnd;
|
||||||
_music[2]._lastSample = _music[saveStream]._lastSample;
|
_music[2]._lastSample = _music[saveStream]._lastSample;
|
||||||
|
|
||||||
|
if (fpMus.isOpen())
|
||||||
|
savedMusicFilename = strdup(fpMus.name());
|
||||||
|
else
|
||||||
|
savedMusicFilename = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sound::restoreMusicState() {
|
void Sound::restoreMusicState() {
|
||||||
@ -226,6 +231,15 @@ void Sound::restoreMusicState() {
|
|||||||
_music[restoreStream]._filePos = _music[2]._filePos;
|
_music[restoreStream]._filePos = _music[2]._filePos;
|
||||||
_music[restoreStream]._fileEnd = _music[2]._fileEnd;
|
_music[restoreStream]._fileEnd = _music[2]._fileEnd;
|
||||||
_music[restoreStream]._lastSample = _music[2]._lastSample;
|
_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) {
|
void Sound::playLeadOut(uint8 *leadOut) {
|
||||||
|
@ -109,6 +109,8 @@ private:
|
|||||||
|
|
||||||
void updateCompSampleStreaming(int16 *data, uint len);
|
void updateCompSampleStreaming(int16 *data, uint len);
|
||||||
|
|
||||||
|
char *savedMusicFilename;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Sound(Sword2Engine *vm);
|
Sound(Sword2Engine *vm);
|
||||||
~Sound();
|
~Sound();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user