aboutsummaryrefslogtreecommitdiff
path: root/engines/composer
diff options
context:
space:
mode:
authorAlyssa Milburn2011-11-03 22:42:22 +0100
committerAlyssa Milburn2011-11-03 22:42:22 +0100
commit51fb6295696067a54576e1ccdac9aaa8b4e8fcae (patch)
tree7872b1ffbfeeb4ceddfa9814147da5045c534830 /engines/composer
parentd3999850e78d67fe906a8334ec161550acf0be1b (diff)
downloadscummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.tar.gz
scummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.tar.bz2
scummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.zip
COMPOSER: Add support for loading V1 pages.
Diffstat (limited to 'engines/composer')
-rw-r--r--engines/composer/composer.cpp28
-rw-r--r--engines/composer/composer.h1
2 files changed, 26 insertions, 3 deletions
diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 085ce815dd..6650a4a129 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -316,9 +316,31 @@ Common::String ComposerEngine::mangleFilename(Common::String filename) {
}
void ComposerEngine::loadLibrary(uint id) {
- if (!id)
- id = atoi(getStringFromConfig("Common", "StartUp").c_str());
- Common::String filename = getFilename("Libs", id);
+ Common::String filename;
+
+ if (getGameType() == GType_ComposerV1) {
+ if (!id || _bookGroup.empty())
+ filename = getStringFromConfig("Common", "StartPage");
+ else
+ filename = getStringFromConfig(_bookGroup, Common::String::format("%d", id));
+ filename = mangleFilename(filename);
+
+ _bookGroup.clear();
+ for (uint i = 0; i < filename.size(); i++) {
+ if (filename[i] == '\\' || filename[i] == ':')
+ continue;
+ for (uint j = 0; j < filename.size(); j++) {
+ if (filename[j] == '.')
+ break;
+ _bookGroup += filename[j];
+ }
+ break;
+ }
+ } else {
+ if (!id)
+ id = atoi(getStringFromConfig("Common", "StartUp").c_str());
+ filename = getFilename("Libs", id);
+ }
Library library;
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index 03e895b59e..524c2869ba 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -149,6 +149,7 @@ private:
uint _directoriesToStrip;
Common::ConfigFile _bookIni;
+ Common::String _bookGroup;
Common::List<Library> _libraries;
Common::Array<PendingPageChange> _pendingPageChanges;