diff options
-rw-r--r-- | saga/animation.cpp | 6 | ||||
-rw-r--r-- | saga/input.cpp | 1 | ||||
-rw-r--r-- | saga/interface.cpp | 8 | ||||
-rw-r--r-- | saga/interface.h | 3 | ||||
-rw-r--r-- | saga/saga.cpp | 1 |
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); } |