aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/pink/actors/actor.cpp4
-rw-r--r--engines/pink/actors/actor.h1
-rw-r--r--engines/pink/actors/lead_actor.h3
-rw-r--r--engines/pink/module.cpp4
-rw-r--r--engines/pink/module.h7
-rw-r--r--engines/pink/page.cpp4
-rw-r--r--engines/pink/page.h3
-rw-r--r--engines/pink/side_effects/side_effect.h2
-rw-r--r--engines/pink/side_effects/side_effect_module_variable.cpp7
-rw-r--r--engines/pink/side_effects/side_effect_module_variable.h1
10 files changed, 31 insertions, 5 deletions
diff --git a/engines/pink/actors/actor.cpp b/engines/pink/actors/actor.cpp
index 595d8e1146..c4c9b78a23 100644
--- a/engines/pink/actors/actor.cpp
+++ b/engines/pink/actors/actor.cpp
@@ -47,4 +47,8 @@ Action *Actor::findAction(Common::String &name) {
});;
}
+GamePage *Actor::getPage() const {
+ return _page;
+}
+
} // End of namespace Pink
diff --git a/engines/pink/actors/actor.h b/engines/pink/actors/actor.h
index 033fafa281..1db59cf287 100644
--- a/engines/pink/actors/actor.h
+++ b/engines/pink/actors/actor.h
@@ -40,6 +40,7 @@ public:
Action *findAction(Common::String &name);
Sequencer *getSequencer();
+ GamePage *getPage() const;
protected:
GamePage *_page;
diff --git a/engines/pink/actors/lead_actor.h b/engines/pink/actors/lead_actor.h
index 762896c03c..6152faed7f 100644
--- a/engines/pink/actors/lead_actor.h
+++ b/engines/pink/actors/lead_actor.h
@@ -34,7 +34,8 @@ class Sequencer;
class LeadActor : public Actor {
public:
virtual void deserialize(Archive &archive);
- void setNextExecutors(Common::String &nextModule, Common::String &nextPage);
+ void setNextExecutors (Common::String &nextModule, Common::String &nextPage);
+
private:
CursorMgr *_cursorMgr;
WalkMgr *_walkMgr;
diff --git a/engines/pink/module.cpp b/engines/pink/module.cpp
index 4b5d1363d3..28ca3549b2 100644
--- a/engines/pink/module.cpp
+++ b/engines/pink/module.cpp
@@ -95,6 +95,10 @@ PinkEngine *Module::getGame() const {
return _game;
}
+Common::StringMap &Module::getMap() {
+ return _map;
+}
+
} // End of namespace Pink
diff --git a/engines/pink/module.h b/engines/pink/module.h
index 1ec10bf988..abaf679f63 100644
--- a/engines/pink/module.h
+++ b/engines/pink/module.h
@@ -52,12 +52,13 @@ public:
void OnMouseMove();
void OnKeyboardButtonClick();
-private:
- PinkEngine *_game;
-public:
+ Common::StringMap &getMap();
+
PinkEngine *getGame() const;
+
private:
+ PinkEngine *_game;
GamePage *_page;
PagesArray _pages;
InventoryMgr _invMgr;
diff --git a/engines/pink/page.cpp b/engines/pink/page.cpp
index c59e29996f..123e27be0a 100644
--- a/engines/pink/page.cpp
+++ b/engines/pink/page.cpp
@@ -108,4 +108,8 @@ Sequencer *GamePage::getSequencer() {
return _sequencer;
}
+Module *GamePage::getModule() const {
+ return _module;
+}
+
} // End of namespace Pink
diff --git a/engines/pink/page.h b/engines/pink/page.h
index 3b06e5ea02..878613acf4 100644
--- a/engines/pink/page.h
+++ b/engines/pink/page.h
@@ -67,10 +67,13 @@ public:
PinkEngine *getGame();
Sequencer *getSequencer();
+ Module *getModule() const;
private:
int perhapsIsLoaded;
Module *_module;
+
+private:
CursorMgr *_cursorMgr;
WalkMgr *_walkMgr;
Sequencer *_sequencer;
diff --git a/engines/pink/side_effects/side_effect.h b/engines/pink/side_effects/side_effect.h
index e26a28566a..45099f3126 100644
--- a/engines/pink/side_effects/side_effect.h
+++ b/engines/pink/side_effects/side_effect.h
@@ -32,7 +32,7 @@ class LeadActor;
class SideEffect : public Object {
public:
virtual ~SideEffect() {};
- virtual void init(LeadActor *_actor) {};
+ virtual void init(LeadActor *actor) {};
};
diff --git a/engines/pink/side_effects/side_effect_module_variable.cpp b/engines/pink/side_effects/side_effect_module_variable.cpp
index 5f3c85729f..4e1e173d55 100644
--- a/engines/pink/side_effects/side_effect_module_variable.cpp
+++ b/engines/pink/side_effects/side_effect_module_variable.cpp
@@ -25,6 +25,8 @@
*/
#include "side_effect_module_variable.h"
+#include "../actors/lead_actor.h"
+#include "../page.h"
namespace Pink {
@@ -34,4 +36,9 @@ void SideEffectModuleVariable::deserialize(Archive &archive) {
_name.c_str(), _value.c_str());
}
+void SideEffectModuleVariable::init(LeadActor *actor) {
+ Common::StringMap &moduleMap = actor->getPage()->getModule()->getMap();
+ moduleMap[_name] = _value;
+}
+
} \ No newline at end of file
diff --git a/engines/pink/side_effects/side_effect_module_variable.h b/engines/pink/side_effects/side_effect_module_variable.h
index 4eddeba613..df45bf8c46 100644
--- a/engines/pink/side_effects/side_effect_module_variable.h
+++ b/engines/pink/side_effects/side_effect_module_variable.h
@@ -30,6 +30,7 @@ class SideEffectModuleVariable : public SideEffectVariable {
public:
virtual void deserialize(Archive &archive);
+ virtual void init(LeadActor *actor);
};
} // End of namespace Pink