diff options
-rw-r--r-- | engines/draci/draci.cpp | 3 | ||||
-rw-r--r-- | engines/draci/game.cpp | 15 |
2 files changed, 15 insertions, 3 deletions
diff --git a/engines/draci/draci.cpp b/engines/draci/draci.cpp index 1575ee2545..3041c70341 100644 --- a/engines/draci/draci.cpp +++ b/engines/draci/draci.cpp @@ -139,9 +139,6 @@ int DraciEngine::go() { _game->init(); - _mouse->setCursorType(kNormalCursor); - _mouse->cursorOn(); - Common::Event event; bool quit = false; while (!quit) { 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<int> 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]); |