From 80622943e49d299f5f79040df167fa662b684f88 Mon Sep 17 00:00:00 2001 From: whiterandrek Date: Thu, 31 May 2018 23:11:08 +0300 Subject: PINK: prepare page interface to add PDAPage --- engines/pink/objects/actions/action_play_with_sfx.cpp | 2 +- engines/pink/objects/actions/action_play_with_sfx.h | 4 ++-- engines/pink/objects/actors/actor.cpp | 10 +++++++--- engines/pink/objects/actors/actor.h | 8 +++++--- engines/pink/objects/pages/game_page.cpp | 4 ---- engines/pink/objects/pages/game_page.h | 3 --- engines/pink/objects/pages/page.cpp | 4 ++++ engines/pink/objects/pages/page.h | 11 +++++++++++ engines/pink/pink.cpp | 2 +- engines/pink/pink.h | 4 ++-- engines/pink/resource_mgr.cpp | 2 +- engines/pink/resource_mgr.h | 6 ++++-- 12 files changed, 38 insertions(+), 22 deletions(-) diff --git a/engines/pink/objects/actions/action_play_with_sfx.cpp b/engines/pink/objects/actions/action_play_with_sfx.cpp index 6ab8fa6b82..c4ab139043 100644 --- a/engines/pink/objects/actions/action_play_with_sfx.cpp +++ b/engines/pink/objects/actions/action_play_with_sfx.cpp @@ -89,7 +89,7 @@ void ActionSfx::toConsole() { debug("\t\tActionSfx: _sfx = %s, _volume = %u, _frame = %u", _sfxName.c_str(), _volume, _frame); } -void ActionSfx::play(GamePage *page) { +void ActionSfx::play(Page *page) { if (!_sound) _sound = page->loadSound(_sfxName); diff --git a/engines/pink/objects/actions/action_play_with_sfx.h b/engines/pink/objects/actions/action_play_with_sfx.h index c9fd348b6b..8945572548 100644 --- a/engines/pink/objects/actions/action_play_with_sfx.h +++ b/engines/pink/objects/actions/action_play_with_sfx.h @@ -46,7 +46,7 @@ private: }; class Sound; -class GamePage; +class Page; class ActionSfx : public Object { public: @@ -55,7 +55,7 @@ public: virtual void deserialize(Archive &archive); virtual void toConsole(); - void play(GamePage *page); + void play(Page *page); uint32 getFrame(); void end(); diff --git a/engines/pink/objects/actors/actor.cpp b/engines/pink/objects/actors/actor.cpp index a1d179b945..cf87b57198 100644 --- a/engines/pink/objects/actors/actor.cpp +++ b/engines/pink/objects/actors/actor.cpp @@ -31,7 +31,7 @@ namespace Pink { void Actor::deserialize(Archive &archive) { NamedObject::deserialize(archive); - _page = static_cast(archive.readObject()); + _page = static_cast(archive.readObject()); _actions.deserialize(archive); } @@ -54,7 +54,7 @@ Action *Actor::findAction(const Common::String &name) { return nullptr; } -GamePage *Actor::getPage() const { +Page *Actor::getPage() const { return _page; } @@ -97,7 +97,7 @@ void Actor::setAction(Action *newAction) { void Actor::setAction(Action *newAction, bool unk) { if (unk) { - assert(0); // want to see this + //assert(0); // want to see this _isActionEnded = 1; _action = newAction; } else { @@ -158,4 +158,8 @@ void Actor::onHover(Common::Point point, const Common::String &itemName, CursorM cursorMgr->setCursor(kHoldingItemCursor, point, itemName); } +void Actor::setPage(Page *page) { + _page = page; +} + } // End of namespace Pink diff --git a/engines/pink/objects/actors/actor.h b/engines/pink/objects/actors/actor.h index b4fe437cf5..037b8b5408 100644 --- a/engines/pink/objects/actors/actor.h +++ b/engines/pink/objects/actors/actor.h @@ -29,7 +29,7 @@ namespace Pink { -class GamePage; +class Page; class Action; class Sequencer; class Director; @@ -48,7 +48,7 @@ public: virtual void toConsole(); Sequencer *getSequencer() const; - GamePage *getPage() const; + Page *getPage() const; Action *getAction() const; bool isPlaying(); @@ -61,6 +61,8 @@ public: void setAction(Action *newAction); void setAction(Action *newAction, bool unk); + void setPage(Page *page); + void loadState(Archive &archive); void saveState(Archive &archive); @@ -77,7 +79,7 @@ public: virtual void unpause(); protected: - GamePage *_page; + Page *_page; Action *_action; Array _actions; bool _isActionEnded; diff --git a/engines/pink/objects/pages/game_page.cpp b/engines/pink/objects/pages/game_page.cpp index f6b843fae2..4aa77cb2b6 100644 --- a/engines/pink/objects/pages/game_page.cpp +++ b/engines/pink/objects/pages/game_page.cpp @@ -119,10 +119,6 @@ void GamePage::loadManagers() { } } -PinkEngine *GamePage::getGame() { - return _resMgr.getGame(); -} - Sequencer *GamePage::getSequencer() { return _sequencer; } diff --git a/engines/pink/objects/pages/game_page.h b/engines/pink/objects/pages/game_page.h index 7b4f25fcf1..3cd537d077 100644 --- a/engines/pink/objects/pages/game_page.h +++ b/engines/pink/objects/pages/game_page.h @@ -30,8 +30,6 @@ namespace Pink { class CursorMgr; -class WalkMgr; -class Sequencer; class HandlerStartPage; class GamePage : public Page { @@ -49,7 +47,6 @@ public: void loadManagers(); void init(bool isLoadingSave); - PinkEngine *getGame(); Sequencer *getSequencer(); WalkMgr *getWalkMgr(); Module *getModule() const; diff --git a/engines/pink/objects/pages/page.cpp b/engines/pink/objects/pages/page.cpp index 1465e17b39..5f5b99a6f5 100644 --- a/engines/pink/objects/pages/page.cpp +++ b/engines/pink/objects/pages/page.cpp @@ -95,4 +95,8 @@ void Page::unpause() { } } +PinkEngine *Page::getGame() { + return _resMgr.getGame(); +} + } // End of namespace Pink diff --git a/engines/pink/objects/pages/page.h b/engines/pink/objects/pages/page.h index f8b582a52f..08be3a2ccc 100644 --- a/engines/pink/objects/pages/page.h +++ b/engines/pink/objects/pages/page.h @@ -31,6 +31,8 @@ namespace Pink { class Archive; class Actor; class LeadActor; +class WalkMgr; +class Sequencer; class Page : public NamedObject { public: @@ -48,6 +50,15 @@ public: void pause(); void unpause(); + PinkEngine *getGame(); + + virtual Sequencer *getSequencer() { return nullptr; }; + virtual WalkMgr *getWalkMgr() { return nullptr;}; + virtual Module *getModule() const { return nullptr; }; + + virtual bool checkValueOfVariable(const Common::String &variable, const Common::String &value) { return 0; }; + virtual void setVariable(Common::String &variable, Common::String &value) {}; + protected: void init(); diff --git a/engines/pink/pink.cpp b/engines/pink/pink.cpp index 01f9ad1632..3931db840e 100644 --- a/engines/pink/pink.cpp +++ b/engines/pink/pink.cpp @@ -171,7 +171,7 @@ void PinkEngine::initModule(const Common::String &moduleName, const Common::Stri } } -void PinkEngine::changeScene(GamePage *page) { +void PinkEngine::changeScene(Page *page) { setCursor(kLoadingCursor); if (!_nextModule.empty() && _nextModule.compareTo(_module->getName())) { initModule(_nextModule, _nextPage, nullptr); diff --git a/engines/pink/pink.h b/engines/pink/pink.h index e6e698ed38..642a4d1efb 100644 --- a/engines/pink/pink.h +++ b/engines/pink/pink.h @@ -69,7 +69,7 @@ class Console; class Archive; class NamedObject; class Module; -class GamePage; +class Page; class LeadActor; enum { @@ -97,7 +97,7 @@ public: void load(Archive &archive); void initModule(const Common::String &moduleName, const Common::String &pageName, Archive *saveFile); - void changeScene(GamePage *page); + void changeScene(Page *page); OrbFile *getOrb() { return &_orb; } BroFile *getBro() { return _bro; } diff --git a/engines/pink/resource_mgr.cpp b/engines/pink/resource_mgr.cpp index 8f807c2356..d81c98b1f4 100644 --- a/engines/pink/resource_mgr.cpp +++ b/engines/pink/resource_mgr.cpp @@ -38,7 +38,7 @@ ResourceMgr::~ResourceMgr() { clear(); } -void ResourceMgr::init(PinkEngine *game, GamePage *page) { +void ResourceMgr::init(PinkEngine *game, Page *page) { OrbFile *orb = game->getOrb(); _game = game; diff --git a/engines/pink/resource_mgr.h b/engines/pink/resource_mgr.h index 0b06e998da..7cd3dc33a1 100644 --- a/engines/pink/resource_mgr.h +++ b/engines/pink/resource_mgr.h @@ -23,6 +23,8 @@ #ifndef PINK_RESOURCE_MGR_H #define PINK_RESOURCE_MGR_H +#include "common/scummsys.h" + namespace Common { class SafeSeekableSubReadStream; class String; @@ -30,7 +32,7 @@ namespace Common { namespace Pink { -class GamePage; +class Page; class PinkEngine; class OrbFile; class BroFile; @@ -44,7 +46,7 @@ public: ResourceMgr(); ~ResourceMgr(); - void init(PinkEngine *game, GamePage *page); + void init(PinkEngine *game, Page *page); void clear(); //Common::String loadText(Common::String &name); -- cgit v1.2.3