aboutsummaryrefslogtreecommitdiff
path: root/engines/draci
diff options
context:
space:
mode:
Diffstat (limited to 'engines/draci')
-rw-r--r--engines/draci/game.cpp60
1 files changed, 32 insertions, 28 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp
index d8152b0fcb..3e3162e543 100644
--- a/engines/draci/game.cpp
+++ b/engines/draci/game.cpp
@@ -262,37 +262,41 @@ void Game::loop() {
Animation *titleAnim = _vm->_anims->getAnimation(kTitleText);
Text *title = reinterpret_cast<Text *>(titleAnim->getFrame());
- // If there is an object under the cursor, display its title and enable
- // executing its look and use scripts
- if (curObject != kObjectNotFound) {
- // Mark dirty rectangle to update the text
- titleAnim->markDirtyRect(surface);
-
- // Set the title for the current object
- title->setText(obj->_title);
-
- // Move the title to the correct place (just above the cursor)
- int newX = surface->centerOnX(x, title->getWidth());
- int newY = surface->centerOnY(y - smallFontHeight / 2, title->getHeight() * 2);
- titleAnim->setRelative(newX, newY);
-
- // HACK: Test running look and use scripts
- if (_vm->_mouse->lButtonPressed()) {
- _vm->_mouse->lButtonSet(false);
- _vm->_script->run(obj->_program, obj->_look);
+ if (_loopStatus == kStatusOrdinary) {
+ // If there is an object under the cursor, display its title and enable
+ // executing its look and use scripts
+ if (curObject != kObjectNotFound) {
+ // Mark dirty rectangle to update the text
+ titleAnim->markDirtyRect(surface);
+
+ // Set the title for the current object
+ title->setText(obj->_title);
+
+ // Move the title to the correct place (just above the cursor)
+ int newX = surface->centerOnX(x, title->getWidth());
+ int newY = surface->centerOnY(y - smallFontHeight / 2, title->getHeight() * 2);
+ titleAnim->setRelative(newX, newY);
+
+ if (_loopSubstatus == kStatusOrdinary) {
+ // HACK: Test running look and use scripts
+ if (_vm->_mouse->lButtonPressed()) {
+ _vm->_mouse->lButtonSet(false);
+ _vm->_script->run(obj->_program, obj->_look);
+ }
+
+ if (_vm->_mouse->rButtonPressed()) {
+ _vm->_mouse->rButtonSet(false);
+ _vm->_script->run(obj->_program, obj->_use);
+ }
+ }
+ } else {
+ // If there is no object under the cursor, just delete the previous title
+ titleAnim->markDirtyRect(surface);
+ title->setText("");
}
- if (_vm->_mouse->rButtonPressed()) {
- _vm->_mouse->rButtonSet(false);
- _vm->_script->run(obj->_program, obj->_use);
- }
- } else {
- // If there is no object under the cursor, just delete the previous title
- titleAnim->markDirtyRect(surface);
- title->setText("");
+ debugC(2, kDraciAnimationDebugLevel, "Anim under cursor: %d", animUnderCursor);
}
-
- debugC(2, kDraciAnimationDebugLevel, "Anim under cursor: %d", animUnderCursor);
}
// Handle character talking (if there is any)