From d95e32782abe260aa74162b8c868a583e857be15 Mon Sep 17 00:00:00 2001 From: whitertandrek Date: Mon, 19 Mar 2018 12:54:23 +0200 Subject: PINK: Continue to develop Sequencer::authorSequence method --- engines/pink/items/sequence_item.cpp | 4 ++++ engines/pink/sequences/sequence.cpp | 10 +++++++--- engines/pink/sequences/sequencer.cpp | 4 ++++ engines/pink/sequences/sequencer.h | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) (limited to 'engines') diff --git a/engines/pink/items/sequence_item.cpp b/engines/pink/items/sequence_item.cpp index 050e1d0d4b..2a8a93f4a5 100644 --- a/engines/pink/items/sequence_item.cpp +++ b/engines/pink/items/sequence_item.cpp @@ -23,11 +23,15 @@ #include #include "sequence_item.h" #include "../archive.h" +#include "sequence_item_leader.h" +#include "sequence_item_default_action.h" namespace Pink { void SequenceItem::deserialize(Archive &archive) { archive >> _actor >> _action; + if (!dynamic_cast(this) && !dynamic_cast(this)) + debug("\t\tSequenceItem: _actor = %s, _action = %s", _actor.c_str(), _action.c_str()); } const Common::String &SequenceItem::getActor() const { diff --git a/engines/pink/sequences/sequence.cpp b/engines/pink/sequences/sequence.cpp index 73f1194c3c..0d8adc1ac4 100644 --- a/engines/pink/sequences/sequence.cpp +++ b/engines/pink/sequences/sequence.cpp @@ -44,13 +44,17 @@ SequenceContext::SequenceContext(Sequence *sequence, Sequencer *sequencer) { Common::Array &items = sequence->getItems(); for (uint i = 0; i < items.size(); ++i) { + bool found = 0; for (uint j = 0; j < _states.size(); ++j) { - if (items[i]->getActor() != _states[j].getActor()){ + if (items[i]->getActor() == _states[j].getActor()){ + found = 1; break; } - else assert(0); // can it be ? } - _states.push_back({items[i]->getActor()}); + if (!found) { + debug(items[i]->getActor().c_str()); + _states.push_back({items[i]->getActor()}); + } } } diff --git a/engines/pink/sequences/sequencer.cpp b/engines/pink/sequences/sequencer.cpp index 4f7099fdfc..68b72c1ecd 100644 --- a/engines/pink/sequences/sequencer.cpp +++ b/engines/pink/sequences/sequencer.cpp @@ -54,7 +54,11 @@ void Sequencer::authorSequence(Sequence *sequence, bool unk) { if (sequence){ _context = new SequenceContext(sequence, this); + //unload array of unknown objects + _currentSequenceName = sequence->getName(); + } + else _currentSequenceName.clear(); } } // End of namespace Pink \ No newline at end of file diff --git a/engines/pink/sequences/sequencer.h b/engines/pink/sequences/sequencer.h index 255f2c63ed..e2d16cdea9 100644 --- a/engines/pink/sequences/sequencer.h +++ b/engines/pink/sequences/sequencer.h @@ -45,6 +45,7 @@ private: SequenceContext *_context; // unknown objects array Common::Array _sequences; + Common::String _currentSequenceName; //timers GamePage *_page; }; -- cgit v1.2.3