diff options
author | whiterandrek | 2018-04-02 08:57:56 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2018-06-28 23:51:32 +0200 |
commit | 49d5ea28c023a43f7d1444b55ac8c06df9966128 (patch) | |
tree | 37db0a106b33970b934243f8c48adcb12c12255e /engines/pink/objects/pages | |
parent | e48ac17f68ccd1b4432d9d6e15e811a88ea8daf4 (diff) | |
download | scummvm-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.cpp | 19 | ||||
-rw-r--r-- | engines/pink/objects/pages/game_page.h | 2 | ||||
-rw-r--r-- | engines/pink/objects/pages/page.cpp | 6 | ||||
-rw-r--r-- | engines/pink/objects/pages/page.h | 2 |
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); |