aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamweb.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2012-04-19 01:03:09 -0700
committerFilippos Karapetis2012-04-19 01:03:09 -0700
commit0a51667e424df073a56810f7f0c225dd922e5142 (patch)
tree98018e9491ce1b36a7a0fe5fd20f4526da715c9c /engines/dreamweb/dreamweb.cpp
parent6544a05bf83ceea3dbde9bfa2bfdd1e8f001d25d (diff)
parent8d274f5006cd55f9cb635172c715fdff1bcd0063 (diff)
downloadscummvm-rg350-0a51667e424df073a56810f7f0c225dd922e5142.tar.gz
scummvm-rg350-0a51667e424df073a56810f7f0c225dd922e5142.tar.bz2
scummvm-rg350-0a51667e424df073a56810f7f0c225dd922e5142.zip
Merge pull request #229 from criezy/dreamweb-fr
Support for Dreamweb fr/es
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r--engines/dreamweb/dreamweb.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index a846579e46..2e9c7bb2b8 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;
@@ -526,10 +540,54 @@ uint8 DreamWebEngine::modifyChar(uint8 c) const {
default:
return c;
}
+ case Common::FR_FRA:
+ switch(c) {
+ case 133:
+ return 'Z' + 1;
+ case 130:
+ return 'Z' + 2;
+ case 138:
+ return 'Z' + 3;
+ case 136:
+ return 'Z' + 4;
+ case 140:
+ return 'Z' + 5;
+ case 135:
+ return 'Z' + 6;
+ case 149:
+ return ',' - 1;
+ case 131:
+ return ',' - 2;
+ case 141:
+ return ',' - 3;
+ case 139:
+ return ',' - 4;
+ case 151:
+ return 'A' - 1;
+ case 147:
+ return 'A' - 3;
+ case 150:
+ return 'A' - 4;
+ default:
+ return c;
+ }
default:
return c;
}
}
+
+Common::String DreamWebEngine::modifyFileName(const char *name) {
+ Common::String fileName(name);
+
+ // Sanity check
+ if (!fileName.hasPrefix("DREAMWEB."))
+ return fileName;
+
+ // Make sure we use the correct file name as it differs depending on the game variant
+ fileName = _datafilePrefix;
+ fileName += name + 9;
+ return fileName;
+}
bool DreamWebEngine::hasSpeech() {
return isCD() && _hasSpeech;