aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r--engines/parallaction/parallaction.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index d7a023e97e..2f60f604c9 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -20,6 +20,15 @@
*
*/
+#include "common/stdafx.h"
+
+#include "common/util.h"
+#include "common/file.h"
+#include "common/config-manager.h"
+
+#include "sound/mididrv.h"
+#include "sound/mixer.h"
+
#include "parallaction/parallaction.h"
#include "parallaction/menu.h"
#include "parallaction/parser.h"
@@ -29,9 +38,6 @@
#include "parallaction/graphics.h"
#include "parallaction/zone.h"
-#include "common/util.h"
-#include "common/file.h"
-#include "common/config-manager.h"
namespace Parallaction {
@@ -170,6 +176,7 @@ Parallaction::Parallaction(OSystem *syst) :
_musicData1 = 0;
strcpy(_characterName1, "null");
+ _midiPlayer = 0;
_baseTime = 0;
@@ -195,7 +202,7 @@ Parallaction::Parallaction(OSystem *syst) :
Parallaction::~Parallaction() {
-
+ delete _midiPlayer;
}
@@ -270,6 +277,11 @@ int Parallaction::init() {
addNode(&_animations, &_yourself._zone._node);
_graphics = new Graphics(this);
+ int midiDriver = MidiDriver::detectMusicDriver(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MIDI);
+ MidiDriver *driver = MidiDriver::createMidi(midiDriver);
+ _midiPlayer = new MidiPlayer(driver);
+
+ _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
return 0;
}
@@ -856,19 +868,14 @@ void Parallaction::changeCharacter(const char *name) {
refreshInventory(name);
- stopMusic();
-
if (scumm_stricmp(name, "night") && scumm_stricmp(name, "intsushi")) {
if (!scumm_stricmp(name, "dino") || !scumm_stricmp(name, "minidino")) {
- loadMusic("dino");
- } else
- if (!scumm_stricmp(name, "donna") || !scumm_stricmp(name, "minidonna")) {
- loadMusic("donna");
+ _midiPlayer->play("dino");
+ } else if (!scumm_stricmp(name, "donna") || !scumm_stricmp(name, "minidonna")) {
+ _midiPlayer->play("donna");
} else {
- loadMusic("nuts");
+ _midiPlayer->play("nuts");
}
-
- playMusic();
}
}