[Scummvm-git-logs] scummvm branch-2-5 -> 7a186d9aed00d2bac06cafa2ad3bc353a7d55770

dreammaster noreply at scummvm.org
Sun Dec 19 23:51:52 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:
7a186d9aed SHERLOCK: Fix Scalpel animations not being resumed after conversation


Commit: 7a186d9aed00d2bac06cafa2ad3bc353a7d55770
    https://github.com/scummvm/scummvm/commit/7a186d9aed00d2bac06cafa2ad3bc353a7d55770
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2021-12-19T15:51:44-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 07b200716b..9b6b78d2ac 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