aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2015-04-24 17:25:37 -0500
committerPaul Gilbert2015-04-24 17:25:37 -0500
commit5e1588e5cc9030c611609df23941609c68df4b65 (patch)
tree91efbcdb061fa9852829dfa7f3e7e93ef8973bf3
parent51eb601f8393876a4ff847a5f4ff9068acd66fc8 (diff)
downloadscummvm-rg350-5e1588e5cc9030c611609df23941609c68df4b65.tar.gz
scummvm-rg350-5e1588e5cc9030c611609df23941609c68df4b65.tar.bz2
scummvm-rg350-5e1588e5cc9030c611609df23941609c68df4b65.zip
SHERLOCK: Fix display of look description dialogs
-rw-r--r--engines/sherlock/talk.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index 3eeb0f0af5..0ac1bbd6aa 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -678,7 +678,7 @@ void Talk::drawInterface() {
} else {
int strWidth = screen.stringWidth(PRESS_KEY_TO_CONTINUE);
screen.makeButton(Common::Rect(46, CONTROLS_Y, 273, CONTROLS_Y + 10),
- 160 - strWidth, PRESS_KEY_TO_CONTINUE);
+ 160 - strWidth / 2, PRESS_KEY_TO_CONTINUE);
screen.gPrint(Common::Point(160 - strWidth / 2, CONTROLS_Y), COMMAND_FOREGROUND, "P");
}
}
@@ -913,12 +913,14 @@ void Talk::pushSequence(int speaker) {
} else {
seqEntry._objNum = people.findSpeaker(speaker);
- Object &obj = scene._bgShapes[seqEntry._objNum];
- for (uint idx = 0; idx < MAX_TALK_SEQUENCES; ++idx)
- seqEntry._sequences.push_back(obj._sequences[idx]);
+ if (seqEntry._objNum != -1) {
+ Object &obj = scene._bgShapes[seqEntry._objNum];
+ for (uint idx = 0; idx < MAX_TALK_SEQUENCES; ++idx)
+ seqEntry._sequences.push_back(obj._sequences[idx]);
- seqEntry._frameNumber = obj._frameNumber;
- seqEntry._seqTo = obj._seqTo;
+ seqEntry._frameNumber = obj._frameNumber;
+ seqEntry._seqTo = obj._seqTo;
+ }
}
_sequenceStack.push(seqEntry);
@@ -1549,13 +1551,14 @@ void Talk::doScript(const Common::String &script) {
screen.print(Common::Point(16, yp), INV_FOREGROUND, lineStr.c_str());
} else {
screen.gPrint(Common::Point(16, yp - 1), INV_FOREGROUND, lineStr.c_str());
+ openTalkWindow = true;
}
} else {
if (ui._windowOpen) {
screen.print(Common::Point(16, yp), COMMAND_FOREGROUND, lineStr.c_str());
- }
- else {
+ } else {
screen.gPrint(Common::Point(16, yp - 1), COMMAND_FOREGROUND, lineStr.c_str());
+ openTalkWindow = true;
}
}