diff options
-rw-r--r-- | engines/titanic/core/project_item.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/core/saveable_object.cpp | 3 | ||||
-rw-r--r-- | engines/titanic/input_handler.cpp | 10 | ||||
-rw-r--r-- | engines/titanic/input_handler.h | 2 | ||||
-rw-r--r-- | engines/titanic/true_talk/true_talk_manager.cpp | 3 |
5 files changed, 12 insertions, 8 deletions
diff --git a/engines/titanic/core/project_item.cpp b/engines/titanic/core/project_item.cpp index af67f69580..f9c7dbdd55 100644 --- a/engines/titanic/core/project_item.cpp +++ b/engines/titanic/core/project_item.cpp @@ -158,8 +158,8 @@ void CProjectItem::loadGame(int slotId) { CompressedFile file; // Clear any existing project contents and call preload code - clear(); preLoad(); + clear(); // Open either an existing savegame slot or the new game template if (slotId >= 0) { diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp index 73b4bf861f..f718ba79b3 100644 --- a/engines/titanic/core/saveable_object.cpp +++ b/engines/titanic/core/saveable_object.cpp @@ -1473,6 +1473,9 @@ void CSaveableObject::initClassList() { ADDFN(CEnterNodeMsg, CMessage); ADDFN(CEnterRoomMsg, CMessage); ADDFN(CEnterViewMsg, CMessage); + ADDFN(CPreEnterNodeMsg, CMessage); + ADDFN(CPreEnterRoomMsg, CMessage); + ADDFN(CPreEnterViewMsg, CMessage); ADDFN(CPreSaveMsg, CMessage); ADDFN(CProdMaitreDMsg, CMessage); ADDFN(CPumpingMsg, CMessage); diff --git a/engines/titanic/input_handler.cpp b/engines/titanic/input_handler.cpp index ba2c08ed89..481224141d 100644 --- a/engines/titanic/input_handler.cpp +++ b/engines/titanic/input_handler.cpp @@ -32,7 +32,7 @@ namespace Titanic { CInputHandler::CInputHandler(CGameManager *owner) : _gameManager(owner), _inputTranslator(nullptr), _dragging(false), _buttonDown(false), _dragItem(nullptr), _lockCount(0), - _singleton(false) { + _abortMessage(false) { CScreenManager::_screenManagerPtr->_inputHandler = this; } @@ -59,7 +59,7 @@ void CInputHandler::decLockCount() { } _buttonDown = _inputTranslator->isMousePressed(); - _singleton = true; + _abortMessage = true; } } @@ -75,11 +75,11 @@ void CInputHandler::handleMessage(CMessage &msg, bool respectLock) { void CInputHandler::processMessage(CMessage *msg) { const CMouseMsg *mouseMsg = dynamic_cast<const CMouseMsg *>(msg); - _singleton = false; + _abortMessage = false; dispatchMessage(msg); - if (_singleton) { - _singleton = false; + if (_abortMessage) { + _abortMessage = false; } else if (mouseMsg) { // Keep the game state mouse position up to date if (_mousePos != mouseMsg->_mousePos) { diff --git a/engines/titanic/input_handler.h b/engines/titanic/input_handler.h index d5f29b7921..5f0be04f1a 100644 --- a/engines/titanic/input_handler.h +++ b/engines/titanic/input_handler.h @@ -56,7 +56,7 @@ public: Point _dragStartPos; Point _mousePos; int _lockCount; - bool _singleton; + bool _abortMessage; public: CInputHandler(CGameManager *owner); ~CInputHandler(); diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp index 8b1cd8cc9a..446a32eaae 100644 --- a/engines/titanic/true_talk/true_talk_manager.cpp +++ b/engines/titanic/true_talk/true_talk_manager.cpp @@ -538,9 +538,10 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV if (!milli) continue; +#ifdef SPATIAL_SOUND if (idx == 0) g_vm->_events->sleep(milli); -#ifdef SPATIAL_SOUND + // TODO: Figure out if these below are needed. It kinda looks like they were // simply playing the same speech at different spatial co-ordinates. And since // we don't support spatial processing in ScummVM yet, they're being left disabled |