diff options
| -rw-r--r-- | engines/scumm/midiparser_ro.cpp | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/engines/scumm/midiparser_ro.cpp b/engines/scumm/midiparser_ro.cpp index 2d4d5acfad..2ef4cecfac 100644 --- a/engines/scumm/midiparser_ro.cpp +++ b/engines/scumm/midiparser_ro.cpp @@ -69,18 +69,15 @@ void MidiParser_RO::parseNextEvent (EventInfo &info) {  		if (info.command() == 0xA) {  			++_lastMarkerCount;  			info.event = 0xF0; -		} else if (info.command() == 0xF && info.event != 0xFF) { +		} else if (info.event == 0xF0 || info.event == 0xF1) {  			byte delay = *(_position._play_pos++);  			info.delta += delay; -			if (info.event != 0xF0) { -				// The event is usually 0xF0 but there are a -				// few cases in EGA Loom where it's 0xF1. I'm -				// speculating that this is for adding values -				// greater than 255 to info.delta. See bug -				// #1498785. -				// -				// The actual calculation is pure guesswork, -				// but the result sounds good enough to me. +			if (info.event == 0xF1) { +				// This event is, as far as we have been able +				// to determine, only used in one single song +				// in EGA Loom. It seems to be meant for adding +				// values greater than 255 to info.delta. See +				// bug #1498785.  				info.delta += 256;  			}  			continue;  | 
