diff options
author | Martin Kiewitz | 2010-01-01 09:40:28 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-01 09:40:28 +0000 |
commit | ca83c13ec98a3ccd4f71d74c2e2554fc874a7113 (patch) | |
tree | 787c6195e9b9f1ea530e4953a01b33e3d4bfb5ff | |
parent | afc4bc12959ffa9ac5a611f2f7de4da598b80857 (diff) | |
download | scummvm-rg350-ca83c13ec98a3ccd4f71d74c2e2554fc874a7113.tar.gz scummvm-rg350-ca83c13ec98a3ccd4f71d74c2e2554fc874a7113.tar.bz2 scummvm-rg350-ca83c13ec98a3ccd4f71d74c2e2554fc874a7113.zip |
SCI: switch to previous gameid, when importing character data in qfg series
svn-id: r46813
-rw-r--r-- | engines/sci/sci.cpp | 21 | ||||
-rw-r--r-- | engines/sci/sci.h | 2 |
2 files changed, 21 insertions, 2 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index 812a230bb8..33e7e4b994 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -280,12 +280,29 @@ Common::String SciEngine::getSavegamePattern() const { return _targetName + ".???"; } +Common::String SciEngine::getFilePrefix() const { + const char* gameID = getGameID(); + if (!strcmp(gameID, "qfg2")) { + // Quest for Glory 2 wants to read files from Quest for Glory 1 (EGA/VGA) to import character data + if (_gamestate->currentRoomNumber() == 805) + return "qfg1"; + // TODO: Include import-room for qfg1vga + } + if (!strcmp(gameID, "qfg3")) { + // Quest for Glory 3 wants to read files from Quest for Glory 2 to import character data + if (_gamestate->currentRoomNumber() == 54) + return "qfg2"; + } + // TODO: Implement the same for qfg4, when sci32 is good enough + return _targetName; +} + Common::String SciEngine::wrapFilename(const Common::String &name) const { - return _targetName + "-" + name; + return getFilePrefix() + "-" + name; } Common::String SciEngine::unwrapFilename(const Common::String &name) const { - Common::String prefix = _targetName + "-"; + Common::String prefix = getFilePrefix() + "-"; if (name.hasPrefix(prefix.c_str())) return Common::String(name.c_str() + prefix.size()); return name; diff --git a/engines/sci/sci.h b/engines/sci/sci.h index f6df9ce1fc..40fbbbe5ab 100644 --- a/engines/sci/sci.h +++ b/engines/sci/sci.h @@ -139,6 +139,8 @@ public: Common::String getSavegameName(int nr) const; Common::String getSavegamePattern() const; + Common::String getFilePrefix() const; + /** Prepend 'TARGET-' to the given filename. */ Common::String wrapFilename(const Common::String &name) const; |