From b76a6e2fb4bbb74e4fa8c340a3d515553980f940 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 6 Jun 2016 06:52:33 -0400 Subject: TITANIC: Added TTnpcScript setupDials --- engines/titanic/true_talk/bellbot_script.cpp | 2 +- engines/titanic/true_talk/deskbot_script.cpp | 2 +- engines/titanic/true_talk/tt_npc_script.cpp | 17 ++++++++++++++--- engines/titanic/true_talk/tt_npc_script.h | 5 ++++- 4 files changed, 20 insertions(+), 6 deletions(-) (limited to 'engines/titanic/true_talk') 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); -- cgit v1.2.3