aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}