diff options
| author | Martin Kiewitz | 2015-05-30 17:42:36 +0200 | 
|---|---|---|
| committer | Martin Kiewitz | 2015-05-30 17:42:36 +0200 | 
| commit | 0cc5313689d980fc9855eba6bbdc973c7a9d9e96 (patch) | |
| tree | 553bfef3f4b60dda8bb2dbeae73c43aeb62d975e | |
| parent | 4e404416146c43d8a3aa2175b33e95f84a348eff (diff) | |
| download | scummvm-rg350-0cc5313689d980fc9855eba6bbdc973c7a9d9e96.tar.gz scummvm-rg350-0cc5313689d980fc9855eba6bbdc973c7a9d9e96.tar.bz2 scummvm-rg350-0cc5313689d980fc9855eba6bbdc973c7a9d9e96.zip  | |
SHERLOCK: midi parser delta reading changed
| -rw-r--r-- | engines/sherlock/music.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/sherlock/music.cpp b/engines/sherlock/music.cpp index 3e31bcc83d..884fbd6221 100644 --- a/engines/sherlock/music.cpp +++ b/engines/sherlock/music.cpp @@ -86,9 +86,15 @@ void MidiParser_SH::parseNextEvent(EventInfo &info) {  		115, 112,  55, 124, 123,   0,  14, 117  /* 120-127 */  	}; +	// there is no delta right at the start of the music data +	// this order is essential, otherwise notes will get delayed or even go missing +	if (_position._playPos != _tracks[0]) { +		info.delta = *(_position._playPos++); +	} else { +		info.delta = 0; +	}  	info.start = _position._playPos; -	info.delta = 0;  	info.event = *_position._playPos++;  	//warning("Event %x", info.event); @@ -157,8 +163,6 @@ void MidiParser_SH::parseNextEvent(EventInfo &info) {  		warning("MidiParser_SH::parseNextEvent: Unsupported event code %x", info.event);  		break;  	}// switch (info.command()) - -	info.delta = *(_position._playPos++);  }  bool MidiParser_SH::loadMusic(byte *data, uint32 size) {  | 
