aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-06-06 06:52:33 -0400
committerPaul Gilbert2016-07-15 19:20:17 -0400
commitb76a6e2fb4bbb74e4fa8c340a3d515553980f940 (patch)
tree9321612330e09f8515b5d1d5c09b489e878a2774
parenta05173568253455ba05763865f5e8869bd36d7f0 (diff)
downloadscummvm-rg350-b76a6e2fb4bbb74e4fa8c340a3d515553980f940.tar.gz
scummvm-rg350-b76a6e2fb4bbb74e4fa8c340a3d515553980f940.tar.bz2
scummvm-rg350-b76a6e2fb4bbb74e4fa8c340a3d515553980f940.zip
TITANIC: Added TTnpcScript setupDials
-rw-r--r--engines/titanic/true_talk/bellbot_script.cpp2
-rw-r--r--engines/titanic/true_talk/deskbot_script.cpp2
-rw-r--r--engines/titanic/true_talk/tt_npc_script.cpp17
-rw-r--r--engines/titanic/true_talk/tt_npc_script.h5
4 files changed, 20 insertions, 6 deletions
diff --git a/engines/titanic/true_talk/bellbot_script.cpp b/engines/titanic/true_talk/bellbot_script.cpp
index 1da2726b17..828d6069ea 100644
--- a/engines/titanic/true_talk/bellbot_script.cpp
+++ b/engines/titanic/true_talk/bellbot_script.cpp
@@ -35,7 +35,7 @@ BellbotScript::BellbotScript(int val1, const char *charClass, int v2,
CTrueTalkManager::setFlags(40, 0);
CTrueTalkManager::setFlags(26, 0);
- randomizeFlags();
+ setupDials(0, 0, 0);
_array[0] = 100;
_array[1] = 0;
diff --git a/engines/titanic/true_talk/deskbot_script.cpp b/engines/titanic/true_talk/deskbot_script.cpp
index 6edaa142be..4149199f56 100644
--- a/engines/titanic/true_talk/deskbot_script.cpp
+++ b/engines/titanic/true_talk/deskbot_script.cpp
@@ -35,7 +35,7 @@ DeskbotScript::DeskbotScript(int val1, const char *charClass, int v2,
CTrueTalkManager::setFlags(21, 0);
CTrueTalkManager::setFlags(22, 0);
- randomizeFlags();
+ setupDials(0, 0, 0);
_array[0] = 100;
if (_field74 == 1)
_field74 = 0;
diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp
index c3f0509635..e31be05b13 100644
--- a/engines/titanic/true_talk/tt_npc_script.cpp
+++ b/engines/titanic/true_talk/tt_npc_script.cpp
@@ -98,8 +98,15 @@ void TTnpcScript::resetFlags() {
_field2CC = false;
}
-void TTnpcScript::randomizeFlags() {
- warning("TODO");
+void TTnpcScript::setupDials(int dial1, int dial2, int dial3) {
+ _dialValues[0] = dial1;
+ _dialValues[1] = dial2;
+ _dialValues[2] = dial3;
+ _field74 = getRandomNumber(3) - 1;
+ _field78 = getRandomNumber(5) + 6;
+
+ if (_dialValues[0] > 70)
+ _field78 = -_field78;
}
void TTnpcScript::proc4(int v) {
@@ -613,7 +620,11 @@ bool TTnpcScript::defaultProcess(TTroomScript *roomScript, TTsentence *sentence)
return true;
}
- // TODO
+ if (tagId) {
+ if (chooseResponse(roomScript, sentence, tagId) == 2)
+ return true;
+ }
+
return false;
}
diff --git a/engines/titanic/true_talk/tt_npc_script.h b/engines/titanic/true_talk/tt_npc_script.h
index 1c7446aabc..c76e385807 100644
--- a/engines/titanic/true_talk/tt_npc_script.h
+++ b/engines/titanic/true_talk/tt_npc_script.h
@@ -123,7 +123,10 @@ protected:
*/
void resetFlags();
- void randomizeFlags();
+ /**
+ * Setup dials
+ */
+ void setupDials(int dial1, int dial2, int dial3);
static int getRoom54(int roomId);