diff options
author | Thierry Crozat | 2012-04-09 19:38:25 +0100 |
---|---|---|
committer | Thierry Crozat | 2012-04-15 11:45:14 +0100 |
commit | a3406aab131142418b442e74bdd0f5a5ab196028 (patch) | |
tree | 6bbe0ad72e884cb6ca01676360c8439e902d8e4e /engines/dreamweb/dreamweb.cpp | |
parent | 586d9bf32fed9bc2009dcf890a0b714e1e618c2c (diff) | |
download | scummvm-rg350-a3406aab131142418b442e74bdd0f5a5ab196028.tar.gz scummvm-rg350-a3406aab131142418b442e74bdd0f5a5ab196028.tar.bz2 scummvm-rg350-a3406aab131142418b442e74bdd0f5a5ab196028.zip |
DREAMWEB: Support opening data files from ES and FR CD version
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index a846579e46..52aa6ff487 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -63,6 +63,20 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam _channel1 = 0; _datafilePrefix = "DREAMWEB."; + // ES and FR CD release use a different data file prefix + if (isCD()) { + switch(getLanguage()) { + case Common::ES_ESP: + _datafilePrefix = "DREAMWSP."; + break; + case Common::FR_FRA: + _datafilePrefix = "DREAMWFR."; + break; + default: + // Nothing to do + break; + } + } _openChangeSize = kInventx+(4*kItempicsize); _quitRequested = false; @@ -530,6 +544,33 @@ uint8 DreamWebEngine::modifyChar(uint8 c) const { return c; } } + +Common::String DreamWebEngine::modifyFileName(const char* name) { + Common::String fileName(name); + + // Sanity check + if (!fileName.hasPrefix("DREAMWEB")) + return fileName; + + // CD ES and FR release use a different file name + if (isCD()) { + switch(getLanguage()) { + case Common::ES_ESP: + fileName.setChar('S', 6); + fileName.setChar('P', 7); + break; + case Common::FR_FRA: + fileName.setChar('F', 6); + fileName.setChar('R', 7); + break; + default: + // Nothing to do + break; + } + } + + return fileName; +} bool DreamWebEngine::hasSpeech() { return isCD() && _hasSpeech; |