aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-01 09:40:28 +0000
committerMartin Kiewitz2010-01-01 09:40:28 +0000
commitca83c13ec98a3ccd4f71d74c2e2554fc874a7113 (patch)
tree787c6195e9b9f1ea530e4953a01b33e3d4bfb5ff
parentafc4bc12959ffa9ac5a611f2f7de4da598b80857 (diff)
downloadscummvm-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.cpp21
-rw-r--r--engines/sci/sci.h2
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;