diff options
author | Jaromir Wysoglad | 2019-06-25 00:06:20 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | 9cac9a8592fb100946728f2c77828f4b6110d77e (patch) | |
tree | fc993d1e219554ac7d78da9a5d4a92a6452c7c11 /engines/supernova | |
parent | a637cea700b17cd2e11071ca603a8959ce477303 (diff) | |
download | scummvm-rg350-9cac9a8592fb100946728f2c77828f4b6110d77e.tar.gz scummvm-rg350-9cac9a8592fb100946728f2c77828f4b6110d77e.tar.bz2 scummvm-rg350-9cac9a8592fb100946728f2c77828f4b6110d77e.zip |
SUPERNOVA: Fix bugs
Fix GUI not working after leaving text edit field
Forbid showing help, info, doc screens, when GUI isn't alowed,
this should mimic the original game better and also resolves
some issues.
Diffstat (limited to 'engines/supernova')
-rw-r--r-- | engines/supernova/game-manager.cpp | 9 | ||||
-rw-r--r-- | engines/supernova/supernova.cpp | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/engines/supernova/game-manager.cpp b/engines/supernova/game-manager.cpp index 8296e27651..b5bbe2e58f 100644 --- a/engines/supernova/game-manager.cpp +++ b/engines/supernova/game-manager.cpp @@ -225,6 +225,8 @@ void GameManager::processInput(Common::KeyState &state) { switch (state.keycode) { case Common::KEYCODE_F1: // help + if (!_guiEnabled) + return; if (_vm->_MSPart == 1) _vm->showHelpScreen1(); else if (_vm->_MSPart == 2) @@ -232,6 +234,8 @@ void GameManager::processInput(Common::KeyState &state) { break; case Common::KEYCODE_F2: // show game manual + if (!_guiEnabled) + return; if (_vm->_MSPart == 1) _vm->showTextReader("msn.doc"); else if (_vm->_MSPart == 2) @@ -239,12 +243,16 @@ void GameManager::processInput(Common::KeyState &state) { break; case Common::KEYCODE_F3: // show game info + if (!_guiEnabled) + return; if (_vm->_MSPart == 1) _vm->showTextReader("msn.inf"); else if (_vm->_MSPart == 2) _vm->showTextReader("ms2.inf"); break; case Common::KEYCODE_F4: + if (!_guiEnabled) + return; _vm->setTextSpeed(); break; case Common::KEYCODE_F5: @@ -850,6 +858,7 @@ void GameManager::edit(Common::String &input, int x, int y, uint length) { break; } } + _guiEnabled = true; } void GameManager::takeMoney(int amount) { diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp index 9d7faf880b..0324e88716 100644 --- a/engines/supernova/supernova.cpp +++ b/engines/supernova/supernova.cpp @@ -475,6 +475,7 @@ void SupernovaEngine::showHelpScreen1() { _gm->getKeyInput(); paletteFadeOut(); + _gm->loadTime(); _gm->animationOn(); } @@ -500,6 +501,7 @@ void SupernovaEngine::showHelpScreen2() { _gm->getKeyInput(); paletteFadeOut(); + _gm->loadTime(); _gm->animationOn(); } |