diff options
author | Kari Salminen | 2008-10-13 19:17:51 +0000 |
---|---|---|
committer | Kari Salminen | 2008-10-13 19:17:51 +0000 |
commit | c949eb2daca88608bb582b2133f751cf4707f8dd (patch) | |
tree | c4647515fb447fdc6030491cb49e4a1378ef0b24 | |
parent | c2066b9c20930af2e01953f6bf97f147fb2673e3 (diff) | |
download | scummvm-rg350-c949eb2daca88608bb582b2133f751cf4707f8dd.tar.gz scummvm-rg350-c949eb2daca88608bb582b2133f751cf4707f8dd.tar.bz2 scummvm-rg350-c949eb2daca88608bb582b2133f751cf4707f8dd.zip |
Patch #2131406: AGI: Fix Crash with Apple][ Instruments.
Applied the patch as it is, thanks clone2727.
Now Apple IIGS AGI games don't crash anymore if the
instruments (They're in *.SYS16) or the instrument
samples (They're in SIERRASTANDARD) aren't found.
svn-id: r34798
-rw-r--r-- | engines/agi/sound.cpp | 6 | ||||
-rw-r--r-- | engines/agi/sound.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/agi/sound.cpp b/engines/agi/sound.cpp index 7138a3adad..7655b757f9 100644 --- a/engines/agi/sound.cpp +++ b/engines/agi/sound.cpp @@ -454,7 +454,7 @@ int SoundMgr::initSound() { _waveform = waveformMac; break; case SOUND_EMU_APPLE2GS: - loadInstruments(); + _disabledMidi = !loadInstruments(); break; } @@ -514,6 +514,9 @@ void SoundMgr::playNote(int i, int freq, int vol) { } void SoundMgr::playMidiSound() { + if (_disabledMidi) + return; + const uint8 *p; uint8 parm1, parm2; static uint8 cmd, ch; @@ -1218,6 +1221,7 @@ SoundMgr::SoundMgr(AgiBase *agi, Audio::Mixer *pMixer) : _chn() { _playing = false; _sndBuffer = (int16 *)calloc(2, BUFFER_SIZE); _waveform = 0; + _disabledMidi = false; } void SoundMgr::premixerCall(int16 *data, uint len) { diff --git a/engines/agi/sound.h b/engines/agi/sound.h index 0a6f5e302d..fd178e3a1d 100644 --- a/engines/agi/sound.h +++ b/engines/agi/sound.h @@ -467,6 +467,7 @@ private: int _endflag; int _playingSound; uint8 _env; + bool _disabledMidi; int16 *_sndBuffer; const int16 *_waveform; |