aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/music.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/music.cpp')
-rw-r--r--engines/xeen/music.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/engines/xeen/music.cpp b/engines/xeen/music.cpp
index ae3d5aba83..c4e4f7b4c3 100644
--- a/engines/xeen/music.cpp
+++ b/engines/xeen/music.cpp
@@ -179,7 +179,7 @@ void MusicDriver::playFX(uint effectId, const byte *data) {
}
void MusicDriver::playSong(const byte *data) {
- _musDataPtr = data;
+ _musDataPtr = _musStartPtr = data;
_musSubroutines.clear();
_musCountdownTimer = 0;
_field1E = true;
@@ -473,8 +473,9 @@ bool AdlibMusicDriver::musInjectMidi(const byte *&srcP, byte param) {
}
bool AdlibMusicDriver::musPlayInstrument(const byte *&srcP, byte param) {
+ byte instrument = *srcP++;
if (param < 7)
- playInstrument(param, _musInstrumentPtrs[param]);
+ playInstrument(param, _musInstrumentPtrs[instrument]);
return false;
}
@@ -576,9 +577,7 @@ const uint AdlibMusicDriver::WAVEFORMS[24] = {
/*------------------------------------------------------------------------*/
-Music::Music(Audio::Mixer *mixer) : _mixer(mixer), _musicDriver(nullptr),
- _songData(nullptr) {
- _mixer = mixer;
+Music::Music() : _musicDriver(nullptr), _songData(nullptr) {
_musicDriver = new AdlibMusicDriver();
loadEffectsData();
}