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;  		} | 
