diff options
author | Paul Gilbert | 2016-12-16 21:27:43 -0500 |
---|---|---|
committer | Paul Gilbert | 2016-12-16 21:27:43 -0500 |
commit | 13932b68a51ef2b8326e9980b428ee5382e6cf0f (patch) | |
tree | 2077cfe429a9cf66a198e2114216e9ea9738978b /engines/titanic | |
parent | e21b38df666621ee057b6ba25f9756408693ccdc (diff) | |
download | scummvm-rg350-13932b68a51ef2b8326e9980b428ee5382e6cf0f.tar.gz scummvm-rg350-13932b68a51ef2b8326e9980b428ee5382e6cf0f.tar.bz2 scummvm-rg350-13932b68a51ef2b8326e9980b428ee5382e6cf0f.zip |
TITANIC: Fix entering & exiting first class suites
Diffstat (limited to 'engines/titanic')
-rw-r--r-- | engines/titanic/moves/enter_exit_first_class_state.cpp | 13 | ||||
-rw-r--r-- | engines/titanic/moves/enter_exit_first_class_state.h | 2 | ||||
-rw-r--r-- | engines/titanic/titanic.h | 1 |
3 files changed, 9 insertions, 7 deletions
diff --git a/engines/titanic/moves/enter_exit_first_class_state.cpp b/engines/titanic/moves/enter_exit_first_class_state.cpp index efdead533a..4b58c1b86d 100644 --- a/engines/titanic/moves/enter_exit_first_class_state.cpp +++ b/engines/titanic/moves/enter_exit_first_class_state.cpp @@ -21,6 +21,7 @@ */ #include "titanic/moves/enter_exit_first_class_state.h" +#include "titanic/titanic.h" namespace Titanic { @@ -30,13 +31,13 @@ END_MESSAGE_MAP() void CEnterExitFirstClassState::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeQuotedLine(_viewName, indent); + file->writeQuotedLine(g_vm->_stateRoomExitView, indent); CGameObject::save(file, indent); } void CEnterExitFirstClassState::load(SimpleFile *file) { file->readNumber(); - _viewName = file->readString(); + g_vm->_stateRoomExitView = file->readString(); CGameObject::load(file); } @@ -44,10 +45,12 @@ bool CEnterExitFirstClassState::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { switch (getPassengerClass()) { case 1: if (compareRoomNameTo("1stClassLobby")) { - _viewName = getRoomNodeName() + ".E"; - changeView(_viewName); + // Entering room, so save where you were and change to stateroom + g_vm->_stateRoomExitView = getRoomNodeName() + ".E"; + changeView("1stClassState.Node 1.S"); } else if (compareRoomNameTo("1stClassState")) { - changeView(_viewName); + // Return to where you entered room from + changeView(g_vm->_stateRoomExitView); } break; diff --git a/engines/titanic/moves/enter_exit_first_class_state.h b/engines/titanic/moves/enter_exit_first_class_state.h index fe63e553de..ea5c52a35e 100644 --- a/engines/titanic/moves/enter_exit_first_class_state.h +++ b/engines/titanic/moves/enter_exit_first_class_state.h @@ -30,8 +30,6 @@ namespace Titanic { class CEnterExitFirstClassState : public CGameObject { DECLARE_MESSAGE_MAP; bool MouseButtonDownMsg(CMouseButtonDownMsg *msg); -private: - CString _viewName; public: CLASSDEF; diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h index d8e0f880f7..43f3fa07f3 100644 --- a/engines/titanic/titanic.h +++ b/engines/titanic/titanic.h @@ -123,6 +123,7 @@ public: StringArray _itemIds; StringArray _roomNames; Strings _strings; + CString _stateRoomExitView; public: TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDesc); virtual ~TitanicEngine(); |