From 51fb6295696067a54576e1ccdac9aaa8b4e8fcae Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Thu, 3 Nov 2011 22:42:22 +0100 Subject: COMPOSER: Add support for loading V1 pages. --- engines/composer/composer.cpp | 28 +++++++++++++++++++++++++--- 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 _libraries; Common::Array _pendingPageChanges; -- cgit v1.2.3