SHERLOCK: Fix Scalpel animations not being resumed after conversation
When talking to another character, his animation would usually freeze. Most of the time this is just a cosmetic problem, but it does make solving the puzzle with the billiard players more annoying than it should be, since you had to leave and re-enter the room. See bug #10931.
This commit is contained in:
parent
a1d2d421a4
commit
7a186d9aed
3 changed files with 5 additions and 10 deletions
|
@ -891,17 +891,10 @@ int ScalpelTalk::talkLine(int lineNum, int stateNum, byte color, int lineY, bool
|
|||
}
|
||||
|
||||
void ScalpelTalk::showTalk() {
|
||||
People &people = *_vm->_people;
|
||||
ScalpelScreen &screen = *(ScalpelScreen *)_vm->_screen;
|
||||
ScalpelUserInterface &ui = *(ScalpelUserInterface *)_vm->_ui;
|
||||
byte color = ui._endKeyActive ? COMMAND_FOREGROUND : COMMAND_NULL;
|
||||
|
||||
clearSequences();
|
||||
pushSequence(_talkTo);
|
||||
people.setListenSequence(_talkTo);
|
||||
|
||||
ui._selector = ui._oldSelector = -1;
|
||||
|
||||
if (!ui._windowOpen) {
|
||||
// Draw the talk interface on the back buffer
|
||||
drawInterface();
|
||||
|
|
|
@ -408,7 +408,11 @@ void Talk::talkTo(const Common::String filename) {
|
|||
// If the new conversion is a reply first, then we don't need
|
||||
// to display any choices, since the reply needs to be shown
|
||||
if (!newStatement._statement.hasPrefix("*") && !newStatement._statement.hasPrefix("^")) {
|
||||
clearSequences();
|
||||
pushSequence(_talkTo);
|
||||
people.setListenSequence(_talkTo, 129);
|
||||
_talkIndex = select;
|
||||
ui._selector = ui._oldSelector = -1;
|
||||
showTalk();
|
||||
|
||||
// Break out of loop now that we're waiting for player input
|
||||
|
@ -550,6 +554,7 @@ void Talk::initTalk(int objNum) {
|
|||
}
|
||||
} else {
|
||||
_talkIndex = select;
|
||||
ui._selector = ui._oldSelector = -1;
|
||||
showTalk();
|
||||
|
||||
// Break out of loop now that we're waiting for player input
|
||||
|
|
|
@ -232,11 +232,8 @@ void TattooTalk::nothingToSay() {
|
|||
}
|
||||
|
||||
void TattooTalk::showTalk() {
|
||||
TattooPeople &people = *(TattooPeople *)_vm->_people;
|
||||
TattooUserInterface &ui = *(TattooUserInterface *)_vm->_ui;
|
||||
|
||||
people.setListenSequence(_talkTo, 129);
|
||||
|
||||
_talkWidget.load();
|
||||
_talkWidget.summonWindow();
|
||||
_talkWidget.refresh();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue