diff options
author | Alyssa Milburn | 2011-11-03 22:44:04 +0100 |
---|---|---|
committer | Alyssa Milburn | 2011-11-03 22:44:04 +0100 |
commit | cfdb22b95c5f48565267cc975d50a08c51a4474d (patch) | |
tree | 0daf053867f89764064a202d52c278973a0c7276 /engines/composer/composer.cpp | |
parent | 07f578b8aa8df60ab27f6ac3b9d0c1933d5e8796 (diff) | |
download | scummvm-rg350-cfdb22b95c5f48565267cc975d50a08c51a4474d.tar.gz scummvm-rg350-cfdb22b95c5f48565267cc975d50a08c51a4474d.tar.bz2 scummvm-rg350-cfdb22b95c5f48565267cc975d50a08c51a4474d.zip |
COMPOSER: Add some incomplete V1 scripting support.
Diffstat (limited to 'engines/composer/composer.cpp')
-rw-r--r-- | engines/composer/composer.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
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<OldScript *>::iterator i = _oldScripts.begin(); i != _oldScripts.end(); i++) + delete *i; for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++) delete i->_archive; for (Common::List<Sprite>::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<OldScript *>::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) { |