aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/draci/game.cpp')
-rw-r--r--engines/draci/game.cpp15
1 files changed, 15 insertions, 0 deletions
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]);