aboutsummaryrefslogtreecommitdiff
path: root/engines/composer/composer.h
diff options
context:
space:
mode:
authorAlyssa Milburn2011-07-16 00:57:50 +0200
committerAlyssa Milburn2011-07-16 00:57:50 +0200
commit70ae2c74e04ac84503cfe9c1a555495700d55e68 (patch)
tree937e99240814217d2ffea632062501b2dbc59e39 /engines/composer/composer.h
parent28d4aaf095e4f3979d1f6dc75b53d73f412e83a0 (diff)
downloadscummvm-rg350-70ae2c74e04ac84503cfe9c1a555495700d55e68.tar.gz
scummvm-rg350-70ae2c74e04ac84503cfe9c1a555495700d55e68.tar.bz2
scummvm-rg350-70ae2c74e04ac84503cfe9c1a555495700d55e68.zip
COMPOSER: Handle loading/unloading pages properly.
Diffstat (limited to 'engines/composer/composer.h')
-rw-r--r--engines/composer/composer.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index a90eb61459..eba51759a2 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -139,6 +139,14 @@ struct QueuedScript {
uint16 _scriptId;
};
+struct PendingPageChange {
+ PendingPageChange() { }
+ PendingPageChange(uint16 id, bool remove) : _pageId(id), _remove(remove) { }
+
+ uint16 _pageId;
+ bool _remove;
+};
+
class ComposerEngine : public Engine {
protected:
Common::Error run();
@@ -168,6 +176,7 @@ private:
uint _directoriesToStrip;
Common::ConfigFile _bookIni;
Common::List<Library> _libraries;
+ Common::Array<PendingPageChange> _pendingPageChanges;
Common::Array<uint16> _stack;
Common::Array<uint16> _vars;
@@ -179,6 +188,7 @@ private:
Common::String getStringFromConfig(const Common::String &section, const Common::String &key);
Common::String getFilename(const Common::String &section, uint id);
void loadLibrary(uint id);
+ void unloadLibrary(uint id);
bool hasResource(uint32 tag, uint16 id);
Common::SeekableReadStream *getResource(uint32 tag, uint16 id);