[Scummvm-git-logs] scummvm master -> d48caed20410f2e0abbf6708870388d7b9e9ea56

dreammaster dreammaster at scummvm.org
Mon Sep 18 02:36:12 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:
d48caed204 TITANIC: Add Deskbot German specific logic


Commit: d48caed20410f2e0abbf6708870388d7b9e9ea56
    https://github.com/scummvm/scummvm/commit/d48caed20410f2e0abbf6708870388d7b9e9ea56
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-09-17T20:36:07-04:00

Commit Message:
TITANIC: Add Deskbot German specific logic

Changed paths:
    engines/titanic/module.mk
    engines/titanic/true_talk/deskbot_script.cpp
    engines/titanic/true_talk/deskbot_script.h
    engines/titanic/true_talk/german/barbot_script.cpp
    engines/titanic/true_talk/german/deskbot_script.cpp
    engines/titanic/true_talk/german/deskbot_script.h


diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
index 3958059..8c5cdd6 100644
--- a/engines/titanic/module.mk
+++ b/engines/titanic/module.mk
@@ -484,7 +484,7 @@ MODULE_OBJS := \
 	support/text_cursor.o \
 	support/time_event_info.o \
 	support/video_surface.o \
-	true_talk/german/deskbot_script.o \
+	true_talk/german/barbot_script.o \
 	true_talk/german/bellbot_script.o \
 	true_talk/german/deskbot_script.o \
 	true_talk/german/doorbot_script.o \
diff --git a/engines/titanic/true_talk/deskbot_script.cpp b/engines/titanic/true_talk/deskbot_script.cpp
index 3f65db9..06b78c9 100644
--- a/engines/titanic/true_talk/deskbot_script.cpp
+++ b/engines/titanic/true_talk/deskbot_script.cpp
@@ -24,6 +24,7 @@
 #include "titanic/true_talk/deskbot_script.h"
 #include "titanic/true_talk/true_talk_manager.h"
 #include "titanic/titanic.h"
