Input: Use SDL scancodes instead of SDLK

This commit is contained in:
Er2
2023-12-02 18:40:11 +03:00
parent 17b11a5b98
commit 56ce7e8073
4 changed files with 76 additions and 73 deletions

View File

@@ -4,17 +4,7 @@ CODE(ESCAPE)
CODE(BACKSPACE)
CODE(TAB)
CODE(SPACE)
CODE(EXCLAIM)
CODE(QUOTEDBL)
CODE(HASH)
CODE(PERCENT)
CODE(DOLLAR)
CODE(AMPERSAND)
CODE(QUOTE)
CODE(LEFTPAREN)
CODE(RIGHTPAREN)
CODE(ASTERISK)
CODE(PLUS)
CODE(APOSTROPHE)
CODE(COMMA)
CODE(MINUS)
CODE(PERIOD)
@@ -29,45 +19,58 @@ CODE(6)
CODE(7)
CODE(8)
CODE(9)
CODE(COLON)
CODE(SEMICOLON)
CODE(LESS)
CODE(EQUALS)
CODE(GREATER)
CODE(QUESTION)
CODE(AT)
CODE(LEFTBRACKET)
CODE(BACKSLASH)
CODE(NONUSBACKSLASH)
CODE(NONUSHASH)
CODE(RIGHTBRACKET)
CODE(CARET)
CODE(UNDERSCORE)
CODE(BACKQUOTE)
CODE(a)
CODE(b)
CODE(c)
CODE(d)
CODE(e)
CODE(f)
CODE(g)
CODE(h)
CODE(i)
CODE(j)
CODE(k)
CODE(l)
CODE(m)
CODE(n)
CODE(o)
CODE(p)
CODE(q)
CODE(r)
CODE(s)
CODE(t)
CODE(u)
CODE(v)
CODE(w)
CODE(x)
CODE(y)
CODE(z)
CODE(GRAVE)
CODE(A)
CODE(B)
CODE(C)
CODE(D)
CODE(E)
CODE(F)
CODE(G)
CODE(H)
CODE(I)
CODE(J)
CODE(K)
CODE(L)
CODE(M)
CODE(N)
CODE(O)
CODE(P)
CODE(Q)
CODE(R)
CODE(S)
CODE(T)
CODE(U)
CODE(V)
CODE(W)
CODE(X)
CODE(Y)
CODE(Z)
CODE(INTERNATIONAL1)
CODE(INTERNATIONAL2)
CODE(INTERNATIONAL3)
CODE(INTERNATIONAL4)
CODE(INTERNATIONAL5)
CODE(INTERNATIONAL6)
CODE(INTERNATIONAL7)
CODE(INTERNATIONAL8)
CODE(INTERNATIONAL9)
CODE(LANG1)
CODE(LANG2)
CODE(LANG3)
CODE(LANG4)
CODE(LANG5)
CODE(LANG6)
CODE(LANG7)
CODE(LANG8)
CODE(LANG9)
CODE(CAPSLOCK)
CODE(F1)
CODE(F2)
@@ -234,15 +237,15 @@ CODE(KBDILLUMDOWN)
CODE(KBDILLUMUP)
CODE(EJECT)
CODE(SLEEP)
#ifdef SDLK_APP1
#ifdef SDL_SCANCODE_APP1
CODE(APP1)
#endif
#ifdef SDLK_APP2
#ifdef SDL_SCANCODE_APP2
CODE(APP2)
#endif
#ifdef SDLK_AUDIOREWIND
#ifdef SDL_SCANCODE_AUDIOREWIND
CODE(AUDIOREWIND)
#endif
#ifdef SDLK_AUDIOFASTFORWARD
#ifdef SDL_SCANCODE_AUDIOFASTFORWARD
CODE(AUDIOFASTFORWARD)
#endif
#endif

View File

