[Scummvm-git-logs] scummvm master -> b169715da4310f7403f45ee21b917b2e14083b38
dreammaster
noreply at scummvm.org
Sun Dec 19 23:49:34 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b169715da4 SHERLOCK: Fix Scalpel animations not being resumed after conversation
Commit: b169715da4310f7403f45ee21b917b2e14083b38
https://github.com/scummvm/scummvm/commit/b169715da4310f7403f45ee21b917b2e14083b38
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2021-12-19T15:49:30-08:00
Commit Message:
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.
Changed paths:
engines/sherlock/scalpel/scalpel_talk.cpp
engines/sherlock/talk.cpp
engines/sherlock/tattoo/tattoo_talk.cpp
diff --git a/engines/sherlock/scalpel/scalpel_talk.cpp b/engines/sherlock/scalpel/scalpel_talk.cpp
index cf1a590e1b..d581081a00 100644
--- a/engines/sherlock/scalpel/scalpel_talk.cpp
+++ b/engines/sherlock/scalpel/scalpel_talk.cpp
@@ -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();
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index 4adda48364..f78fe08734 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -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
diff --git a/engines/sherlock/tattoo/tattoo_talk.cpp b/engines/sherlock/tattoo/tattoo_talk.cpp
index 7a31431ce6..442627c822 100644
--- a/engines/sherlock/tattoo/tattoo_talk.cpp
+++ b/engines/sherlock/tattoo/tattoo_talk.cpp
@@ -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();
More information about the Scummvm-git-logs
mailing list