aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/true_talk/script_handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/true_talk/script_handler.cpp')
-rw-r--r--engines/titanic/true_talk/script_handler.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/titanic/true_talk/script_handler.cpp b/engines/titanic/true_talk/script_handler.cpp
index beb5bee996..bd98aad15f 100644
--- a/engines/titanic/true_talk/script_handler.cpp
+++ b/engines/titanic/true_talk/script_handler.cpp
@@ -29,17 +29,26 @@ namespace Titanic {
CScriptHandler::CScriptHandler(CTitleEngine *owner, int val1, int val2) :
_owner(owner), _script(owner->_script), _reader(g_vm->_fileReader),
- _vocab(val2), _field10(0), _field14(0), _field18(0), _inputCtr(0),
+ _vocab(val2), _sub1(), _sub2(this), _field10(0), _inputCtr(0),
_field20(0), _field24(0), _field28(0), _field2C(0), _field30(0) {
-
+ g_vm->_scriptHandler = this;
+ g_vm->_script = _script;
}
-int CScriptHandler::scriptChanged(TTRoomScript *roomScript, TTNpcScript *npcScript, uint dialogueId) {
+ScriptChangedResult CScriptHandler::scriptChanged(TTRoomScript *roomScript, TTNpcScript *npcScript, uint dialogueId) {
if (!npcScript || !roomScript) {
++_inputCtr;
- return 5;
+ return SCR_5;
}
+ ScriptChangedResult result = roomScript->notifyScript(npcScript, dialogueId);
+ if (result == SCR_1)
+ result = npcScript->notifyScript(roomScript, dialogueId);
+
+ if (result != SCR_3 && result != SCR_4)
+ return result;
+
+ error("TODO: CScriptHandler::scriptChanged");
}
void CScriptHandler::processInput(TTRoomScript *roomScript, TTNpcScript *npcScript,