diff options
author | Alyssa Milburn | 2011-11-03 22:42:22 +0100 |
---|---|---|
committer | Alyssa Milburn | 2011-11-03 22:42:22 +0100 |
commit | 51fb6295696067a54576e1ccdac9aaa8b4e8fcae (patch) | |
tree | 7872b1ffbfeeb4ceddfa9814147da5045c534830 | |
parent | d3999850e78d67fe906a8334ec161550acf0be1b (diff) | |
download | scummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.tar.gz scummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.tar.bz2 scummvm-rg350-51fb6295696067a54576e1ccdac9aaa8b4e8fcae.zip |
COMPOSER: Add support for loading V1 pages.
-rw-r--r-- | engines/composer/composer.cpp | 28 | ||||
-rw-r--r-- | engines/composer/composer.h | 1 |
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; |