Merge remote-tracking branch 'yquake2/master'

This commit is contained in:
Denis Pauk 2023-12-19 23:22:36 +02:00
commit a180fd3086
4 changed files with 30 additions and 53 deletions

View File

@ -276,6 +276,7 @@ extern int chat_bufferlen;
extern int chat_cursorpos;
extern qboolean chat_team;
qboolean IN_NumpadIsOn();
void Char_Event(int key);
void Key_Event(int key, qboolean down, qboolean special);
void Key_Init(void);

View File

@ -537,6 +537,18 @@ IN_TranslateGamepadBtnToQ2Key(int btn)
static void IN_Controller_Init(qboolean notify_user);
static void IN_Controller_Shutdown(qboolean notify_user);
qboolean IN_NumpadIsOn()
{
SDL_Keymod mod = SDL_GetModState();
if ((mod & KMOD_NUM) == KMOD_NUM)
{
return true;
}
return false;
}
/* ------------------------------------------------------------------ */
/*

View File

@ -242,27 +242,31 @@ Key_GetMenuKey(int key)
switch (key)
{
case K_KP_UPARROW:
if (IN_NumpadIsOn() == true) { break; }
case K_UPARROW:
case K_DPAD_UP:
return K_UPARROW;
return K_UPARROW;
case K_TAB:
case K_KP_DOWNARROW:
if (IN_NumpadIsOn() == true) { break; }
case K_DOWNARROW:
case K_DPAD_DOWN:
return K_DOWNARROW;
return K_DOWNARROW;
case K_KP_LEFTARROW:
if (IN_NumpadIsOn() == true) { break; }
case K_LEFTARROW:
case K_DPAD_LEFT:
case K_SHOULDER_LEFT:
return K_LEFTARROW;
return K_LEFTARROW;
case K_KP_RIGHTARROW:
if (IN_NumpadIsOn() == true) { break; }
case K_RIGHTARROW:
case K_DPAD_RIGHT:
case K_SHOULDER_RIGHT:
return K_RIGHTARROW;
return K_RIGHTARROW;
case K_MOUSE1:
case K_MOUSE2:
@ -273,22 +277,28 @@ Key_GetMenuKey(int key)
case K_KP_ENTER:
case K_ENTER:
case K_BTN_A:
return K_ENTER;
return K_ENTER;
case K_ESCAPE:
case K_JOY_BACK:
case K_BTN_B:
return K_ESCAPE;
return K_ESCAPE;
case K_BACKSPACE:
case K_DEL:
case K_KP_DEL:
if (IN_NumpadIsOn() == true) { break; }
case K_BTN_Y:
return K_BACKSPACE;
return K_BACKSPACE;
case K_KP_INS:
if (IN_NumpadIsOn() == true) { break; }
case K_INS:
return K_INS;
}
return key;
}
const char *
Default_MenuKey(menuframework_s *m, int key)
{

View File

@ -223,52 +223,6 @@ extern int keydown[];
qboolean
Field_Key(menufield_s *f, int key)
{
switch (key)
{
case K_KP_SLASH:
key = '/';
break;
case K_KP_MINUS:
key = '-';
break;
case K_KP_PLUS:
key = '+';
break;
case K_KP_HOME:
key = '7';
break;
case K_KP_UPARROW:
key = '8';
break;
case K_KP_PGUP:
key = '9';
break;
case K_KP_LEFTARROW:
key = '4';
break;
case K_KP_5:
key = '5';
break;
case K_KP_RIGHTARROW:
key = '6';
break;
case K_KP_END:
key = '1';
break;
case K_KP_DOWNARROW:
key = '2';
break;
case K_KP_PGDN:
key = '3';
break;
case K_KP_INS:
key = '0';
break;
case K_KP_DEL:
key = '.';
break;
}
if (key > 127)
{
return false;