aboutsummaryrefslogtreecommitdiff
path: root/engines/gob
diff options
context:
space:
mode:
authorSven Hesse2012-06-18 17:44:04 +0200
committerSven Hesse2012-06-18 17:44:04 +0200
commit2e16e7fc4c6983db99ae99be9a420ba4549be35e (patch)
tree264868f55b40c05c1bc680584360bb362037c603 /engines/gob
parent892ca3a9c57a948254a2779821a24576f82a77d6 (diff)
downloadscummvm-rg350-2e16e7fc4c6983db99ae99be9a420ba4549be35e.tar.gz
scummvm-rg350-2e16e7fc4c6983db99ae99be9a420ba4549be35e.tar.bz2
scummvm-rg350-2e16e7fc4c6983db99ae99be9a420ba4549be35e.zip
GOB: Add a workaround for the wrong German animal names in Little Red
The DOS, Amiga and Atari version of Little Red come with a small screen, accessible through the main menu, that lets children read and listen to animal names in 5 languages: French, German, English, Spanish and Italian. Unfortunately, the German names are partially wrong. This is especially tragic because this is a game for small children and they're supposed to learn something here. So I deem fixing this a very good idea. Just to be sure, someone should probably look over the French, Spanish and Italian words too.
Diffstat (limited to 'engines/gob')
-rw-r--r--engines/gob/draw.h2
-rw-r--r--engines/gob/draw_v2.cpp39
2 files changed, 41 insertions, 0 deletions
diff --git a/engines/gob/draw.h b/engines/gob/draw.h
index 24c5550ea5..1359df632f 100644
--- a/engines/gob/draw.h
+++ b/engines/gob/draw.h
@@ -258,6 +258,8 @@ public:
private:
uint8 _mayorWorkaroundStatus;
+
+ void fixLittleRedStrings();
};
class Draw_Bargon: public Draw_v2 {
diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp
index d9b7a12639..b637ecbd2b 100644
--- a/engines/gob/draw_v2.cpp
+++ b/engines/gob/draw_v2.cpp
@@ -805,6 +805,10 @@ void Draw_v2::spriteOperation(int16 operation) {
break;
case DRAW_PRINTTEXT:
+ // WORKAROUND: There's mistakes in Little Red's animal names.
+ // See this function for details.
+ fixLittleRedStrings();
+
len = strlen(_textToPrint);
left = _destSpriteX;
@@ -933,4 +937,39 @@ void Draw_v2::spriteOperation(int16 operation) {
}
}
+/* WORKAROUND: Fix wrong German animal names in Once Upon A Time: Little Red Riding Hood.
+ *
+ * The DOS, Amiga and Atari version of Little Red come with a small screen, accessible
+ * through the main menu, that lets children read and listen to animal names in 5
+ * languages: French, German, English, Spanish and Italian.
+ * Unfortunately, the German names are partially wrong. This is especially tragic
+ * because this is a game for small children and they're supposed to learn something
+ * here. We fix this.
+ *
+ * However, there's also problems with the recorded spoken German names:
+ * - "Der Rabe" has a far too short "a", sounding more like "Rabbe"
+ * - The wrong article for "Schmetterling" is very audible
+ * - In general, the words are way too overpronounced
+ * These are, of course, way harder to fix.
+ */
+
+static const char *kLittleRedStrings[][2] = {
+ {"die Heule" , "die Eule"},
+ {"das Schmetterling" , "der Schmetterling"},
+ {"die Vespe" , "die Wespe"},
+ {"das Eich\224rnchen" , "das Eichh\224rnchen"}
+};
+
+void Draw_v2::fixLittleRedStrings() {
+ if (!_textToPrint || (_vm->getGameType() != kGameTypeLittleRed))
+ return;
+
+ for (int i = 0; i < ARRAYSIZE(kLittleRedStrings); i++) {
+ if (!strcmp(_textToPrint, kLittleRedStrings[i][0])) {
+ _textToPrint = kLittleRedStrings[i][1];
+ return;
+ }
+ }
+}
+
} // End of namespace Gob