diff options
Diffstat (limited to 'sword1/music.cpp')
-rw-r--r-- | sword1/music.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sword1/music.cpp b/sword1/music.cpp index 8b94b9ab69..5cdc83a31c 100644 --- a/sword1/music.cpp +++ b/sword1/music.cpp @@ -90,8 +90,10 @@ bool SwordMusicHandle::play(const char *filename, bool loop) { uint8 wavHeader[WAVEHEADERSIZE]; stop(); _file.open(filename); - if (!_file.isOpen()) + if (!_file.isOpen()) { + warning("Music file %s could not be opened", filename); return false; + } _file.read(wavHeader, WAVEHEADERSIZE); _stereo = (READ_LE_UINT16(wavHeader + 0x16) == 2); _rate = READ_LE_UINT16(wavHeader + 0x18); @@ -159,9 +161,10 @@ void SwordMusic::startMusic(int32 tuneId, int32 loopFlag) { } char fName[20]; sprintf(fName, "music/%s.wav", _tuneList[tuneId]); - _handles[newStream].play(fName, loopFlag != 0); - delete _converter[newStream]; - _converter[newStream] = makeRateConverter(_handles[newStream].getRate(), _mixer->getOutputRate(), _handles[newStream].isStereo(), false); + if (_handles[newStream].play(fName, loopFlag != 0)) { + delete _converter[newStream]; + _converter[newStream] = makeRateConverter(_handles[newStream].getRate(), _mixer->getOutputRate(), _handles[newStream].isStereo(), false); + } } else { if (_handles[0].streaming()) _handles[0].fadeDown(); |