[Scummvm-git-logs] scummvm master -> 9e2d78446e3f823fdb1566a42c0b561b8bd62e60

dreammaster dreammaster at scummvm.org
Sat Sep 23 04:31:46 CEST 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9e2d78446e TITANIC: DE: More BellbotScript changes


Commit: 9e2d78446e3f823fdb1566a42c0b561b8bd62e60
    https://github.com/scummvm/scummvm/commit/9e2d78446e3f823fdb1566a42c0b561b8bd62e60
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-09-22T22:31:42-04:00

Commit Message:
TITANIC: DE: More BellbotScript changes

Changed paths:
    engines/titanic/true_talk/bellbot_script.cpp
    engines/titanic/true_talk/german/bellbot_script.cpp
    engines/titanic/true_talk/german/bellbot_script.h


diff --git a/engines/titanic/true_talk/bellbot_script.cpp b/engines/titanic/true_talk/bellbot_script.cpp
index 931ad75..60a692c 100644
--- a/engines/titanic/true_talk/bellbot_script.cpp
+++ b/engines/titanic/true_talk/bellbot_script.cpp
@@ -1046,14 +1046,15 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
 		break;
 
 	case 21:
-		if (sentence->contains("hiker") || sentence->contains("hug")) {
+		if (sentence->localWord("hiker") && (sentence->contains("hug") ||
+				sentence->contains("anhalter"))) {
 			addResponse(getDialogueId(200379));
 			applyFlag = true;
 		}
 		break;
 
 	case 22:
-		if (sentence->localWord("get") || sentence->localWord("it")) {
+		if (sentence->localWord("get") && sentence->localWord("it")) {
 			addResponse(getDialogueId(200474));
 			applyFlag = true;
 		}
@@ -1109,9 +1110,9 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
 		break;
 
 	case 30:
-		if ((sentence->localWord("did") || sentence->localWord("not"))
-				|| (sentence->localWord("would") || sentence->localWord("not"))
-				|| (sentence->localWord("could") || sentence->localWord("not"))
+		if ((sentence->localWord("did") && sentence->localWord("not"))
+				|| (sentence->localWord("would") && sentence->localWord("not"))
+				|| (sentence->localWord("could") && sentence->localWord("not"))
 				|| sentence->localWord("tried")) {
 			addResponse(getDialogueId(200416));
 			applyFlag = true;
@@ -1272,8 +1273,8 @@ case44:
 		break;
 
 	case 51:
-		if (sentence->localWord("no") || sentence->localWord("it")
-				|| sentence->localWord("is") || sentence->localWord("not")
+		if ((sentence->localWord("no") && sentence->localWord("it")
+				&& sentence->localWord("is") && sentence->localWord("not"))
 				|| sentence->contains("yeah right")) {
 			addResponse(getDialogueId(200636));
 			applyFlag = true;
@@ -1379,7 +1380,7 @@ stateFlag = false;
 		break;
 
 	case 64:
-		if (sentence->localWord("rowboat")) {
+		if (sentence->localWord("rowbot")) {
 			addResponse(getDialogueId(200052));
 			applyFlag = true;
 		}
@@ -1410,9 +1411,9 @@ stateFlag = false;
 		break;
 
 	case 68:
-		if ((sentence->localWord("i") && sentence->localWord("care"))
-			|| sentence->localWord("do")
-			|| sentence->localWord("me")) {
+		if ((sentence->localWord("i") && (sentence->localWord("care") ||
+				sentence->localWord("do")))
+				|| sentence->localWord("me")) {
 			addResponse(getDialogueId(201006));
 			applyFlag = true;
 		}
@@ -1453,10 +1454,13 @@ stateFlag = false;
 		break;
 
 	case 73:
-		if (sentence->localWord("mood") && (charId() == 7 || charId() == 5)) {
-			addResponse(getDialogueId(201021));
-			applyFlag = true;
-			stateFlag = false;
+		if (sentence->localWord("mood") || sentence->contains("stimmung") ||
+				sentence->contains("laune") || sentence->contains("verfassung")) {
+			if (charId() == 7 || charId() == 5) {
+				addResponse(getDialogueId(201021));
+				applyFlag = true;
+				stateFlag = false;
+			}
 		}
 		break;
 
@@ -1625,7 +1629,8 @@ stateFlag = false;
 		break;
 
 	case 88:
-		if (sentence->_category == 6 || sentence->contains("upside down")) {
+		if (sentence->_category == 6 || 
+				(g_language != Common::DE_DEU && sentence->contains("upside down"))) {
 			addResponse(getDialogueId(202142));
 			applyFlag = true;
 		}
@@ -1906,7 +1911,7 @@ bool BellbotScript::addRoomDescription(const TTroomScript *roomScript) {
 
 	switch (roomScript->_scriptId) {
 	case 101:
-		addResponse(getDialogueId(getValue(2) == 1 ? 20185 : 201832));
+		addResponse(getDialogueId(getValue(2) == 1 ? 201835 : 201832));
 		break;
 	case 107:
 		if (_room107First) {
@@ -1977,5 +1982,4 @@ bool BellbotScript::addRoomDescription(const TTroomScript *roomScript) {
 	return true;
 }
 
-
 } // End of namespace Titanic
diff --git a/engines/titanic/true_talk/german/bellbot_script.cpp b/engines/titanic/true_talk/german/bellbot_script.cpp
index c6ff9f6..1f82fb0 100644
--- a/engines/titanic/true_talk/german/bellbot_script.cpp
+++ b/engines/titanic/true_talk/german/bellbot_script.cpp
@@ -21,9 +21,83 @@
  */
 
 #include "titanic/true_talk/german/bellbot_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
 
 namespace Titanic {
 namespace German {
 
+int BellbotScript::doSentenceEntry(int val1, const int *srcIdP, const TTroomScript *roomScript, const TTsentence *sentence) {
+	switch (val1) {
+	case 5001:
+	case 5021:
+		return 0;
+
+	case 5002:
+		addResponse(getDialogueId(*srcIdP));
+		addResponse(getDialogueId(200000));
+		applyResponse();
+		return 2;
+
+	case 5003:
+		addResponse(getDialogueId(*srcIdP));
+		return 2;
+
+	case 5022:
+	case 5023:
+		if (CTrueTalkManager::getStateValue(7)) {
+			bool flag = true;
+
+			if (!sentence->localWord("broken") && !sentence->contains("kaputt") &&
+				!sentence->contains("im eimer") && !sentence->contains("funktioniert nicht") &&
+				CTrueTalkManager::_currentNPC) {
+				CNodeItem *node = CTrueTalkManager::_currentNPC->getNode();
+				if (node) {
+					CString nodeName = node->getName();
+					if (nodeName.contains("5") || nodeName.contains("6") || nodeName.contains("7"))
+						flag = false;
+				}
+			}
+
+			if (flag) {
+				CTrueTalkManager::triggerAction(29, 1);
+				selectResponse(201771);
+			}
+			else {
+				CTrueTalkManager::triggerAction(29, 2);
+				selectResponse(201554);
+			}
+		}
+		else {
+			selectResponse(21378);
+		}
+
+		applyResponse();
+		return 2;
+
+	case 5024:
+		if (CTrueTalkManager::getStateValue(7)) {
+			CTrueTalkManager::triggerAction(29, 3);
+			return 0;
+		}
+
+		selectResponse(21378);
+		applyResponse();
+		return 2;
+
+	case 5025:
+		if (CTrueTalkManager::getStateValue(7)) {
+			CTrueTalkManager::triggerAction(29, 4);
+			return 0;
+		}
+
+		selectResponse(21378);
+		applyResponse();
+		return 2;
+
+	default:
+		return TTnpcScript::doSentenceEntry(val1, srcIdP, roomScript, sentence);
+	}
+}
+
 } // End of namespace German
 } // End of namespace Titanic
diff --git a/engines/titanic/true_talk/german/bellbot_script.h b/engines/titanic/true_talk/german/bellbot_script.h
index 42f6e5d..4670c02 100644
--- a/engines/titanic/true_talk/german/bellbot_script.h
+++ b/engines/titanic/true_talk/german/bellbot_script.h
@@ -33,6 +33,11 @@ public:
 	BellbotScript(int val1, const char *charClass, int v2,
 		const char *charName, int v3, int val2) :
 		::Titanic::BellbotScript(val1, charClass, v2, charName, v3, val2) {}
+
+	/**
+	 * Process a sentence fragment entry
+	 */
+	virtual int doSentenceEntry(int val1, const int *srcIdP, const TTroomScript *roomScript, const TTsentence *sentence);
 };
 
 } // End of namespace German





More information about the Scummvm-git-logs mailing list