diff options
author | Paul Gilbert | 2015-04-24 17:25:37 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-04-24 17:25:37 -0500 |
commit | 5e1588e5cc9030c611609df23941609c68df4b65 (patch) | |
tree | 91efbcdb061fa9852829dfa7f3e7e93ef8973bf3 | |
parent | 51eb601f8393876a4ff847a5f4ff9068acd66fc8 (diff) | |
download | scummvm-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.cpp | 19 |
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; } } |