aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamweb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r--engines/dreamweb/dreamweb.cpp41
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;