Moved the mouse uncapture key combination to variables for future reconfigurability.

This commit is contained in:
OBattler
2023-10-12 04:52:53 +02:00
parent 04c42f8d8a
commit 90d9a5b858
2 changed files with 29 additions and 13 deletions

View File

@@ -29,6 +29,21 @@
#include "cpu.h"
int keyboard_scan;
#ifdef _WIN32
/* Windows: F8+F12 */
uint16_t key_prefix_1 = 0x042; /* F8 */
uint16_t key_prefix_2 = 0x000; /* Invalid */
uint16_t key_uncapture_1 = 0x058; /* F12 */
uint16_t key_uncapture_2 = 0x000; /* Invalid */
#else
/* WxWidgets cannot do two regular keys.. CTRL+END */
uint16_t key_prefix_1 = 0x01d; /* Left Ctrl */
uint16_t key_prefix_2 = 0x11d; /* Right Ctrl */
uint16_t key_uncapture_1 = 0x04f; /* Numpad End */
uint16_t key_uncapture_2 = 0x14f; /* End */
#endif
void (*keyboard_send)(uint16_t val);
static int recv_key[512]; /* keyboard input buffer */
@@ -350,15 +365,10 @@ keyboard_isfsexit_up(void)
return (!recv_key[0x01d] && !recv_key[0x11d] && !recv_key[0x038] && !recv_key[0x138] && !recv_key[0x051] && !recv_key[0x151]);
}
/* Do we have F8-F12 in the keyboard buffer? */
/* Do we have the mouse uncapture combination in the keyboard buffer? */
int
keyboard_ismsexit(void)
{
#ifdef _WIN32
/* Windows: F8+F12 */
return (recv_key[0x042] && recv_key[0x058]);
#else
/* WxWidgets cannot do two regular keys.. CTRL+END */
return ((recv_key[0x01D] || recv_key[0x11D]) && (recv_key[0x04F] || recv_key[0x14F]));
#endif
return ((recv_key[key_prefix_1] || recv_key[key_prefix_2]) &&
(recv_key[key_uncapture_1] || recv_key[key_uncapture_2]));
}

View File

@@ -154,6 +154,12 @@ extern _Atomic double mouse_y_error; /* Mouse error accumulator - Y */
extern int pit_mode; /* (C) force setting PIT mode */
extern int fm_driver; /* (C) select FM sound driver */
/* Keyboard variables for future key combination redefinition. */
extern uint16_t key_prefix_1;
extern uint16_t key_prefix_2;
extern uint16_t key_uncapture_1;
extern uint16_t key_uncapture_2;
extern char exe_path[2048]; /* path (dir) of executable */
extern char usr_path[1024]; /* path (dir) of user data */
extern char cfg_path[1024]; /* full path of config file */