diff options
author | whitertandrek | 2018-03-19 07:47:22 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-06-28 23:51:32 +0200 |
commit | 62f84eae96625e778aae63e75b399a50b16363e8 (patch) | |
tree | acab49603eac30ee4d22cd56ab938b88a4fd2156 /engines/pink | |
parent | fed63e22ec0e21d9f2d05e9b38c7dcec637dccdf (diff) | |
download | scummvm-rg350-62f84eae96625e778aae63e75b399a50b16363e8.tar.gz scummvm-rg350-62f84eae96625e778aae63e75b399a50b16363e8.tar.bz2 scummvm-rg350-62f84eae96625e778aae63e75b399a50b16363e8.zip |
PINK: Implemented SideEffectExit
Diffstat (limited to 'engines/pink')
-rw-r--r-- | engines/pink/actors/actor.h | 2 | ||||
-rw-r--r-- | engines/pink/actors/lead_actor.cpp | 7 | ||||
-rw-r--r-- | engines/pink/actors/lead_actor.h | 2 | ||||
-rw-r--r-- | engines/pink/page.cpp | 6 | ||||
-rw-r--r-- | engines/pink/page.h | 2 | ||||
-rw-r--r-- | engines/pink/side_effects/side_effect.h | 5 | ||||
-rw-r--r-- | engines/pink/side_effects/side_effect_exit.cpp | 5 | ||||
-rw-r--r-- | engines/pink/side_effects/side_effect_exit.h | 2 |
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; |