From a3406aab131142418b442e74bdd0f5a5ab196028 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Mon, 9 Apr 2012 19:38:25 +0100 Subject: DREAMWEB: Support opening data files from ES and FR CD version --- engines/dreamweb/dreamweb.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'engines/dreamweb/dreamweb.cpp') 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; -- cgit v1.2.3