[Scummvm-cvs-logs] CVS: scummvm/simon items.cpp,1.65,1.66 simon.cpp,1.194,1.195

Jamieson Christian jamieson630 at users.sourceforge.net
Tue May 20 09:44:14 CEST 2003


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

Modified Files:
	items.cpp simon.cpp 
Log Message:
Simon music fixes

Index: items.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/items.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- items.cpp	20 May 2003 16:24:31 -0000	1.65
+++ items.cpp	20 May 2003 16:43:53 -0000	1.66
@@ -1434,12 +1434,37 @@
 void SimonState::o_unk_127() {
 	int a = getVarOrWord();
 	int b = getVarOrWord();
+
 	if (_game & GF_SIMON2) {
 		uint c = getVarOrByte();
 
 		if (_debugMode)
 			warning("o_unk_127(%d,%d,%d) not implemented properly", a, b, c);
 
+		if (_last_music_played != a) {
+			if (b == 999) {
+//				_next_music_to_play = a;
+				playMusic (a);
+				_last_music_played = a;
+				// midi_play (0);
+			}
+		}
+
+		if (b == _vc72_var1 || b == 999)
+			return;
+
+		if (_vc72_var1 == -1 || _vc72_var1 == 999) {
+			_vc70_var2 = c;
+			_vc70_var1 = -1;
+			_vc72_var3 = -1;
+			midi_play (b);
+			_vc72_var1 = b;
+		} else {
+			midi_play (b);
+//			_vc72_var3 = b;
+//			_vc72_var2 = c;
+		}
+/*
 		if (_last_music_played == a) {
 			if (b == _vc72_var1 || b == 999) 
 				return;
@@ -1459,12 +1484,16 @@
 				midi.jump (b, c);
 			}
 		} else if (b == 999) {
-			_next_music_to_play = a;
+			// _next_music_to_play = a;
+			playMusic (a);
+			midi_play (b);
 		}
+*/
 	} else {
 		if (a != _last_music_played) {
 			_last_music_played = a;
 			playMusic(a);
+			midi_play (b);
 		}
 	}
 }

Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -d -r1.194 -r1.195
--- simon.cpp	20 May 2003 15:37:02 -0000	1.194
+++ simon.cpp	20 May 2003 16:43:53 -0000	1.195
@@ -4952,7 +4952,7 @@
 	addTimeEvent(0, 1);
 	openGameFile();
 
-	_last_music_played = (uint) - 1;
+	_last_music_played = -1;
 	_vga_base_delay = 1;
 	
 	_start_mainscript = false;
@@ -5277,24 +5277,25 @@
 	return true;
 }
 
-void SimonState::midi_play(uint a) {
-		if (a == 999)
-			return;
+void SimonState::midi_play (uint track) {
+	if (track == 999)
+		return;
 
-		if (_vc72_var1 == 999) {
-			//FIXME Original game started music at this point
-		}
+	if (_vc72_var1 == 999) {
+//		_midi_var11 = 0;
+		midi.jump (track, 0);
+//		_midi_var12 = 1;
+	}
 }
 
 
-void SimonState::playMusic(uint music) {
+void SimonState::playMusic (uint music) {
 	if (midi._midi_sfx_toggle)
 		return;
 
 	if (_game & GF_SIMON2) {        // Simon 2 music
 		midi.stop();
 		_game_file->seek(_game_offsets_ptr[gss->MUSIC_INDEX_BASE + music - 1], SEEK_SET);
-		//FIXME The original game only loaded music file at this point
 		if (_game & GF_WIN) {	
 			midi.playMultipleSMF (_game_file);
 		} else {
@@ -5334,6 +5335,7 @@
 				midi.playSMF (f, music);
 				delete f;
 			}
+			midi.jump (0, 0);
 		}
 	}
 }





More information about the Scummvm-git-logs mailing list