[Scummvm-cvs-logs] CVS: scummvm/simon items.cpp,1.70,1.71 midi.cpp,1.36,1.37 midi.h,1.14,1.15 simon.cpp,1.198,1.199 vga.cpp,1.49,1.50

Jamieson Christian jamieson630 at users.sourceforge.net
Tue May 20 23:14:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv31144

Modified Files:
	items.cpp midi.cpp midi.h simon.cpp vga.cpp 
Log Message:
More Simon music fixes.

Index: items.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/items.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- items.cpp	21 May 2003 05:12:03 -0000	1.70
+++ items.cpp	21 May 2003 06:13:46 -0000	1.71
@@ -1450,12 +1450,12 @@
 			_last_music_played = music;
 			_next_music_to_play = -1;
 		}
-		midi.jump (track, 0);
+		midi.startTrack (track);
 	} else {
 		if (music != _last_music_played) {
 			_last_music_played = music;
 			loadMusic (music);
-			midi.jump (track, 0);
+			midi.startTrack (track);
 		}
 	}
 }

Index: midi.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/midi.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- midi.cpp	21 May 2003 05:26:28 -0000	1.36
+++ midi.cpp	21 May 2003 06:13:47 -0000	1.37
@@ -116,9 +116,8 @@
 		// Have to unlock it before calling jump()
 		// (which locks it itself), and then relock it
 		// upon returning.
-		debug (0, "  Switching to queued track");
 		_system->unlock_mutex (_mutex);
-		jump (destination, 0);
+		startTrack (destination);
 		_system->lock_mutex (_mutex);
 	} else {
 		stop();
@@ -133,7 +132,7 @@
 	player->_system->unlock_mutex (player->_mutex);
 }
 
-void MidiPlayer::jump (uint16 track, uint16 tick) {
+void MidiPlayer::startTrack (int track) {
 	if (track == _currentTrack)
 		return;
 
@@ -162,11 +161,14 @@
 		_parser = parser; // That plugs the power cord into the wall
 	} else if (_parser) {
 		_system->lock_mutex (_mutex);
+		if (!_parser->setTrack (track)) {
+			_system->unlock_mutex (_mutex);
+			return;
+		}
 		_currentTrack = (byte) track;
+		_parser->jumpToTick (0);
 	}
 
-	_parser->setTrack ((byte) track);
-	_parser->jumpToTick (tick ? tick - 1 : 0);
 	_system->unlock_mutex (_mutex);
 	pause (false);
 }
@@ -223,12 +225,12 @@
 	_system->unlock_mutex (_mutex);
 }
 
-void MidiPlayer::queueTrack (byte track, bool loop) {
+void MidiPlayer::queueTrack (int track, bool loop) {
 	_system->lock_mutex (_mutex);
 	if (_currentTrack == 255) {
 		_system->unlock_mutex (_mutex);
 		setLoop (loop);
-		jump (track, 0);
+		startTrack (track);
 	} else {
 		_queuedTrack = track;
 		_loopQueuedTrack = loop;
@@ -350,7 +352,6 @@
 	_paused = true;
 	_currentTrack = 255;
 	_system->unlock_mutex (_mutex);
-//	jump (0, 1);
 }
 
 void MidiPlayer::loadXMIDI (File *in) {

Index: midi.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/midi.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- midi.h	21 May 2003 05:26:29 -0000	1.14
+++ midi.h	21 May 2003 06:13:47 -0000	1.15
@@ -62,10 +62,10 @@
 	void loadXMIDI (File *in);
 
 	void setLoop (bool loop);
-	void queueTrack (byte track, bool loop);
+	void startTrack(int track);
+	void queueTrack (int track, bool loop);
 	bool isPlaying (bool check_queued = false) { return (_currentTrack != 255 && (_queuedTrack != 255 || !check_queued)); }
 
-	void jump (uint16 track, uint16 tick);
 	void stop();
 	void pause (bool b);
 

Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -d -r1.198 -r1.199
--- simon.cpp	21 May 2003 05:26:29 -0000	1.198
+++ simon.cpp	21 May 2003 06:13:47 -0000	1.199
@@ -1070,7 +1070,7 @@
 	// midi.shutdown();
 	_mus_file->seek(_mus_offsets[a], SEEK_SET);
 	midi.loadSMF (_mus_file, a);
-	midi.jump (0, 0);
+	midi.startTrack (0);
 }
 
 Subroutine *SimonState::getSubroutineByID(uint subroutine_id) {
@@ -5316,7 +5316,9 @@
 				midi.loadSMF (f, music);
 				delete f;
 			}
-			midi.jump (0, 0);
+
+			midi.setLoop (true);
+			midi.startTrack (0);
 		}
 	}
 }

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- vga.cpp	21 May 2003 05:12:04 -0000	1.49
+++ vga.cpp	21 May 2003 06:13:47 -0000	1.50
@@ -1823,7 +1823,7 @@
 	// as a means of stopping what music is currently
 	// playing.
 	midi.setLoop (loop != 0);
-	midi.jump (track, 0);
+	midi.startTrack (track);
 }
 
 void SimonState::vc_70_queue_music() {
@@ -1838,7 +1838,7 @@
 	// a different track upon completion.
 	midi.setLoop (loop != 0);
 	if (track != -1 && track != 999)
-		midi.queueTrack ((byte) track, 0);
+		midi.queueTrack (track, 0);
 }
 
 void SimonState::vc_71_check_music_queue() {
@@ -1873,7 +1873,7 @@
 		midi.stop();
 	} else {
 		midi.setLoop (loop != 0);
-		midi.jump (track, 0);
+		midi.startTrack (track);
 	}
 }
 





More information about the Scummvm-git-logs mailing list