From 943ab421a47d543002d1e503a893ec68526c1672 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sun, 16 Dec 2007 14:46:48 +0000 Subject: The _nativeMT32 in MidiMusic was never initialised. Rather than storing it in two different classes, use the value in SoundManager instead. As a consequence the engine now remaps the instruments from MT-32 to General MIDI for me, since isRoland() is true and hasNativeMT32() is false. Earlier, it didn't since the uninitialised _nativeMT32 happened to be true for me. svn-id: r29878 --- engines/lure/sound.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/lure/sound.cpp') diff --git a/engines/lure/sound.cpp b/engines/lure/sound.cpp index 2f6a0571a7..0cb0291675 100644 --- a/engines/lure/sound.cpp +++ b/engines/lure/sound.cpp @@ -693,8 +693,10 @@ void MidiMusic::send(uint32 b) { _channels[channel].volume = volume; volume = volume * _volume / 255; b = (b & 0xFF00FFFF) | (volume << 16); - } else if ((b & 0xF0) == 0xC0 && !_nativeMT32) { - b = (b & 0xFFFF00FF) | MidiDriver::_mt32ToGm[(b >> 8) & 0xFF] << 8; + } else if ((b & 0xF0) == 0xC0) { + if (Sound.isRoland() && !Sound.hasNativeMT32()) { + b = (b & 0xFFFF00FF) | MidiDriver::_mt32ToGm[(b >> 8) & 0xFF] << 8; + } } else if ((b & 0xFFF0) == 0x007BB0) { // No implementation -- cgit v1.2.3