aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agi/agi.h3
-rw-r--r--engines/agi/detection.cpp2
-rw-r--r--engines/agi/keyboard.cpp2
-rw-r--r--engines/agi/menu.cpp2
4 files changed, 5 insertions, 4 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 01db2acb23..825d475314 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -110,7 +110,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_FORCEMENUS = (1 << 7)
};
enum AgiGameID {
diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp
index 29b5bb726a..fce6fa733a 100644
--- a/engines/agi/detection.cpp
+++ b/engines/agi/detection.cpp
@@ -635,7 +635,7 @@ static const AGIGameDescription gameDescriptions[] = {
},
GID_KQ3,
GType_V2,
- 0,
+ GF_FORCEMENUS,
0x2440,
},
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index 3acc81ddff..9fd3700675 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -127,7 +127,7 @@ int AgiEngine::handleController(int key) {
}
if (key == BUTTON_LEFT) {
- if (getflag(fMenusWork) && g_mouse.y <= CHAR_LINES) {
+ if ((getflag(fMenusWork) || (getFeatures() & GF_FORCEMENUS)) && g_mouse.y <= CHAR_LINES) {
newInputMode(INPUT_MENU);
return true;
}
diff --git a/engines/agi/menu.cpp b/engines/agi/menu.cpp
index 5edaaf0ded..52e402bf12 100644
--- a/engines/agi/menu.cpp
+++ b/engines/agi/menu.cpp
@@ -267,7 +267,7 @@ bool Menu::keyhandler(int key) {
static int menuActive = false;
static int buttonUsed = 0;
- if (!_vm->getflag(fMenusWork))
+ if (!_vm->getflag(fMenusWork) && !(_vm->getFeatures() & GF_FORCEMENUS))
return false;
if (!menuActive) {