diff options
-rw-r--r-- | engines/parallaction/parallaction_ns.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp index f1e7b14583..c3d917a33d 100644 --- a/engines/parallaction/parallaction_ns.cpp +++ b/engines/parallaction/parallaction_ns.cpp @@ -351,8 +351,11 @@ void Parallaction_ns::changeLocation() { MouseTriState oldMouseState = _input->getMouseState(); _input->setMouseState(MOUSE_DISABLED); - _soundManI->playLocationMusic(location); - + if (!_intro) { + // prevent music changes during the introduction + _soundManI->playLocationMusic(location); + } + _input->stopHovering(); // this is still needed to remove the floatingLabel _gfx->freeLabels(); @@ -468,8 +471,11 @@ void Parallaction_ns::changeCharacter(const char *name) { _objects = _disk->loadObjects(_char.getBaseName()); _objectsNames = _disk->loadTable(_char.getBaseName()); - _soundManI->playCharacterMusic(_char.getBaseName()); - + if (!_intro) { + // prevent music changes during the introduction + _soundManI->playCharacterMusic(_char.getBaseName()); + } + // The original engine used to reload 'common' only on loadgames. We are reloading here since 'common' // contains character specific stuff. This causes crashes like bug #1816899, because parseLocation tries // to reload scripts but the data archive selected is occasionally wrong. This has been solved by having |