diff options
Diffstat (limited to 'engines/agi/keyboard.cpp')
-rw-r--r-- | engines/agi/keyboard.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp index 3acc81ddff..2b7559f754 100644 --- a/engines/agi/keyboard.cpp +++ b/engines/agi/keyboard.cpp @@ -107,8 +107,10 @@ int AgiEngine::handleController(int key) { VtEntry *v = &_game.viewTable[0]; int i; - /* AGI 3.149 games and The Black Cauldron need KEY_ESCAPE to use menus */ - if (key == 0 || (key == KEY_ESCAPE && agiGetRelease() != 0x3149 && getGameID() != GID_BC) ) + // AGI 3.149 games and The Black Cauldron need KEY_ESCAPE to use menus + // Games with the GF_ESCPAUSE flag need KEY_ESCAPE to pause the game + if (key == 0 || + (key == KEY_ESCAPE && agiGetRelease() != 0x3149 && getGameID() != GID_BC && !(getFeatures() & GF_ESCPAUSE)) ) return false; if ((getGameID() == GID_MH1 || getGameID() == GID_MH2) && (key == KEY_ENTER) && @@ -127,7 +129,7 @@ int AgiEngine::handleController(int key) { } if (key == BUTTON_LEFT) { - if (getflag(fMenusWork) && g_mouse.y <= CHAR_LINES) { + if ((getflag(fMenusWork) || (getFeatures() & GF_MENUS)) && g_mouse.y <= CHAR_LINES) { newInputMode(INPUT_MENU); return true; } |