[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