aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-10-06 15:56:06 +0000
committerTorbjörn Andersson2005-10-06 15:56:06 +0000
commit5f20bf11e6b694319d1d6a3e8df833008bbb56b7 (patch)
tree1607eca8b99eba3812ddaf6341cd213a890a39be /saga
parent92f5e206bd0c4d668d3a6187efb26a75ec99e81b (diff)
downloadscummvm-rg350-5f20bf11e6b694319d1d6a3e8df833008bbb56b7.tar.gz
scummvm-rg350-5f20bf11e6b694319d1d6a3e8df833008bbb56b7.tar.bz2
scummvm-rg350-5f20bf11e6b694319d1d6a3e8df833008bbb56b7.zip
It should always be possible to interrupt the intro with Escape now. Most
of the job was already done, though. Only the final bit was missing. svn-id: r18951
Diffstat (limited to 'saga')
-rw-r--r--saga/animation.cpp6
-rw-r--r--saga/input.cpp1
-rw-r--r--saga/interface.cpp8
-rw-r--r--saga/interface.h3
-rw-r--r--saga/saga.cpp1
5 files changed, 13 insertions, 6 deletions
diff --git a/saga/animation.cpp b/saga/animation.cpp
index 2ac8d27bfe..c87e49fc76 100644
--- a/saga/animation.cpp
+++ b/saga/animation.cpp
@@ -86,9 +86,8 @@ void Anim::playCutaway(int cut, bool fade) {
_vm->_gfx->showCursor(false);
_vm->_interface->setStatusText("");
_vm->_interface->setSaveReminderState(0);
-
- // TODO: Hide the inventory. Perhaps a new panel mode?
-
+ _vm->_interface->rememberMode();
+ _vm->_interface->setMode(kPanelCutaway);
_cutawayActive = true;
}
@@ -195,6 +194,7 @@ void Anim::clearCutaway(void) {
_cutawayAnimations[i] = NULL;
}
+ _vm->_interface->restoreMode();
_vm->_gfx->showCursor(true);
}
}
diff --git a/saga/input.cpp b/saga/input.cpp
index b972f28bdb..3d2754220a 100644
--- a/saga/input.cpp
+++ b/saga/input.cpp
@@ -104,7 +104,6 @@ int SagaEngine::processInput() {
// Actual game keys
case 32: // space
_actor->abortSpeech();
- _scene->cutawaySkip();
break;
case 19: // pause
case 'z':
diff --git a/saga/interface.cpp b/saga/interface.cpp
index 867f8a043a..2c6418b3b1 100644
--- a/saga/interface.cpp
+++ b/saga/interface.cpp
@@ -341,8 +341,14 @@ bool Interface::processAscii(uint16 ascii, bool synthetic) {
if (!_disableAbortSpeeches)
_vm->_actor->abortAllSpeeches();
}
+ return true;
+ }
+ break;
+ case kPanelCutaway:
+ if (ascii == 27) { // Esc
+ if (!_disableAbortSpeeches)
+ _vm->_actor->abortAllSpeeches();
_vm->_scene->cutawaySkip();
-
return true;
}
break;
diff --git a/saga/interface.h b/saga/interface.h
index 05aca7bdae..2b0c4d5d3b 100644
--- a/saga/interface.h
+++ b/saga/interface.h
@@ -68,7 +68,8 @@ enum PanelModes {
kPanelPlacard,
kPanelMap,
kPanelSceneSubstitute,
- kPanelChapterSelection
+ kPanelChapterSelection,
+ kPanelCutaway
// kPanelInventory
};
diff --git a/saga/saga.cpp b/saga/saga.cpp
index 226b5e4a8f..ccc6898e32 100644
--- a/saga/saga.cpp
+++ b/saga/saga.cpp
@@ -327,6 +327,7 @@ int SagaEngine::go() {
} else if (!_scene->isInIntro()) {
if (_interface->getMode() == kPanelMain ||
_interface->getMode() == kPanelConverse ||
+ _interface->getMode() == kPanelCutaway ||
_interface->getMode() == kPanelNull)
_actor->direct(msec);
}