aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/pink/actors/actor.h2
-rw-r--r--engines/pink/actors/lead_actor.cpp7
-rw-r--r--engines/pink/actors/lead_actor.h2
-rw-r--r--engines/pink/page.cpp6
-rw-r--r--engines/pink/page.h2
-rw-r--r--engines/pink/side_effects/side_effect.h5
-rw-r--r--engines/pink/side_effects/side_effect_exit.cpp5
-rw-r--r--engines/pink/side_effects/side_effect_exit.h2
8 files changed, 27 insertions, 4 deletions
diff --git a/engines/pink/actors/actor.h b/engines/pink/actors/actor.h
index 8daccc88b9..f13cfe2659 100644
--- a/engines/pink/actors/actor.h
+++ b/engines/pink/actors/actor.h
@@ -36,7 +36,7 @@ public:
Actor() {};
virtual void deserialize(Archive &archive);
-private:
+protected:
GamePage *_page;
//int possibly_isActionNotExist;
Action *_action;
diff --git a/engines/pink/actors/lead_actor.cpp b/engines/pink/actors/lead_actor.cpp
index 80a9281598..23c94eddc9 100644
--- a/engines/pink/actors/lead_actor.cpp
+++ b/engines/pink/actors/lead_actor.cpp
@@ -25,6 +25,8 @@
#include "../cursor_mgr.h"
#include "engines/pink/sequences/sequencer.h"
#include "../archive.h"
+#include "../page.h"
+#include "../pink.h"
namespace Pink {
@@ -35,4 +37,9 @@ void LeadActor::deserialize(Archive &archive) {
_sequencer = static_cast<Sequencer*>(archive.readObject());
}
+void LeadActor::setNextExecutors(Common::String &nextModule, Common::String &nextPage) {
+ //TODO check for lead actor state
+ _page->getGame()->setNextExecutors(nextModule, nextPage);
+}
+
} // End of namespace Pink
diff --git a/engines/pink/actors/lead_actor.h b/engines/pink/actors/lead_actor.h
index a859de8fd5..762896c03c 100644
--- a/engines/pink/actors/lead_actor.h
+++ b/engines/pink/actors/lead_actor.h
@@ -34,7 +34,7 @@ class Sequencer;
class LeadActor : public Actor {
public:
virtual void deserialize(Archive &archive);
-
+ void setNextExecutors(Common::String &nextModule, Common::String &nextPage);
private:
CursorMgr *_cursorMgr;
WalkMgr *_walkMgr;
diff --git a/engines/pink/page.cpp b/engines/pink/page.cpp
index a1d025f4ff..cfc78c8974 100644
--- a/engines/pink/page.cpp
+++ b/engines/pink/page.cpp
@@ -35,6 +35,7 @@ void Page::load(Archive &archive) {
archive >> _actors;
}
+
void GamePage::deserialize(Archive &archive) {
Page::deserialize(archive);
_module = static_cast<Module*>(archive.readObject());
@@ -82,4 +83,9 @@ void GamePage::loadFields() {
}
+PinkEngine *GamePage::getGame() {
+ return _module->getGame();
+}
+
+
} // End of namespace Pink
diff --git a/engines/pink/page.h b/engines/pink/page.h
index 10dcd4e2ad..a408ba81bd 100644
--- a/engines/pink/page.h
+++ b/engines/pink/page.h
@@ -38,7 +38,6 @@ class Page : public NamedObject {
public:
void load(Archive &archive);
-
protected:
ResourceMgr _resMgr;
LeadActor *_leadActor;
@@ -64,6 +63,7 @@ public:
void init(bool isLoadingSave);
+ PinkEngine *getGame();
private:
int perhapsIsLoaded;
diff --git a/engines/pink/side_effects/side_effect.h b/engines/pink/side_effects/side_effect.h
index 628fe1e883..f3d4eec06d 100644
--- a/engines/pink/side_effects/side_effect.h
+++ b/engines/pink/side_effects/side_effect.h
@@ -27,9 +27,12 @@
namespace Pink {
+class LeadActor;
+
class SideEffect : public Object {
public:
-
+ virtual ~SideEffect() {};
+ virtual void init(LeadActor &_actor) {};
};
diff --git a/engines/pink/side_effects/side_effect_exit.cpp b/engines/pink/side_effects/side_effect_exit.cpp
index 0a14e1c3c4..31efc35271 100644
--- a/engines/pink/side_effects/side_effect_exit.cpp
+++ b/engines/pink/side_effects/side_effect_exit.cpp
@@ -23,6 +23,7 @@
#include <common/debug.h>
#include "side_effect_exit.h"
#include "../archive.h"
+#include "../actors/lead_actor.h"
namespace Pink {
@@ -32,4 +33,8 @@ void SideEffectExit::deserialize(Archive &archive) {
_nextModule.c_str(), _nextPage.c_str());
}
+void SideEffectExit::init(LeadActor &_actor) {
+ _actor.setNextExecutors(_nextPage, _nextModule);
+}
+
} // End of namespace Pink \ No newline at end of file
diff --git a/engines/pink/side_effects/side_effect_exit.h b/engines/pink/side_effects/side_effect_exit.h
index fdcd7cd538..5d2076d9bd 100644
--- a/engines/pink/side_effects/side_effect_exit.h
+++ b/engines/pink/side_effects/side_effect_exit.h
@@ -31,6 +31,8 @@ class SideEffectExit : public SideEffect {
public:
virtual void deserialize(Archive &archive);
+ virtual void init(LeadActor &_actor);
+
private:
Common::String _nextModule;
Common::String _nextPage;