aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/toon/state.cpp1
-rw-r--r--engines/toon/state.h1
-rw-r--r--engines/toon/toon.cpp10
3 files changed, 9 insertions, 3 deletions
diff --git a/engines/toon/state.cpp b/engines/toon/state.cpp
index 71674688d5..abd8a409a6 100644
--- a/engines/toon/state.cpp
+++ b/engines/toon/state.cpp
@@ -80,6 +80,7 @@ State::State(void) {
_showConversationIcons = false;
+ _inMenu = false;
_inCloseUp = false;
_inConversation = false;
diff --git a/engines/toon/state.h b/engines/toon/state.h
index 283e378443..d31ff4f3c2 100644
--- a/engines/toon/state.h
+++ b/engines/toon/state.h
@@ -62,6 +62,7 @@ public:
int16 _confiscatedInventory[35];
int32 _numInventoryItems;
int32 _numConfiscatedInventoryItems;
+ bool _inMenu;
bool _inCloseUp;
bool _inCutaway;
bool _inConversation;
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 79e153a7db..d2b98c2ed0 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -185,7 +185,7 @@ void ToonEngine::parseInput() {
bool hasModifier = event.kbd.hasFlags(Common::KBD_ALT|Common::KBD_CTRL|Common::KBD_SHIFT);
switch (event.type) {
- case Common::EVENT_KEYUP:
+ case Common::EVENT_KEYDOWN:
if ((event.kbd.ascii == 27 || event.kbd.ascii == 32) && !hasModifier) {
_audioManager->stopCurrentVoice();
}
@@ -588,6 +588,8 @@ bool ToonEngine::showMainmenu(bool &loadedGame) {
AudioStreamInstance *mainmenuMusic = NULL;
bool musicPlaying = false;
+ _gameState->_inMenu = true;
+
while (!doExit) {
clickingOn = MAINMENUHOTSPOT_NONE;
clickRelease = false;
@@ -700,6 +702,8 @@ bool ToonEngine::showMainmenu(bool &loadedGame) {
}
}
+ _gameState->_inMenu = false;
+
//delete mainmenuMusic;
for (int entryNr = 0; entryNr < MAINMENU_ENTRYCOUNT; entryNr++)
delete entries[entryNr].animation;
@@ -2956,11 +2960,11 @@ void ToonEngine::pauseEngineIntern(bool pause) {
}
bool ToonEngine::canSaveGameStateCurrently() {
- return !_gameState->_inInventory && !_gameState->_inConversation && !_gameState->_inCutaway && !_gameState->_mouseHidden && !_moviePlayer->isPlaying();
+ return !_gameState->_inMenu && !_gameState->_inInventory && !_gameState->_inConversation && !_gameState->_inCutaway && !_gameState->_mouseHidden && !_moviePlayer->isPlaying();
}
bool ToonEngine::canLoadGameStateCurrently() {
- return !_gameState->_inInventory && !_gameState->_inConversation && !_gameState->_inCutaway && !_gameState->_mouseHidden && !_moviePlayer->isPlaying();
+ return !_gameState->_inMenu && !_gameState->_inInventory && !_gameState->_inConversation && !_gameState->_inCutaway && !_gameState->_mouseHidden && !_moviePlayer->isPlaying();
}
Common::String ToonEngine::getSavegameName(int nr) {