[Scummvm-cvs-logs] scummvm master -> e3d2229af2c2ec84135d4e7b2d340e4240a92566

m-kiewitz m_kiewitz at users.sourceforge.net
Sat May 30 17:42:16 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e3d2229af2 SHERLOCK: midi parser delta reading changed


Commit: e3d2229af2c2ec84135d4e7b2d340e4240a92566
    https://github.com/scummvm/scummvm/commit/e3d2229af2c2ec84135d4e7b2d340e4240a92566
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-05-30T17:42:36+02:00

Commit Message:
SHERLOCK: midi parser delta reading changed

Changed paths:
    engines/sherlock/music.cpp



diff --git a/engines/sherlock/music.cpp b/engines/sherlock/music.cpp
index 3e31bcc..884fbd6 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) {






More information about the Scummvm-git-logs mailing list