aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/sequences
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/sequences')
-rw-r--r--engines/pink/objects/sequences/sequence.cpp9
-rw-r--r--engines/pink/objects/sequences/sequence.h8
-rw-r--r--engines/pink/objects/sequences/sequencer.cpp7
3 files changed, 20 insertions, 4 deletions
diff --git a/engines/pink/objects/sequences/sequence.cpp b/engines/pink/objects/sequences/sequence.cpp
index 2071683681..098330bf03 100644
--- a/engines/pink/objects/sequences/sequence.cpp
+++ b/engines/pink/objects/sequences/sequence.cpp
@@ -134,6 +134,11 @@ void Sequence::skipItemsTo(int index) {
}
}
+void Sequence::skipSubSequence() {
+ if (_context->getNextItemIndex() < _context->getSequence()->getItems().size())
+ _context->getSequence()->start(0);
+}
+
void SequenceAudio::deserialize(Archive &archive) {
Sequence::deserialize(archive);
archive >> _soundName;
@@ -182,4 +187,8 @@ void SequenceAudio::restart() {
Sequence::restart();
}
+void SequenceAudio::skipToLastSubSequence() {
+ end();
+}
+
} // End of namespace Pink \ No newline at end of file
diff --git a/engines/pink/objects/sequences/sequence.h b/engines/pink/objects/sequences/sequence.h
index e4695f2088..5db00b4920 100644
--- a/engines/pink/objects/sequences/sequence.h
+++ b/engines/pink/objects/sequences/sequence.h
@@ -49,9 +49,11 @@ public:
virtual void update();
virtual void restart();
- void skipToLastSubSequence();
+ virtual void skipSubSequence();
+ virtual void skipToLastSubSequence();
void skipItemsTo(int index);
+
public:
SequenceContext *_context;
Sequencer *_sequencer;
@@ -69,9 +71,13 @@ public:
virtual void init(int unk);
virtual void start(int unk);
virtual void end();
+
virtual void update();
virtual void restart();
+ virtual void skipSubSequence() {};
+ virtual void skipToLastSubSequence();
+
private:
Common::String _soundName;
Sound *_sound;
diff --git a/engines/pink/objects/sequences/sequencer.cpp b/engines/pink/objects/sequences/sequencer.cpp
index 057603a790..871a2e2621 100644
--- a/engines/pink/objects/sequences/sequencer.cpp
+++ b/engines/pink/objects/sequences/sequencer.cpp
@@ -73,7 +73,8 @@ void Sequencer::toConsole() {
}
void Sequencer::update() {
- _context->_sequence->update();
+ if (_context)
+ _context->_sequence->update();
}
void Sequencer::removeContext(SequenceContext *context) {
@@ -82,8 +83,8 @@ void Sequencer::removeContext(SequenceContext *context) {
}
void Sequencer::skipSubSequence() {
- if (_context && _context->getNextItemIndex() < _context->getSequence()->getItems().size())
- _context->getSequence()->start(0);
+ if (_context)
+ _context->getSequence()->skipSubSequence();
}
void Sequencer::restartSequence() {