diff --git a/engines/xeen/dialogs/dialogs_party.cpp b/engines/xeen/dialogs/dialogs_party.cpp index 6bd54db712c6..cf49007f308f 100644 --- a/engines/xeen/dialogs/dialogs_party.cpp +++ b/engines/xeen/dialogs/dialogs_party.cpp @@ -45,6 +45,7 @@ void PartyDialog::show(XeenEngine *vm) { void PartyDialog::execute() { EventsManager &events = *_vm->_events; + FileManager &files = *_vm->_files; Interface &intf = *_vm->_interface; Map &map = *_vm->_map; Party &party = *_vm->_party; @@ -54,6 +55,7 @@ void PartyDialog::execute() { bool modeFlag = false; int startingChar = 0; + sound.playSong(files._ccNum ? "newbrigh.m" : "inn.m"); loadButtons(); setupBackground(); diff --git a/engines/xeen/locations.cpp b/engines/xeen/locations.cpp index 63478bab5fe4..7cbfc2bab3ee 100644 --- a/engines/xeen/locations.cpp +++ b/engines/xeen/locations.cpp @@ -572,6 +572,7 @@ Common::String TavernLocation::createLocationText(Character &ch) { } Character *TavernLocation::doOptions(Character *c) { + EventsManager &events = *g_vm->_events; Interface &intf = *g_vm->_interface; Map &map = *g_vm->_map; Party &party = *g_vm->_party; @@ -717,6 +718,15 @@ Character *TavernLocation::doOptions(Character *c) { party.addTime(1440); party._mazeId = 0; + // Say farewell + farewell(); + while (sound.isSoundPlaying()) + events.wait(1); + + // Animate closing a scroll + doScroll(true, false); + sound.stopAllAudio(); + // Show the party dialog PartyDialog::show(g_vm);