aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/true_talk
diff options
context:
space:
mode:
authorPaul Gilbert2017-06-22 06:48:23 -0400
committerPaul Gilbert2017-06-22 06:48:23 -0400
commit007776ba16ad34320d6665ad646b64aa46615bf3 (patch)
treeb10c8d2eab7c3ccae5995dc0d494073aaf5d0d41 /engines/titanic/true_talk
parent0f084fb70346af8b00120b35d873dc68b665e4a3 (diff)
downloadscummvm-rg350-007776ba16ad34320d6665ad646b64aa46615bf3.tar.gz
scummvm-rg350-007776ba16ad34320d6665ad646b64aa46615bf3.tar.bz2
scummvm-rg350-007776ba16ad34320d6665ad646b64aa46615bf3.zip
TITANIC: Add German handling to getSuffixedWord
Diffstat (limited to 'engines/titanic/true_talk')
-rw-r--r--engines/titanic/true_talk/tt_vocab.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/engines/titanic/true_talk/tt_vocab.cpp b/engines/titanic/true_talk/tt_vocab.cpp
index dcd6a2258f..4ec7354534 100644
--- a/engines/titanic/true_talk/tt_vocab.cpp
+++ b/engines/titanic/true_talk/tt_vocab.cpp
@@ -232,6 +232,27 @@ TTword *TTvocab::getSuffixedWord(TTstring &str) const {
TTstring tempStr(str);
TTword *word = nullptr;
+ if (g_vm->isGerman()) {
+ static const char *const SUFFIXES[13] = {
+ "est", "em", "en", "er", "es", "et", "st",
+ "s", "e", "n", "t"
+ };
+
+ for (int idx = 0; idx < 13; ++idx) {
+ if (tempStr.hasSuffix(SUFFIXES[idx])) {
+ tempStr.deleteSuffix(strlen(SUFFIXES[idx]));
+ word = getPrimeWord(tempStr);
+ if (word)
+ break;
+ tempStr = str;
+ }
+ }
+
+ if (word)
+ word->setSynStr(str);
+ return word;
+ }
+
if (tempStr.hasSuffix("s")) {
tempStr.deleteSuffix(1);
word = getPrimeWord(tempStr);