aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorwhiterandrek2018-05-13 13:06:16 +0300
committerEugene Sandulenko2018-06-28 23:51:32 +0200
commitab4980aa59ffafcf54c1f791d9619ad317dda7a7 (patch)
treeddca97c7ec65f64c279a96c084323cfb74ccb732 /engines
parentcdcb8f5ec61b1cb63113d2e78804dc80ddf210c4 (diff)
downloadscummvm-rg350-ab4980aa59ffafcf54c1f791d9619ad317dda7a7.tar.gz
scummvm-rg350-ab4980aa59ffafcf54c1f791d9619ad317dda7a7.tar.bz2
scummvm-rg350-ab4980aa59ffafcf54c1f791d9619ad317dda7a7.zip
PINK: added basic implementation of HandlerTimerSequences just to make Hokus Pokus playable after Black Hole
Diffstat (limited to 'engines')
-rw-r--r--engines/pink/objects/handlers/handler_timer.cpp15
-rw-r--r--engines/pink/objects/handlers/handler_timer.h11
2 files changed, 22 insertions, 4 deletions
diff --git a/engines/pink/objects/handlers/handler_timer.cpp b/engines/pink/objects/handlers/handler_timer.cpp
index 757790ea64..b0bfb90918 100644
--- a/engines/pink/objects/handlers/handler_timer.cpp
+++ b/engines/pink/objects/handlers/handler_timer.cpp
@@ -29,6 +29,7 @@
#include <engines/pink/objects/condition.h>
#include <engines/pink/objects/actors/lead_actor.h>
#include <engines/pink/objects/pages/game_page.h>
+#include <engines/pink/objects/sequences/sequencer.h>
#include <engines/pink/pink.h>
@@ -94,4 +95,18 @@ void HandlerTimerSequences::toConsole() {
}
}
+void HandlerTimerSequences::handle(Actor *actor) {
+ Handler::handle(actor);
+ Sequencer *sequencer = actor->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);
+}
+
} // End of namespace Pink \ No newline at end of file
diff --git a/engines/pink/objects/handlers/handler_timer.h b/engines/pink/objects/handlers/handler_timer.h
index 540c7dcc6c..3f5458296f 100644
--- a/engines/pink/objects/handlers/handler_timer.h
+++ b/engines/pink/objects/handlers/handler_timer.h
@@ -30,15 +30,15 @@ namespace Pink {
class LeadActor;
-//TODO: in Peril create HandlerTimerActions when it is request for HandlerTimer
-
+/*
// This class has differences in games
class HandlerTimer : public Handler {
};
+*/
//in Peril this is HandlerTimer
-class HandlerTimerActions : public HandlerTimer {
+class HandlerTimerActions : public Handler {
public:
virtual void toConsole();
virtual void deserialize(Archive &archive);
@@ -52,8 +52,11 @@ private:
class HandlerTimerSequences : public HandlerSequences { //originally it was inherited from HandlerTimer
public:
virtual void toConsole();
+
+ virtual void handle(Actor *actor);
+
protected:
- virtual void execute(Sequence *sequence); // very big and hard function
+ virtual void execute(Sequence *sequence);
};
} // End of namespace Pink