diff options
author | Paul Gilbert | 2016-03-13 10:28:45 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-03-13 10:28:45 -0400 |
commit | f0d992d8548ee8bacae72ecc15e69f9de4187549 (patch) | |
tree | c4206efd80ea37699992ad850e8206df29dce374 /engines/titanic/game_state.cpp | |
parent | c6b07dcdd7d2ec629d0287922f47e48de90dfc97 (diff) | |
download | scummvm-rg350-f0d992d8548ee8bacae72ecc15e69f9de4187549.tar.gz scummvm-rg350-f0d992d8548ee8bacae72ecc15e69f9de4187549.tar.bz2 scummvm-rg350-f0d992d8548ee8bacae72ecc15e69f9de4187549.zip |
TITANIC: Implemented setMode method for game state
Diffstat (limited to 'engines/titanic/game_state.cpp')
-rw-r--r-- | engines/titanic/game_state.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/engines/titanic/game_state.cpp b/engines/titanic/game_state.cpp index 59e4b7b837..41c4388f64 100644 --- a/engines/titanic/game_state.cpp +++ b/engines/titanic/game_state.cpp @@ -21,12 +21,14 @@ */ #include "titanic/game_state.h" +#include "titanic/game_manager.h" +#include "titanic/screen_manager.h" namespace Titanic { CGameState::CGameState(CGameManager *gameManager) : _gameManager(gameManager), _sub(this), - _field8(0), _fieldC(0), _field10(10), _field14(0), _field18(0), + _field8(0), _fieldC(0), _mode(10), _field14(0), _field18(0), _field1C(0), _field20(0), _field24(0), _field28(0), _field2C(0), _field30(0), _field34(0), _field38(0) { } @@ -55,4 +57,25 @@ void CGameState::load(SimpleFile *file) { _field28 = _field2C = 0; } +void CGameState::setMode(int newMode) { + CScreenManager *sm = CScreenManager::_screenManagerPtr; + + if (newMode == 2 && newMode != _mode) { + if (_gameManager) + _gameManager->lockInputHandler(); + + if (sm && sm->_mouseCursor) + sm->_mouseCursor->hide(); + + } else if (newMode != 2 && newMode != _mode) { + if (sm && sm->_mouseCursor) + sm->_mouseCursor->show(); + + if (_gameManager) + _gameManager->unlockInputHandler(); + } + + _mode = newMode; +} + } // End of namespace Titanic z |