diff options
Diffstat (limited to 'engines/saga')
-rw-r--r-- | engines/saga/interface.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp index 20370a775f..38d46eed57 100644 --- a/engines/saga/interface.cpp +++ b/engines/saga/interface.cpp @@ -1623,9 +1623,19 @@ void Interface::update(const Point& mousePoint, int updateFlag) { // When opening the psychic profile, or the options screen in the non-interactive part of the IHNM demo, // the interface is locked (_active is false) // Don't return in those cases, so that mouse actions can be processed - if (!(_vm->getGameType() == GType_IHNM && _panelMode == kPanelPlacard && (updateFlag & UPDATE_MOUSECLICK)) && - !(_vm->getGameId() == GID_IHNM_DEMO && (_panelMode == kPanelOption || _panelMode == kPanelQuit))) + if (_vm->getGameType() == GType_ITE) { return; + } else { + if (_panelMode == kPanelPlacard && (updateFlag & UPDATE_MOUSECLICK)) { + // the psychic profile or the special screen in IHNM demo is open, don't return + } else if (_panelMode == kPanelOption || _panelMode == kPanelQuit) { + // options/quit panel is open, set interface to active and don't return + _vm->_actor->abortSpeech(); // abort any speech being played + _active = true; + } else { + return; + } + } } if (_statusTextInput) { |