From 1bf574aaa9e956bf6f6bcf730382a5f7967f2aa6 Mon Sep 17 00:00:00 2001 From: Denis Kasak Date: Thu, 16 Jul 2009 12:07:41 +0000 Subject: Added proper cursor state handling (when in rooms that don't use the mouse). Added a HACK note for running the gates' scripts. svn-id: r42532 --- engines/draci/game.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'engines/draci/game.cpp') diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp index 31b2d612fa..c75b1df503 100644 --- a/engines/draci/game.cpp +++ b/engines/draci/game.cpp @@ -142,6 +142,8 @@ void Game::init() { _vm->_script->run(dragon->_program, dragon->_init); changeRoom(_info._startRoom); + + _vm->_mouse->setCursorType(kNormalCursor); } void Game::loadRoom(int roomNum) { @@ -190,6 +192,17 @@ void Game::loadRoom(int roomNum) { debugC(4, kDraciLogicDebugLevel, "_escRoom: %d", _currentRoom._escRoom); debugC(4, kDraciLogicDebugLevel, "_numGates: %d", _currentRoom._numGates); + + // Set cursor state + if (_currentRoom._mouseOn) { + debugC(6, kDraciLogicDebugLevel, "Mouse: ON"); + _vm->_mouse->cursorOn(); + } else { + debugC(6, kDraciLogicDebugLevel, "Mouse: OFF"); + _vm->_mouse->cursorOff(); + } + + Common::Array gates; for (uint i = 0; i < _currentRoom._numGates; ++i) { @@ -226,6 +239,8 @@ void Game::loadRoom(int roomNum) { debugC(4, kDraciLogicDebugLevel, "Running room init program..."); _vm->_script->run(_currentRoom._program, _currentRoom._init); + // HACK: Gates' scripts shouldn't be run unconditionally + // This is for testing for (uint i = 0; i < _currentRoom._numGates; ++i) { debugC(6, kDraciLogicDebugLevel, "Running program for gate %d", i); _vm->_script->run(_currentRoom._program, gates[i]); -- cgit v1.2.3