aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/talk.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-03-31 21:30:22 -0400
committerPaul Gilbert2015-03-31 21:30:22 -0400
commit8fa8b14762ce655d0d99782864be927d3c946cba (patch)
tree52e905869490908c81d221034048e67fc5720dd5 /engines/sherlock/talk.cpp
parent54ecf6cda88f6a32b0e12f9fdb2698c540d76bd4 (diff)
downloadscummvm-rg350-8fa8b14762ce655d0d99782864be927d3c946cba.tar.gz
scummvm-rg350-8fa8b14762ce655d0d99782864be927d3c946cba.tar.bz2
scummvm-rg350-8fa8b14762ce655d0d99782864be927d3c946cba.zip
SHERLOCK: Implement clearTalking and Talk::drawInterface
Diffstat (limited to 'engines/sherlock/talk.cpp')
-rw-r--r--engines/sherlock/talk.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index e5d6cea64a..79f9167506 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -190,7 +190,7 @@ void Talk::talkTo(const Common::String &filename) {
case TALK_MODE:
if (_speaker < 128)
- clearTalking();
+ people.clearTalking();
if (_talkCounter)
return;
@@ -554,10 +554,6 @@ void Talk::loadTalkFile(const Common::String &filename) {
setTalkMap();
}
-void Talk::clearTalking() {
- // TODO
-}
-
/**
* Remove any voice commands from a loaded statement list
*/
@@ -604,8 +600,35 @@ void Talk::setTalkMap() {
}
}
+/**
+ * Draws the interface for conversation display
+ */
void Talk::drawInterface() {
- // TODO
+ Screen &screen = *_vm->_screen;
+ Surface &bb = *screen._backBuffer;
+
+ bb.fillRect(Common::Rect(0, CONTROLS_Y, SHERLOCK_SCREEN_WIDTH, CONTROLS_Y1 + 10), BORDER_COLOR);
+ bb.fillRect(Common::Rect(0, CONTROLS_Y + 10, 2, SHERLOCK_SCREEN_HEIGHT), BORDER_COLOR);
+ bb.fillRect(Common::Rect(SHERLOCK_SCREEN_WIDTH - 2, CONTROLS_Y + 10,
+ SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT), BORDER_COLOR);
+ bb.fillRect(Common::Rect(0, SHERLOCK_SCREEN_HEIGHT - 1, SHERLOCK_SCREEN_WIDTH - 2,
+ SHERLOCK_SCREEN_HEIGHT), BORDER_COLOR);
+ bb.fillRect(Common::Rect(2, CONTROLS_Y + 10, SHERLOCK_SCREEN_WIDTH - 2,
+ SHERLOCK_SCREEN_HEIGHT - 2), INV_BACKGROUND);
+
+ if (_talkTo != -1) {
+ screen.makeButton(Common::Rect(99, CONTROLS_Y, 139, CONTROLS_Y + 10),
+ 119 - screen.stringWidth("Exit") / 2, "Exit");
+ screen.makeButton(Common::Rect(140, CONTROLS_Y, 180, CONTROLS_Y + 10),
+ 159 - screen.stringWidth("Up"), "Up");
+ screen.makeButton(Common::Rect(181, CONTROLS_Y, 221, CONTROLS_Y + 10),
+ 200 - screen.stringWidth("Down") / 2, "Down");
+ } 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);
+ screen.gPrint(Common::Point(160 - strWidth / 2, CONTROLS_Y), COMMAND_FOREGROUND, false, "P");
+ }
}
/**