aboutsummaryrefslogtreecommitdiff
path: root/engines/saga
diff options
context:
space:
mode:
authorFilippos Karapetis2007-10-27 17:55:50 +0000
committerFilippos Karapetis2007-10-27 17:55:50 +0000
commit01e88f1fbf1f456d74990cd0a0b8950c056c06f4 (patch)
tree50cda5e206703ef8ea3007820b4e90a0a78e0039 /engines/saga
parent102764da6e86e261bce755c10b5289c2c9c5343a (diff)
downloadscummvm-rg350-01e88f1fbf1f456d74990cd0a0b8950c056c06f4.tar.gz
scummvm-rg350-01e88f1fbf1f456d74990cd0a0b8950c056c06f4.tar.bz2
scummvm-rg350-01e88f1fbf1f456d74990cd0a0b8950c056c06f4.zip
The options panel in IHNM is now shown and functioning correctly when it's opened during a character's speech
svn-id: r29266
Diffstat (limited to 'engines/saga')
-rw-r--r--engines/saga/interface.cpp14
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) {