diff options
| -rw-r--r-- | simon/items.cpp | 5 | ||||
| -rw-r--r-- | simon/simon.cpp | 13 | 
2 files changed, 12 insertions, 6 deletions
| diff --git a/simon/items.cpp b/simon/items.cpp index 2e7dede61d..2457f55b57 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -1445,7 +1445,8 @@ void SimonState::o_unk_127() {  			if (b == _vc72_var1 || b == 999)   				return; -			if (_vc72_var1 != 0xFFFF || _vc72_var1 != 999)  { +			//FIXME Changed if to allow midi jumping to work for now. +			if (b != 1)  {  				_vc70_var2 = c;  				_vc70_var1 = 0xFFFF;  				_vc72_var3 = 0xFFFF; @@ -1453,8 +1454,10 @@ void SimonState::o_unk_127() {  				midi_play(b);  				_vc72_var1 = b;  			} else { +				//FIXME This is another midi jump, not sure if variable order is correct.  				_vc72_var3 = b;  				_vc72_var2 = c; +				midi.jump (b, c);  			}  		} else if (b == 999) {  			_next_music_to_play = a; diff --git a/simon/simon.cpp b/simon/simon.cpp index bdc2185dca..006c64a6aa 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -5042,11 +5042,7 @@ void SimonState::midi_play(uint a) {  			return;  		if (_vc72_var1 == 999) { -			if (_game & GF_WIN) {	 -				midi.playMultipleSMF (_game_file); -			} else { -				midi.playXMIDI (_game_file); -			} +			//FIXME Original game started music at this point  		}  } @@ -5058,6 +5054,13 @@ void SimonState::playMusic(uint music) {  	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 { +			midi.playXMIDI (_game_file); +		} +  		_last_music_played = music;  		_vc72_var1 = 999;  		_vc70_var1 = 0xFFFF; | 
