aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/interface.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-07-30 14:22:53 +0000
committerFilippos Karapetis2007-07-30 14:22:53 +0000
commit7498c6b43e73e7ebcafa4bc766ea06acdfe00b5f (patch)
tree8133f6e680d1aa36a5bf0b2e6cefd7bc5e1900e9 /engines/saga/interface.cpp
parentba44fcbf6b5a209fd7d705ffcf678568bb049640 (diff)
downloadscummvm-rg350-7498c6b43e73e7ebcafa4bc766ea06acdfe00b5f.tar.gz
scummvm-rg350-7498c6b43e73e7ebcafa4bc766ea06acdfe00b5f.tar.bz2
scummvm-rg350-7498c6b43e73e7ebcafa4bc766ea06acdfe00b5f.zip
It's now possible to exit from the psychic profile screen in IHNM
svn-id: r28325
Diffstat (limited to 'engines/saga/interface.cpp')
-rw-r--r--engines/saga/interface.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index 150bf55111..bb1de8c70a 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -652,6 +652,12 @@ bool Interface::processAscii(uint16 ascii) {
_protectHash = (_protectHash << 1) + toupper(*p);
}
break;
+ case kPanelPlacard:
+ if (_vm->getGameType() == GType_IHNM) {
+ // Any keypress here returns the user back to the game
+ _vm->_scene->clearPsychicProfile();
+ }
+ break;
}
return false;
}
@@ -1548,7 +1554,10 @@ void Interface::update(const Point& mousePoint, int updateFlag) {
_vm->_actor->abortSpeech();
if (_vm->_scene->isInIntro() || _fadeMode == kFadeOut || !_active) {
- return;
+ // When opening the psychic profile, the interface is locked (_active is false)
+ // Don't return if the psychic profile is up, so that mouse clicks can be processed
+ if (!(_vm->getGameType() == GType_IHNM && _panelMode == kPanelPlacard))
+ return;
}
if (_statusTextInput) {
@@ -1694,6 +1703,13 @@ void Interface::update(const Point& mousePoint, int updateFlag) {
// No mouse interaction
break;
+ case kPanelPlacard:
+ if (_vm->getGameType() == GType_IHNM) {
+ // Any mouse click here returns the user back to the game
+ if (updateFlag & UPDATE_MOUSECLICK)
+ _vm->_scene->clearPsychicProfile();
+ }
+ break;
}
_lastMousePoint = mousePoint;