aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-06-25 00:06:20 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit9cac9a8592fb100946728f2c77828f4b6110d77e (patch)
treefc993d1e219554ac7d78da9a5d4a92a6452c7c11 /engines/supernova
parenta637cea700b17cd2e11071ca603a8959ce477303 (diff)
downloadscummvm-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.cpp9
-rw-r--r--engines/supernova/supernova.cpp2
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();
}