aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2007-04-21 21:39:27 +0000
committerEugene Sandulenko2007-04-21 21:39:27 +0000
commit08f5b5f31d3503cfe8927b347988edcc921e6453 (patch)
tree28254d5bbfe1d0f3720f0cee2caf9c6c5dc0f3fe /engines
parent3be109b64630978e4caf1a4c1b66197cda0afbed (diff)
downloadscummvm-rg350-08f5b5f31d3503cfe8927b347988edcc921e6453.tar.gz
scummvm-rg350-08f5b5f31d3503cfe8927b347988edcc921e6453.tar.bz2
scummvm-rg350-08f5b5f31d3503cfe8927b347988edcc921e6453.zip
Patch #1704575: 'Fix for #1692346: "KQ2: Cannot leave menu"'
svn-id: r26561
Diffstat (limited to 'engines')
-rw-r--r--engines/agi/agi.h3
-rw-r--r--engines/agi/detection.cpp10
-rw-r--r--engines/agi/keyboard.cpp4
3 files changed, 9 insertions, 8 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 5409f3e938..bb36b568a9 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -109,7 +109,8 @@ enum AgiGameFeatures {
GF_AGI256_2 = (1 << 3),
GF_AGIPAL = (1 << 4),
GF_MACGOLDRUSH = (1 << 5),
- GF_FANMADE = (1 << 6)
+ GF_FANMADE = (1 << 6),
+ GF_ESC_MENU = (1 << 7)
};
struct AGIGameDescription;
diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp
index 9bdf2dba3e..46f7fb5472 100644
--- a/engines/agi/detection.cpp
+++ b/engines/agi/detection.cpp
@@ -513,7 +513,7 @@ static const AGIGameDescription gameDescriptions[] = {
Common::ADGF_NO_FLAGS
},
GType_V2,
- 0,
+ GF_ESC_MENU,
0x2917,
},
@@ -529,7 +529,7 @@ static const AGIGameDescription gameDescriptions[] = {
Common::ADGF_NO_FLAGS
},
GType_V2,
- 0,
+ GF_ESC_MENU,
0x2440,
},
@@ -545,7 +545,7 @@ static const AGIGameDescription gameDescriptions[] = {
Common::ADGF_NO_FLAGS
},
GType_V2,
- 0,
+ GF_ESC_MENU,
0x2440,
},
@@ -561,7 +561,7 @@ static const AGIGameDescription gameDescriptions[] = {
Common::ADGF_NO_FLAGS
},
GType_V2,
- 0,
+ GF_ESC_MENU,
0x2440, // XXX: any major differences from 2.411 to 2.440?
},
@@ -577,7 +577,7 @@ static const AGIGameDescription gameDescriptions[] = {
Common::ADGF_NO_FLAGS
},
GType_V2,
- 0,
+ GF_ESC_MENU,
0x2917,
},
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index e4a025f2b9..5c5b936b69 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -102,8 +102,8 @@ int AgiEngine::handleController(int key) {
VtEntry *v = &_game.viewTable[0];
int i;
- /* The Black Cauldron needs KEY_ESCAPE to use menus */
- if (key == 0 /*|| key == KEY_ESCAPE */ )
+ /* AGI 3.149 games need KEY_ESCAPE to use menus */
+ if (key == 0 || (key == KEY_ESCAPE && (getFeatures() & GF_ESC_MENU)) )
return false;
debugC(3, kDebugLevelInput, "key = %04x", key);