aboutsummaryrefslogtreecommitdiff
path: root/engines/pink
diff options
context:
space:
mode:
authorwhiterandrek2018-03-22 12:30:16 +0200
committerEugene Sandulenko2018-06-28 23:51:32 +0200
commiteb6ce676e4e604f510cbf3f4d651c18911f4468f (patch)
treee2e1824b4fe29ebe86389761cca1c12d9fa5d84d /engines/pink
parentbe415cd46f7f5c87e221270ec43f050565bdd3e8 (diff)
downloadscummvm-rg350-eb6ce676e4e604f510cbf3f4d651c18911f4468f.tar.gz
scummvm-rg350-eb6ce676e4e604f510cbf3f4d651c18911f4468f.tar.bz2
scummvm-rg350-eb6ce676e4e604f510cbf3f4d651c18911f4468f.zip
PINK: game page init fixes
Diffstat (limited to 'engines/pink')
-rw-r--r--engines/pink/objects/actors/lead_actor.cpp12
-rw-r--r--engines/pink/objects/actors/lead_actor.h18
-rw-r--r--engines/pink/objects/pages/game_page.cpp9
-rw-r--r--engines/pink/objects/pages/game_page.h4
-rw-r--r--engines/pink/objects/pages/page.cpp9
-rw-r--r--engines/pink/objects/pages/page.h1
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;