diff options
-rw-r--r-- | engines/pink/file.cpp | 3 | ||||
-rw-r--r-- | engines/pink/page.cpp | 5 | ||||
-rw-r--r-- | engines/pink/page.h | 3 | ||||
-rw-r--r-- | engines/pink/resource_mgr.cpp | 4 | ||||
-rw-r--r-- | engines/pink/resource_mgr.h | 9 |
5 files changed, 18 insertions, 6 deletions
diff --git a/engines/pink/file.cpp b/engines/pink/file.cpp index 354c7b5ae7..04e87c287b 100644 --- a/engines/pink/file.cpp +++ b/engines/pink/file.cpp @@ -122,7 +122,8 @@ ObjectDescription *OrbFile::getObjDesc(const char *name){ } ResourceDescription *OrbFile::getResDescTable(ObjectDescription *objDesc){ - const uint32 size = objDesc->objectsCount; + const uint32 size = objDesc->resourcesCount; + seek(objDesc->resourcesOffset); ResourceDescription *table = new ResourceDescription[size]; for (uint i = 0; i < size; ++i) { diff --git a/engines/pink/page.cpp b/engines/pink/page.cpp index 123e27be0a..3d644db759 100644 --- a/engines/pink/page.cpp +++ b/engines/pink/page.cpp @@ -72,7 +72,9 @@ void GamePage::init(bool isLoadingSave) { loadManagers(); } - //init actor which inits actions + for (int i = 0; i < _actors.size(); ++i) { + _actors[i]->init(0); + } if (!isLoadingSave) { for (uint i = 0; i < _handlers.size(); ++i) { @@ -112,4 +114,5 @@ Module *GamePage::getModule() const { return _module; } + } // End of namespace Pink diff --git a/engines/pink/page.h b/engines/pink/page.h index 878613acf4..a2458c12ad 100644 --- a/engines/pink/page.h +++ b/engines/pink/page.h @@ -69,11 +69,10 @@ public: Sequencer *getSequencer(); Module *getModule() const; + private: int perhapsIsLoaded; Module *_module; - -private: CursorMgr *_cursorMgr; WalkMgr *_walkMgr; Sequencer *_sequencer; diff --git a/engines/pink/resource_mgr.cpp b/engines/pink/resource_mgr.cpp index dc53cf3a9d..378dded483 100644 --- a/engines/pink/resource_mgr.cpp +++ b/engines/pink/resource_mgr.cpp @@ -20,6 +20,7 @@ * */ +#include <video/flic_decoder.h> #include "resource_mgr.h" #include "file.h" #include "pink.h" @@ -28,7 +29,7 @@ namespace Pink { ResourceMgr::ResourceMgr() - : _orb(nullptr), _bro(nullptr), + : _game(nullptr), _orb(nullptr), _bro(nullptr), _resDescTable(nullptr), _resCount(0) {} @@ -39,6 +40,7 @@ ResourceMgr::~ResourceMgr() { void ResourceMgr::init(PinkEngine *game, GamePage *page) { _orb = game->getOrb(); _bro = game->getBro(); + _game = game; ObjectDescription *objDesc = _orb->getObjDesc(page->getName().c_str()); _resCount = objDesc->resourcesCount; diff --git a/engines/pink/resource_mgr.h b/engines/pink/resource_mgr.h index 7672e84bb0..47c381ad37 100644 --- a/engines/pink/resource_mgr.h +++ b/engines/pink/resource_mgr.h @@ -25,12 +25,17 @@ #ifndef PINK_RESOURCE_MGR_H #define PINK_RESOURCE_MGR_H +namespace Common { + class String; +} + namespace Pink { class GamePage; class PinkEngine; class OrbFile; class BroFile; +class Sound; struct ResourceDescription; @@ -40,12 +45,14 @@ public: ~ResourceMgr(); void init(PinkEngine *game, GamePage *page); + //move methods to page //compiler must do RVO //Common::String loadText(Common::String &name); - //Sound loadSound(Common::String &name); + Sound loadSound(Common::String &name); // loadCEL(); private: + PinkEngine *_game; OrbFile *_orb; BroFile *_bro; ResourceDescription *_resDescTable; |