} keynum_t;
-typedef enum {key_game, key_console, key_message, key_menu} keydest_t;
-
-extern keydest_t key_dest;
+typedef enum {key_game, key_message, key_menu} keydest_t;
+
+// key_consoleactive bits
+// user wants console (halfscreen)
+#define KEY_CONSOLEACTIVE_USER 1
+// console forced because there's nothing else active (fullscreen)
+#define KEY_CONSOLEACTIVE_FORCED 2
+extern int key_consoleactive;
+extern keydest_t key_dest;
extern char *keybindings[256];
-extern int key_repeats[256];
-extern int key_count; // incremented every key event
-extern int key_lastpress;
+extern int key_repeats[256];
+extern int key_count; // incremented every key event
+extern int key_lastpress;
void Key_Event (int key, qboolean down);
void Key_Init (void);