diff options
-rw-r--r-- | engines/pink/objects/actors/lead_actor.cpp | 12 | ||||
-rw-r--r-- | engines/pink/objects/actors/lead_actor.h | 18 | ||||
-rw-r--r-- | engines/pink/objects/pages/game_page.cpp | 9 | ||||
-rw-r--r-- | engines/pink/objects/pages/game_page.h | 4 | ||||
-rw-r--r-- | engines/pink/objects/pages/page.cpp | 9 | ||||
-rw-r--r-- | engines/pink/objects/pages/page.h | 1 |
6 files changed, 33 insertions, 20 deletions
diff --git a/engines/pink/objects/actors/lead_actor.cpp b/engines/pink/objects/actors/lead_actor.cpp index 2c886126cd..8e7411e0e8 100644 --- a/engines/pink/objects/actors/lead_actor.cpp +++ b/engines/pink/objects/actors/lead_actor.cpp @@ -39,15 +39,15 @@ void LeadActor::deserialize(Archive &archive) { } void LeadActor::setNextExecutors(Common::String &nextModule, Common::String &nextPage) { - if (_state == Ready || _state == Moving || _state == inDialog1 || _state == Inventory || _state == PDA) { - _state = PlayingVideo; + if (_state == kReady || _state == kMoving || _state == kInDialog1 || _state == kInventory || _state == kPDA) { + _state = kPlayingVideo; _page->getGame()->setNextExecutors(nextModule, nextPage); } } void LeadActor::init(bool unk) { - if (_state == unk_Loading){ - _state = Ready; + if (_state == kUnk_Loading){ + _state = kReady; } _page->getModule()->getInventoryMgr()->setLeadActor(this); Actor::init(unk); @@ -60,4 +60,8 @@ void LeadActor::toConsole() { } } +LeadActor::State LeadActor::getState() const { + return _state; +} + } // End of namespace Pink diff --git a/engines/pink/objects/actors/lead_actor.h b/engines/pink/objects/actors/lead_actor.h index 762facbf1e..30c0a50f49 100644 --- a/engines/pink/objects/actors/lead_actor.h +++ b/engines/pink/objects/actors/lead_actor.h @@ -34,14 +34,14 @@ class Sequencer; class LeadActor : public Actor { public: enum State { - Ready = 0, - Moving, - inDialog1, //??? - Inventory, - PDA, - inDialog2,//??? - PlayingVideo, // ??? - unk_Loading // ???? + kReady = 0, + kMoving, + kInDialog1, //??? + kInventory, + kPDA, + kInDialog2,//??? + kPlayingVideo, // ??? + kUnk_Loading // ???? }; virtual void deserialize(Archive &archive); @@ -51,6 +51,8 @@ public: void setNextExecutors (Common::String &nextModule, Common::String &nextPage); virtual void init(bool unk); + State getState() const; + private: State _state; CursorMgr *_cursorMgr; diff --git a/engines/pink/objects/pages/game_page.cpp b/engines/pink/objects/pages/game_page.cpp index f4a7a084de..9ea91845bd 100644 --- a/engines/pink/objects/pages/game_page.cpp +++ b/engines/pink/objects/pages/game_page.cpp @@ -52,7 +52,6 @@ void GamePage::load(Archive &archive) { } void GamePage::init(bool isLoadingSave) { - if (!isLoadingSave){ //assert(perhapsIsLoaded == 0); loadManagers(); @@ -60,17 +59,15 @@ void GamePage::init(bool isLoadingSave) { toConsole(); - for (int i = 0; i < _actors.size(); ++i) { - _actors[i]->init(0); - } + Page::init(); if (!isLoadingSave) - prepareHandler(); + initHandler(); } -void GamePage::prepareHandler() { +void GamePage::initHandler() { for (uint i = 0; i < _handlers.size(); ++i) { if (_handlers[i]->isSuitable(_leadActor)){ _handlers[i]->init(_leadActor); diff --git a/engines/pink/objects/pages/game_page.h b/engines/pink/objects/pages/game_page.h index 04371605f9..6eb29a257d 100644 --- a/engines/pink/objects/pages/game_page.h +++ b/engines/pink/objects/pages/game_page.h @@ -30,7 +30,7 @@ namespace Pink { class CursorMgr; class WalkMgr; class Sequencer; -class Handler; +class HandlerStartPage; class GamePage : public Page { public: @@ -53,7 +53,7 @@ public: virtual void toConsole(); private: - void prepareHandler(); + void initHandler(); int perhapsIsLoaded; diff --git a/engines/pink/objects/pages/page.cpp b/engines/pink/objects/pages/page.cpp index 36910ec87b..e7ea030867 100644 --- a/engines/pink/objects/pages/page.cpp +++ b/engines/pink/objects/pages/page.cpp @@ -50,4 +50,13 @@ void Page::toConsole() { } } +void Page::init() { + LeadActor::State state = _leadActor->getState(); + bool unk = (state == LeadActor::kInventory || state == LeadActor::kPDA); + + for (int i = 0; i < _actors.size(); ++i) { + _actors[i]->init(unk); + } +} + } // End of namespace Pink diff --git a/engines/pink/objects/pages/page.h b/engines/pink/objects/pages/page.h index 63d45510e5..208364c1c2 100644 --- a/engines/pink/objects/pages/page.h +++ b/engines/pink/objects/pages/page.h @@ -43,6 +43,7 @@ public: virtual void toConsole(); protected: + void init(); Common::Array<Actor*> _actors; ResourceMgr _resMgr; LeadActor *_leadActor; |