From cfdb22b95c5f48565267cc975d50a08c51a4474d Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Thu, 3 Nov 2011 22:44:04 +0100 Subject: COMPOSER: Add some incomplete V1 scripting support. --- engines/composer/composer.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'engines/composer/composer.cpp') diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp index 9f4936b8c8..eb7df95ec3 100644 --- a/engines/composer/composer.cpp +++ b/engines/composer/composer.cpp @@ -53,6 +53,8 @@ ComposerEngine::ComposerEngine(OSystem *syst, const ComposerGameDescription *gam ComposerEngine::~ComposerEngine() { DebugMan.clearAllDebugChannels(); + for (Common::List::iterator i = _oldScripts.begin(); i != _oldScripts.end(); i++) + delete *i; for (Common::List::iterator i = _libraries.begin(); i != _libraries.end(); i++) delete i->_archive; for (Common::List::iterator i = _sprites.begin(); i != _sprites.end(); i++) @@ -156,6 +158,7 @@ Common::Error ComposerEngine::run() { redraw(); + tickOldScripts(); processAnimFrame(); } else if (_needsUpdate) { redraw(); @@ -326,6 +329,17 @@ Common::String ComposerEngine::mangleFilename(Common::String filename) { } void ComposerEngine::loadLibrary(uint id) { + if (getGameType() == GType_ComposerV1 && !_libraries.empty()) { + // kill the previous page, starting with any scripts running on it + + for (Common::List::iterator i = _oldScripts.begin(); i != _oldScripts.end(); i++) + delete *i; + _oldScripts.clear(); + + Library *library = &_libraries.front(); + unloadLibrary(library->_id); + } + Common::String filename; if (getGameType() == GType_ComposerV1) { -- cgit v1.2.3