@@ -34,10 +34,10 @@ static void teardown()
}
}
static int TranslateSDLKeyCodeToVirtual(int sdlCode)
static int TranslateSDLKeyCodeToVirtual(SDL_Scancode sdlCode)
{
switch (sdlCode) {
#define CODE(x) case SDLK_ ## x: return SDLVK_ ## x;
#define CODE(x) case SDL_SCANCODE_ ## x: return SDLVK_ ## x;
#include "compat/SDLKeyCodes.h"
#undef CODE
}
@@ -132,7 +132,7 @@ static void handle_events()
}
*/
Keyboard::feed(AppPlatform_sdl_base::GetKeyState(event), TranslateSDLKeyCodeToVirtual(event.key.keysym.sym));
Keyboard::feed(AppPlatform_sdl_base::GetKeyState(event), TranslateSDLKeyCodeToVirtual(event.key.keysym.scancode));
if (event.key.keysym.sym == SDLK_LSHIFT || event.key.keysym.sym == SDLK_RSHIFT)
{
g_pAppPlatform->setShiftPressed(event.key.state == SDL_PRESSED, event.key.keysym.sym == SDLK_LSHIFT);

View File

@@ -113,21 +113,21 @@ void Options::_initDefaultValues()
#define KM(idx,code) m_keyMappings[idx].value = code
#ifdef USE_SDL
KM(KM_FORWARD, SDLVK_w);
KM(KM_LEFT, SDLVK_a);
KM(KM_BACKWARD, SDLVK_s);
KM(KM_RIGHT, SDLVK_d);
KM(KM_FORWARD, SDLVK_W);
KM(KM_LEFT, SDLVK_A);
KM(KM_BACKWARD, SDLVK_S);
KM(KM_RIGHT, SDLVK_D);
KM(KM_JUMP, SDLVK_SPACE);
KM(KM_DESTROY, SDLVK_x);
KM(KM_PLACE, SDLVK_c);
KM(KM_DESTROY, SDLVK_X);
KM(KM_PLACE, SDLVK_C);
KM(KM_MENU_NEXT, SDLVK_DOWN);
KM(KM_MENU_PREVIOUS, SDLVK_UP);
KM(KM_MENU_OK, SDLVK_RETURN);
KM(KM_MENU_CANCEL, SDLVK_ESCAPE);
KM(KM_DROP, SDLVK_q);
KM(KM_CHAT, SDLVK_t);
KM(KM_FOG, SDLVK_f);
KM(KM_INVENTORY, SDLVK_e);
KM(KM_DROP, SDLVK_Q);
KM(KM_CHAT, SDLVK_T);
KM(KM_FOG, SDLVK_F);
KM(KM_INVENTORY, SDLVK_E);
KM(KM_SNEAK, SDLVK_LSHIFT);
KM(KM_SLOT_1, SDLVK_1);
KM(KM_SLOT_2, SDLVK_2);
@@ -143,10 +143,10 @@ void Options::_initDefaultValues()
KM(KM_TOGGLEDEBUG, SDLVK_F3);
KM(KM_TOGGLEAO, SDLVK_F4);
KM(KM_TOGGLE3RD, SDLVK_F5);
KM(KM_SLOT_L, SDLVK_y);
KM(KM_SLOT_R, SDLVK_u);
KM(KM_FLY_UP, SDLVK_c);
KM(KM_FLY_DOWN, SDLVK_x);
KM(KM_SLOT_L, SDLVK_Y);
KM(KM_SLOT_R, SDLVK_U);
KM(KM_FLY_UP, SDLVK_C);
KM(KM_FLY_DOWN, SDLVK_X);
KM(KM_CHAT_CMD, SDLVK_SLASH);
#endif
#ifdef __ANDROID__

View File

@@ -32,12 +32,12 @@ void KeyboardInput::setKey(int keyCode, bool b)
{
int index = -1;
if (m_pOptions->getKey(KM_FORWARD) == keyCode) index = 0;
if (m_pOptions->getKey(KM_BACKWARD) == keyCode) index = 1;
if (m_pOptions->getKey(KM_LEFT) == keyCode) index = 2;
if (m_pOptions->getKey(KM_RIGHT) == keyCode) index = 3;
if (m_pOptions->getKey(KM_JUMP) == keyCode) index = 4;
if (m_pOptions->getKey(KM_SNEAK) == keyCode) index = 5;
if (m_pOptions->getKey(KM_FORWARD) == keyCode) index = INPUT_FORWARD;
if (m_pOptions->getKey(KM_BACKWARD) == keyCode) index = INPUT_BACKWARD;
if (m_pOptions->getKey(KM_LEFT) == keyCode) index = INPUT_LEFT;
if (m_pOptions->getKey(KM_RIGHT) == keyCode) index = INPUT_RIGHT;
if (m_pOptions->getKey(KM_JUMP) == keyCode) index = INPUT_JUMP;
if (m_pOptions->getKey(KM_SNEAK) == keyCode) index = INPUT_SNEAK;
if (index == -1)
return;