aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/scalpel_talk.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-06-07 11:37:15 -0400
committerPaul Gilbert2015-06-07 11:37:15 -0400
commit02ff4ce4950e09afb634feae4a7a854644418019 (patch)
treef5f5c2469438450f0ba656a9dd8a9b72e2e8df23 /engines/sherlock/scalpel/scalpel_talk.cpp
parent6cc469dc5c1021764f0cf4a4e0a46e83f760ae5f (diff)
downloadscummvm-rg350-02ff4ce4950e09afb634feae4a7a854644418019.tar.gz
scummvm-rg350-02ff4ce4950e09afb634feae4a7a854644418019.tar.bz2
scummvm-rg350-02ff4ce4950e09afb634feae4a7a854644418019.zip
SHERLOCK: Implemented talk/listen sequence methods
Diffstat (limited to 'engines/sherlock/scalpel/scalpel_talk.cpp')
-rw-r--r--engines/sherlock/scalpel/scalpel_talk.cpp34
1 files changed, 3 insertions, 31 deletions
diff --git a/engines/sherlock/scalpel/scalpel_talk.cpp b/engines/sherlock/scalpel/scalpel_talk.cpp
index 2923359415..89efc70803 100644
--- a/engines/sherlock/scalpel/scalpel_talk.cpp
+++ b/engines/sherlock/scalpel/scalpel_talk.cpp
@@ -97,7 +97,8 @@ const byte SCALPEL_OPCODES[] = {
0, // OP_NPC_VERB_SCRIPT
0, // OP_RESTORE_PEOPLE_SEQUENCE
0, // OP_NPC_VERB_TARGET
- 0 // OP_TURN_SOUNDS_OFF
+ 0, // OP_TURN_SOUNDS_OFF
+ 0 // OP_NULL
};
/*----------------------------------------------------------------*/
@@ -281,7 +282,7 @@ OpcodeReturn ScalpelTalk::cmdSwitchSpeaker(const byte *&str) {
people.setTalking(_speaker);
pullSequence();
pushSequence(_speaker);
- setSequence(_speaker);
+ people.setTalkSequence(_speaker);
return RET_SUCCESS;
}
@@ -457,35 +458,6 @@ OpcodeReturn ScalpelTalk::cmdCarriageReturn(const byte *&str) {
return RET_SUCCESS;
}
-void ScalpelTalk::setSequence(int speaker, int sequenceNum) {
- People &people = *_vm->_people;
- Scene &scene = *_vm->_scene;
-
- // If no speaker is specified, then nothing needs to be done
- if (speaker == -1)
- return;
-
- if (speaker) {
- int objNum = people.findSpeaker(speaker);
- if (objNum != -1) {
- Object &obj = scene._bgShapes[objNum];
-
- if (obj._seqSize < MAX_TALK_SEQUENCES) {
- warning("Tried to copy too many talk frames");
- } else {
- for (int idx = 0; idx < MAX_TALK_SEQUENCES; ++idx) {
- obj._sequences[idx] = people._characters[speaker]._talkSequences[idx];
- if (idx > 0 && !obj._sequences[idx] && !obj._sequences[idx - 1])
- return;
-
- obj._frameNumber = 0;
- obj._sequenceNumber = 0;
- }
- }
- }
- }
-}
-
} // End of namespace Scalpel
} // End of namespace Sherlock