aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/draci/game.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp
index 2ba3103f19..3441ba7860 100644
--- a/engines/draci/game.cpp
+++ b/engines/draci/game.cpp
@@ -277,7 +277,7 @@ void Game::loop() {
}
if (_loopSubstatus == kStatusOrdinary) {
- // HACK: Test running look and use scripts
+
if (_vm->_mouse->lButtonPressed()) {
// Delete title text
title->setText("");
@@ -297,23 +297,30 @@ void Game::loop() {
_vm->_mouse->cursorOn();
}
+ // TODO: Handle global use scripts (the use script for the room itself)
+
if (_vm->_mouse->rButtonPressed()) {
// Delete title text
title->setText("");
- _vm->_mouse->cursorOff();
_vm->_mouse->rButtonSet(false);
- if (!obj->_imUse) {
- if (obj->_useDir == 0) {
- walkHero(x, y);
- } else {
- walkHero(obj->_useX, obj->_useY);
+ if (_vm->_script->testExpression(obj->_program, obj->_canUse)) {
+ _vm->_mouse->cursorOff();
+
+ if (!obj->_imUse) {
+ if (obj->_useDir == 0) {
+ walkHero(x, y);
+ } else {
+ walkHero(obj->_useX, obj->_useY);
+ }
}
- }
- _vm->_script->run(obj->_program, obj->_use);
- _vm->_mouse->cursorOn();
+ _vm->_script->run(obj->_program, obj->_use);
+ _vm->_mouse->cursorOn();
+ } else {
+ walkHero(x, y);
+ }
}
}
} else {