aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game_state.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-13 10:28:45 -0400
committerPaul Gilbert2016-03-13 10:28:45 -0400
commitf0d992d8548ee8bacae72ecc15e69f9de4187549 (patch)
treec4206efd80ea37699992ad850e8206df29dce374 /engines/titanic/game_state.cpp
parentc6b07dcdd7d2ec629d0287922f47e48de90dfc97 (diff)
downloadscummvm-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.cpp25
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