diff options
Diffstat (limited to 'engines/draci')
-rw-r--r-- | engines/draci/game.cpp | 60 |
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) |