From 45f84a9da592fbc76156801c634d60615ace67a2 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 9 May 2016 19:18:03 -0400 Subject: TITANIC: Fix script handler initialization --- engines/titanic/true_talk/script_handler.cpp | 8 +++++++- engines/titanic/true_talk/script_handler.h | 3 ++- engines/titanic/true_talk/true_talk_manager.cpp | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'engines') diff --git a/engines/titanic/true_talk/script_handler.cpp b/engines/titanic/true_talk/script_handler.cpp index 09110a3f19..67ce8be61f 100644 --- a/engines/titanic/true_talk/script_handler.cpp +++ b/engines/titanic/true_talk/script_handler.cpp @@ -29,10 +29,16 @@ namespace Titanic { CScriptHandler::CScriptHandler(CTitleEngine *owner, int val1, int val2) : _owner(owner), _script(owner->_script), _reader(g_vm->_fileReader), - _vocab(val2), _sub1(), _sub2(this), _field10(0), _inputCtr(0), + _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; + g_vm->_fileReader.reset(this, val1, val2); + _vocab = new STVocab(val2); +} + +CScriptHandler::~CScriptHandler() { + delete _vocab; } ScriptChangedResult CScriptHandler::scriptChanged(TTRoomScript *roomScript, TTNpcScript *npcScript, uint dialogueId) { diff --git a/engines/titanic/true_talk/script_handler.h b/engines/titanic/true_talk/script_handler.h index 38da259021..58d58d6d27 100644 --- a/engines/titanic/true_talk/script_handler.h +++ b/engines/titanic/true_talk/script_handler.h @@ -64,8 +64,8 @@ class CScriptHandler { private: CTitleEngine *_owner; TTScriptBase *_script; + STVocab *_vocab; CFileReader &_reader; - STVocab _vocab; int _field10; CScriptHandlerSub1 _sub1; CScriptHandlerSub2 _sub2; @@ -77,6 +77,7 @@ private: int _field30; public: CScriptHandler(CTitleEngine *owner, int val1, int val2); + ~CScriptHandler(); /** * Set the character and room diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp index 0b841aca00..4892259341 100644 --- a/engines/titanic/true_talk/true_talk_manager.cpp +++ b/engines/titanic/true_talk/true_talk_manager.cpp @@ -47,6 +47,8 @@ CTrueTalkNPC *CTrueTalkManager::_currentNPC; CTrueTalkManager::CTrueTalkManager(CGameManager *owner) : _gameManager(owner), _scripts(&_titleEngine), _currentCharId(0), _dialogueFile(nullptr), _dialogueId(0) { + _titleEngine.setup(3, 3); + _currentNPC = nullptr; } CTrueTalkManager::~CTrueTalkManager() { -- cgit v1.2.3