aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/scalpel_talk.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/scalpel/scalpel_talk.h')
-rw-r--r--engines/sherlock/scalpel/scalpel_talk.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/sherlock/scalpel/scalpel_talk.h b/engines/sherlock/scalpel/scalpel_talk.h
index 1d70db14b9..9e07b26dc8 100644
--- a/engines/sherlock/scalpel/scalpel_talk.h
+++ b/engines/sherlock/scalpel/scalpel_talk.h
@@ -37,6 +37,8 @@ namespace Scalpel {
class ScalpelTalk : public Talk {
private:
+ Common::Stack<SequenceEntry> _sequenceStack;
+
OpcodeReturn cmdSwitchSpeaker(const byte *&str);
OpcodeReturn cmdAssignPortraitLocation(const byte *&str);
OpcodeReturn cmdGotoScene(const byte *&str);
@@ -103,15 +105,25 @@ public:
void talk3DOMovieTrigger(int subIndex);
/**
+ * Push the details of a passed object onto the saved sequences stack
+ */
+ virtual void pushSequenceEntry(Object *obj);
+
+ /**
* Pulls a background object sequence from the sequence stack and restore's the
* object's sequence
*/
- virtual void pullSequence();
+ virtual void pullSequence(int slot = -1);
/**
* Returns true if the script stack is empty
*/
virtual bool isSequencesEmpty() const { return _scriptStack.empty(); }
+
+ /**
+ * Clears the stack of pending object sequences associated with speakers in the scene
+ */
+ virtual void clearSequences();
};
} // End of namespace Scalpel