aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2015-06-29 12:33:22 +0300
committerFilippos Karapetis2015-06-29 12:33:22 +0300
commite0761bc67864a3adee31fc0942c9ef536e06360f (patch)
tree2371d515b8a7d4aa0116bf8f84b925992c5952f9 /engines
parentab4e4b0720b5ade5fe0f99c936978b69240c4e19 (diff)
downloadscummvm-rg350-e0761bc67864a3adee31fc0942c9ef536e06360f.tar.gz
scummvm-rg350-e0761bc67864a3adee31fc0942c9ef536e06360f.tar.bz2
scummvm-rg350-e0761bc67864a3adee31fc0942c9ef536e06360f.zip
SHERLOCK: RT: Implement opcode cmdSetTalkSequence
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/tattoo/tattoo_talk.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/engines/sherlock/tattoo/tattoo_talk.cpp b/engines/sherlock/tattoo/tattoo_talk.cpp
index d7d85f48dd..f875554870 100644
--- a/engines/sherlock/tattoo/tattoo_talk.cpp
+++ b/engines/sherlock/tattoo/tattoo_talk.cpp
@@ -701,7 +701,22 @@ OpcodeReturn TattooTalk::cmdSetNPCWalkGraphics(const byte *&str) {
}
OpcodeReturn TattooTalk::cmdSetSceneEntryFlag(const byte *&str) { error("TODO: script opcode (cmdSetSceneEntryFlag)"); }
-OpcodeReturn TattooTalk::cmdSetTalkSequence(const byte *&str) { error("TODO: script opcode (cmdSetTalkSequence)"); }
+
+OpcodeReturn TattooTalk::cmdSetTalkSequence(const byte *&str) {
+ TattooPeople &people = *(TattooPeople *)_vm->_people;
+ int speaker = str[1] - 1;
+ int sequenceNumber = str[2];
+
+ if (sequenceNumber < 128)
+ people.setTalkSequence(speaker, sequenceNumber);
+ else
+ people.setListenSequence(speaker, sequenceNumber);
+
+ str += 2;
+
+ return RET_SUCCESS;
+}
+
OpcodeReturn TattooTalk::cmdSetWalkControl(const byte *&str) { error("TODO: script opcode (cmdSetWalkControl)"); }
// Dummy opcode