diff options
author | Paul Gilbert | 2016-06-01 21:59:46 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:18:54 -0400 |
commit | e2d3a0a32f62c6865397ca23984e15fbf6af5a3a (patch) | |
tree | 922e2e46549e8d75a1b9e4652e58f1721e13155d /engines/titanic/true_talk/tt_npc_script.cpp | |
parent | 4ab3b4d2097077ab16bc6c33fac7a332ee74e1a2 (diff) | |
download | scummvm-rg350-e2d3a0a32f62c6865397ca23984e15fbf6af5a3a.tar.gz scummvm-rg350-e2d3a0a32f62c6865397ca23984e15fbf6af5a3a.tar.bz2 scummvm-rg350-e2d3a0a32f62c6865397ca23984e15fbf6af5a3a.zip |
TITANIC: Adding setDial method
Diffstat (limited to 'engines/titanic/true_talk/tt_npc_script.cpp')
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.cpp | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp index 2c8b8ba783..48135d0e63 100644 --- a/engines/titanic/true_talk/tt_npc_script.cpp +++ b/engines/titanic/true_talk/tt_npc_script.cpp @@ -21,6 +21,7 @@ */ #include "common/textconsole.h" +#include "titanic/pet_control/pet_control.h" #include "titanic/true_talk/tt_npc_script.h" #include "titanic/true_talk/true_talk_manager.h" #include "titanic/titanic.h" @@ -53,7 +54,8 @@ TTnpcScript::TTnpcScript(int charId, const char *charClass, int v2, _field6C(0), _field70(0), _field74(0), _field78(0), _field7C(0), _field80(0), _field2CC(false) { CTrueTalkManager::_v2 = 0; - Common::fill(&_array[0], &_array[146], 0); + Common::fill(&_dialValues[0], &_dialValues[DIALS_ARRAY_COUNT], 0); + Common::fill(&_array[0], &_array[136], 0); if (!CTrueTalkManager::_v10) { Common::fill(&CTrueTalkManager::_v11[0], &CTrueTalkManager::_v11[41], 0); @@ -243,15 +245,34 @@ int TTnpcScript::proc31() { return 0; } -void TTnpcScript::proc32() { +void TTnpcScript::proc32(int dialNum, int region) { warning("TODO"); } -void TTnpcScript::proc33(int v1, int v2) { - warning("TODO"); +void TTnpcScript::setDial(int dialNum, int value) { + if (dialNum < DIALS_ARRAY_COUNT) { + int oldRegion = proc34(dialNum); + + int newRegion = 1; + if (value < 50) + newRegion = 0; + else if (value > 150) + newRegion = 2; + + if (oldRegion == newRegion) + proc32(dialNum, newRegion); + + _dialValues[dialNum] = value; + } + + if (g_vm->_trueTalkManager) { + CPetControl *petControl = g_vm->_trueTalkManager->getGameManager()->getPetControl(); + if (petControl) + petControl->resetDials(); + } } -int TTnpcScript::proc34() { +int TTnpcScript::proc34(int dialNum) { warning("TODO"); return 0; } |