+#include "titanic/translation.h"
 
 namespace Titanic {
 
@@ -85,7 +86,16 @@ int DeskbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
 				|| sentence->localWord("winning") || sentence->contains("winning")
 				|| sentence->localWord("winner") || sentence->contains("winner")
 				|| sentence->contains("35279") || sentence->contains("3 5 2 7 9")
-				) {
+				|| (g_language == Common::DE_DEU && (
+					sentence->contains("preisaus") ||
+					sentence->contains("tombola") ||
+					sentence->contains("lotterie") ||
+					sentence->contains("gewonnen") ||
+					sentence->contains("glueck") ||
+					sentence->contains("das goldene los") ||
+					sentence->contains("sechs richtige")
+				))
+			) {
 			addResponse(getDialogueId(41773));
 			applyResponse();
 			return 2;
@@ -93,7 +103,8 @@ int DeskbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
 			addResponse(getDialogueId(41771));
 			applyResponse();
 			return 2;
-		} else if (sentence->localWord("upgrade") || sentence->contains("upgrade")) {
+		} else if (sentence->localWord("upgrade") || sentence->contains("upgrade")
+				|| sentence->localWord("secondclass")) {
 			if (CTrueTalkManager::_currentNPC) {
 				CGameObject *obj;
 				if (CTrueTalkManager::_currentNPC->find("Magazine", &obj, FIND_PET)) {
diff --git a/engines/titanic/true_talk/deskbot_script.h b/engines/titanic/true_talk/deskbot_script.h
index ffb6b10..941136d 100644
--- a/engines/titanic/true_talk/deskbot_script.h
+++ b/engines/titanic/true_talk/deskbot_script.h
@@ -30,11 +30,6 @@ namespace Titanic {
 
 class DeskbotScript : public TTnpcScript {
 private:
-	static int _oldId;
-	TTupdateStateArray _states;
-	TTsentenceEntries _entries2;
-	TTsentenceEntries _entries3;
-private:
 	/**
 	 * Setup sentence data
 	 */
@@ -43,11 +38,6 @@ private:
 	/**
 	 * Adds dialogue for the player's assigned room
 	 */
-	uint addAssignedRoomDialogue();
-
-	/**
-	 * Adds dialogue for the player's assigned room
-	 */
 	uint addAssignedRoomDialogue2();
 
 	/**
@@ -66,11 +56,6 @@ private:
 	void setCurrentState(uint newId, uint index);
 
 	/**
-	 * Does preprocessing for the sentence
-	 */
-	int preprocess(const TTroomScript *roomScript, const TTsentence *sentence);
-
-	/**
 	 * Scans the quotes tree
 	 */
 	int searchQuotes(const TTroomScript *roomScript, const TTsentence *sentence);
@@ -89,6 +74,21 @@ private:
 	 * Adds a dialogue description for the player's assigned room
 	 */
 	void addAssignedRoom();
+protected:
+	static int _oldId;
+	TTupdateStateArray _states;
+	TTsentenceEntries _entries2;
+	TTsentenceEntries _entries3;
+protected:
+	/**
+	 * Does preprocessing for the sentence
+	 */
+	int preprocess(const TTroomScript *roomScript, const TTsentence *sentence);
+
+	/**
+	 * Adds dialogue for the player's assigned room
+	 */
+	uint addAssignedRoomDialogue();
 public:
 	DeskbotScript(int val1, const char *charClass, int v2,
 		const char *charName, int v3, int val2);
diff --git a/engines/titanic/true_talk/german/barbot_script.cpp b/engines/titanic/true_talk/german/barbot_script.cpp
index 616653d..3a81776 100644
--- a/engines/titanic/true_talk/german/barbot_script.cpp
+++ b/engines/titanic/true_talk/german/barbot_script.cpp
@@ -20,7 +20,7 @@
  *
  */
 
-#include "titanic/true_talk/german/deskbot_script.h"
+#include "titanic/true_talk/german/barbot_script.h"
 
 namespace Titanic {
 namespace German {
diff --git a/engines/titanic/true_talk/german/deskbot_script.cpp b/engines/titanic/true_talk/german/deskbot_script.cpp
index 616653d..c4d4d37 100644
--- a/engines/titanic/true_talk/german/deskbot_script.cpp
+++ b/engines/titanic/true_talk/german/deskbot_script.cpp
@@ -21,9 +21,58 @@
  */
 
 #include "titanic/true_talk/german/deskbot_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
 
 namespace Titanic {
 namespace German {
 
+int DeskbotScript::preResponse(uint id) {
+	int newId = 0;
+	if (getValue(1) >= 3 && (id == 41190 || id == 41429 || id == 41755 || id == 41757))
+		newId = 241601;
+
+	if (id == 42132)
+		CTrueTalkManager::triggerAction(20, 0);
+
+	return newId;
+}
+
+int DeskbotScript::doSentenceEntry(int val1, const int *srcIdP, const TTroomScript *roomScript, const TTsentence *sentence) {
+	if (val1 != 4501)
+		return TTnpcScript::doSentenceEntry(val1, srcIdP, roomScript, sentence);
+
+	int v = getValue(1);
+	int tagId = *srcIdP;
+
+	switch (v) {
+	case 1:
+		tagId = 240336;
+		break;
+
+	case 2:
+		tagId = addAssignedRoomDialogue();
+		break;
+
+	case 3:
+		if (tagId == 240431 || tagId == 240432) {
+			if (getValue(v) == 1) {
+				if (tagId == 240431)
+					tagId = 240432;
+			} else {
+				if (tagId == 240432)
+					tagId = 240431;
+			}
+		}
+		break;
+
+	default:
+		break;
+	}
+
+	addResponse(getDialogueId(tagId));
+	applyResponse();
+	return 2;
+}
+
 } // End of namespace German
 } // End of namespace Titanic
diff --git a/engines/titanic/true_talk/german/deskbot_script.h b/engines/titanic/true_talk/german/deskbot_script.h
index 1987fb7..c3719c8 100644
--- a/engines/titanic/true_talk/german/deskbot_script.h
+++ b/engines/titanic/true_talk/german/deskbot_script.h
@@ -33,6 +33,16 @@ public:
 	DeskbotScript(int val1, const char *charClass, int v2,
 		const char *charName, int v3, int val2) :
 		::Titanic::DeskbotScript(val1, charClass, v2, charName, v3, val2) {}
+
+	/**
+	 * Handles getting a pre-response
+	 */
+	virtual int preResponse(uint id);
+
+	/**
+	 * 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