aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/pages
diff options
context:
space:
mode:
authorwhiterandrek2018-04-02 08:57:56 +0300
committerEugene Sandulenko2018-06-28 23:51:32 +0200
commit49d5ea28c023a43f7d1444b55ac8c06df9966128 (patch)
tree37db0a106b33970b934243f8c48adcb12c12255e /engines/pink/objects/pages
parente48ac17f68ccd1b4432d9d6e15e811a88ea8daf4 (diff)
downloadscummvm-rg350-49d5ea28c023a43f7d1444b55ac8c06df9966128.tar.gz
scummvm-rg350-49d5ea28c023a43f7d1444b55ac8c06df9966128.tar.bz2
scummvm-rg350-49d5ea28c023a43f7d1444b55ac8c06df9966128.zip
PINK: added basic cursor implementation, fixed sequenceAudio restarting and skipping, fixed various mem leaks, hopefully fixed finding of transparent color index.
Diffstat (limited to 'engines/pink/objects/pages')
-rw-r--r--engines/pink/objects/pages/game_page.cpp19
-rw-r--r--engines/pink/objects/pages/game_page.h2
-rw-r--r--engines/pink/objects/pages/page.cpp6
-rw-r--r--engines/pink/objects/pages/page.h2
4 files changed, 26 insertions, 3 deletions
diff --git a/engines/pink/objects/pages/game_page.cpp b/engines/pink/objects/pages/game_page.cpp
index 5ff7f0bdc3..6a90b4887b 100644
--- a/engines/pink/objects/pages/game_page.cpp
+++ b/engines/pink/objects/pages/game_page.cpp
@@ -77,7 +77,7 @@ void GamePage::init(bool isLoadingSave) {
isHandler = initHandler();
}
- //_leadActor->start(isHandler);
+ _leadActor->start(isHandler);
}
bool GamePage::initHandler() {
@@ -92,7 +92,7 @@ bool GamePage::initHandler() {
void GamePage::loadManagers() {
perhapsIsLoaded = true;
- _cursorMgr = new CursorMgr(this);
+ _cursorMgr = new CursorMgr(_module->getGame(), this);
_walkMgr = new WalkMgr;
_sequencer = new Sequencer(this);
@@ -137,4 +137,19 @@ void GamePage::toConsole() {
}
}
+GamePage::~GamePage() {
+ delete _cursorMgr;
+ delete _walkMgr;
+ delete _sequencer;
+ for (int i = 0; i < _handlers.size(); ++i) {
+ delete _handlers[i];
+ }
+}
+
+GamePage::GamePage()
+ : _cursorMgr(nullptr), _walkMgr(nullptr), _sequencer(nullptr)
+{
+
+}
+
} // End of namespace Pink \ No newline at end of file
diff --git a/engines/pink/objects/pages/game_page.h b/engines/pink/objects/pages/game_page.h
index 94bff54200..705fb32e22 100644
--- a/engines/pink/objects/pages/game_page.h
+++ b/engines/pink/objects/pages/game_page.h
@@ -34,6 +34,8 @@ class HandlerStartPage;
class GamePage : public Page {
public:
+ GamePage();
+ ~GamePage();
virtual void deserialize(Archive &archive);
virtual void load(Archive &archive);
diff --git a/engines/pink/objects/pages/page.cpp b/engines/pink/objects/pages/page.cpp
index a57860e11d..a579d19d5f 100644
--- a/engines/pink/objects/pages/page.cpp
+++ b/engines/pink/objects/pages/page.cpp
@@ -65,4 +65,10 @@ void Page::init() {
}
}
+Page::~Page() {
+ for (int i = 0; i < _actors.size(); ++i) {
+ delete _actors[i];
+ }
+}
+
} // End of namespace Pink
diff --git a/engines/pink/objects/pages/page.h b/engines/pink/objects/pages/page.h
index 282d061f1e..81a49db9f6 100644
--- a/engines/pink/objects/pages/page.h
+++ b/engines/pink/objects/pages/page.h
@@ -36,7 +36,7 @@ class LeadActor;
class Page : public NamedObject {
public:
-
+ ~Page();
void load(Archive &archive);
Actor *findActor(Common::String &name);
Sound* loadSound(Common::String &fileName);