[Scummvm-git-logs] scummvm master -> 5db138699a10db6597c27c844de005dcaa589aa3
whiterandrek
whiterandrek at gmail.com
Thu Jun 4 18:48:51 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5db138699a PINK: use HandlerSequence instead of HandlerTimerSequences
Commit: 5db138699a10db6597c27c844de005dcaa589aa3
https://github.com/scummvm/scummvm/commit/5db138699a10db6597c27c844de005dcaa589aa3
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-06-04T21:48:36+03:00
Commit Message:
PINK: use HandlerSequence instead of HandlerTimerSequences
Changed paths:
engines/pink/archive.cpp
engines/pink/objects/handlers/handler.cpp
engines/pink/objects/handlers/handler.h
engines/pink/objects/handlers/handler_timer.cpp
engines/pink/objects/handlers/handler_timer.h
diff --git a/engines/pink/archive.cpp b/engines/pink/archive.cpp
index cc92704637..f62344f918 100644
--- a/engines/pink/archive.cpp
+++ b/engines/pink/archive.cpp
@@ -153,7 +153,7 @@ static Object *createObject(int objectId) {
case kHandlerTimerActions:
return new HandlerTimerActions; // hack for Peril, but behavior is correct
case kHandlerTimerSequences:
- return new HandlerTimerSequences;
+ return new HandlerSequences(true);
case kHandlerUseClick:
return new HandlerUseClick;
case kInventoryActor:
diff --git a/engines/pink/objects/handlers/handler.cpp b/engines/pink/objects/handlers/handler.cpp
index 2281acdf1f..3617325c8c 100644
--- a/engines/pink/objects/handlers/handler.cpp
+++ b/engines/pink/objects/handlers/handler.cpp
@@ -81,11 +81,18 @@ void HandlerSequences::handle(Actor *actor) {
Sequence *sequence = sequencer->findSequence(_sequences[index]);
assert(sequence);
- sequencer->authorSequence(sequence, 0);
+ if (_parallel)
+ sequencer->authorParallelSequence(sequence, false);
+ else
+ sequencer->authorSequence(sequence, false);
execute(sequence);
}
+HandlerSequences::HandlerSequences(bool parallel) {
+ _parallel = parallel;
+}
+
void HandlerStartPage::execute(Sequence *sequence) {
sequence->allowSkipping();
}
diff --git a/engines/pink/objects/handlers/handler.h b/engines/pink/objects/handlers/handler.h
index b568fc9791..c73f371c9c 100644
--- a/engines/pink/objects/handlers/handler.h
+++ b/engines/pink/objects/handlers/handler.h
@@ -52,13 +52,16 @@ class Sequence;
class HandlerSequences : public Handler {
public:
+ HandlerSequences(bool parallel = false);
+
void deserialize(Archive &archive) override;
void handle(Actor *actor) override;
protected:
- virtual void execute(Sequence *sequence) = 0;
+ virtual void execute(Sequence *sequence) {};
StringArray _sequences;
+ bool _parallel;
};
class HandlerStartPage : public HandlerSequences {
diff --git a/engines/pink/objects/handlers/handler_timer.cpp b/engines/pink/objects/handlers/handler_timer.cpp
index a1dbff6417..9be73473e7 100644
--- a/engines/pink/objects/handlers/handler_timer.cpp
+++ b/engines/pink/objects/handlers/handler_timer.cpp
@@ -69,39 +69,4 @@ void HandlerTimerActions::handle(Actor *actor) {
}
}
-void HandlerTimerSequences::toConsole() const {
- debugC(6, kPinkDebugLoadingObjects, "HandlerTimerSequences:");
-
- debugC(6, kPinkDebugLoadingObjects, "\tSideEffects:");
- for (uint i = 0; i < _sideEffects.size(); ++i) {
- _sideEffects[i]->toConsole();
- }
-
- debugC(6, kPinkDebugLoadingObjects, "\tConditions:");
- for (uint i = 0; i < _conditions.size(); ++i) {
- _conditions[i]->toConsole();
- }
-
- debugC(6, kPinkDebugLoadingObjects, "\tSequences:");
- for (uint i = 0; i < _sequences.size(); ++i) {
- debugC(6, kPinkDebugLoadingObjects, "\t\t%s", _sequences[i].c_str());
- }
-}
-
-void HandlerTimerSequences::handle(Actor *actor) {
- Handler::handle(actor);
- Sequencer *sequencer = actor->getPage()->getSequencer();
-
- assert(!_sequences.empty());
-
- Common::RandomSource &rnd = actor->getPage()->getGame()->getRnd();
- uint index = rnd.getRandomNumber(_sequences.size() - 1);
-
- Sequence *sequence = sequencer->findSequence(_sequences[index]);
-
- assert(sequence);
-
- sequencer->authorParallelSequence(sequence, 0);
-}
-
} // End of namespace Pink
diff --git a/engines/pink/objects/handlers/handler_timer.h b/engines/pink/objects/handlers/handler_timer.h
index 0095987943..87ba98fa4f 100644
--- a/engines/pink/objects/handlers/handler_timer.h
+++ b/engines/pink/objects/handlers/handler_timer.h
@@ -47,17 +47,6 @@ private:
StringArray _actions;
};
-//appear in HokusPokus
-class HandlerTimerSequences : public HandlerSequences { //originally it was inherited from HandlerTimer
-public:
- void toConsole() const override;
-
- void handle(Actor *actor) override;
-
-protected:
- void execute(Sequence *sequence) override {};
-};
-
} // End of namespace Pink
#endif
More information about the Scummvm-git-logs
mailing list