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; |