aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/pink/file.cpp3
-rw-r--r--engines/pink/page.cpp5
-rw-r--r--engines/pink/page.h3
-rw-r--r--engines/pink/resource_mgr.cpp4
-rw-r--r--engines/pink/resource_mgr.h9
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;