]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Joystick: Remap joystick-specific KeyTypes to generic ones
authorMarkus Koch <markus@notsyncing.net>
Sat, 7 Nov 2020 16:45:32 +0000 (17:45 +0100)
committersfan5 <sfan5@live.de>
Mon, 9 Nov 2020 10:58:50 +0000 (11:58 +0100)
According to the following table:
* MOUSE_L     -> DIG
* MOUSE_R     -> PLACE
* SCROLL_UP   -> HOTBAR_NEXT
* SCROLL_DOWN -> HOTBAR_PREV

This commit entirely removes the special KeyTypes used for joysticks.

Support for the MOUSE KeyTypes had already been removed in the main
game code without adapting the joystick code, breaking joystick
input. This commit restores joystick functionality.

src/client/game.cpp
src/client/joystick_controller.cpp
src/client/keys.h

index 0380c1661b0bad09ff2af306eed52e1edfcfb09b..5c38e027d37c5681e8cbcf31747e6b87f2794036 100644 (file)
@@ -2014,15 +2014,11 @@ void Game::processItemSelection(u16 *new_playeritem)
 
        s32 dir = wheel;
 
-       if (input->joystick.wasKeyDown(KeyType::SCROLL_DOWN) ||
-                       wasKeyDown(KeyType::HOTBAR_NEXT)) {
+       if (wasKeyDown(KeyType::HOTBAR_NEXT))
                dir = -1;
-       }
 
-       if (input->joystick.wasKeyDown(KeyType::SCROLL_UP) ||
-                       wasKeyDown(KeyType::HOTBAR_PREV)) {
+       if (wasKeyDown(KeyType::HOTBAR_PREV))
                dir = 1;
-       }
 
        if (dir < 0)
                *new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0;
@@ -3138,11 +3134,11 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
        input->clearWasKeyPressed();
        input->clearWasKeyReleased();
 
-       input->joystick.clearWasKeyDown(KeyType::MOUSE_L);
-       input->joystick.clearWasKeyDown(KeyType::MOUSE_R);
+       input->joystick.clearWasKeyDown(KeyType::DIG);
+       input->joystick.clearWasKeyDown(KeyType::PLACE);
 
-       input->joystick.clearWasKeyReleased(KeyType::MOUSE_L);
-       input->joystick.clearWasKeyReleased(KeyType::MOUSE_R);
+       input->joystick.clearWasKeyReleased(KeyType::DIG);
+       input->joystick.clearWasKeyReleased(KeyType::PLACE);
 }
 
 
index c29e8b639858e81f3d1ba2bcf1e17c648f70a201..742115046addb489055b25bea0be94f69af33729 100644 (file)
@@ -74,8 +74,8 @@ JoystickLayout create_default_layout()
 
        // Accessible without four modifier button pressed
        // regardless whether start is pressed or not
-       JLO_B_PB(KeyType::MOUSE_L,    fb | 1 << 4, 1 << 4);
-       JLO_B_PB(KeyType::MOUSE_R,    fb | 1 << 5, 1 << 5);
+       JLO_B_PB(KeyType::DIG,        fb | 1 << 4, 1 << 4);
+       JLO_B_PB(KeyType::PLACE,      fb | 1 << 5, 1 << 5);
 
        // Accessible without any modifier pressed
        JLO_B_PB(KeyType::JUMP,       bm | 1 << 0, 1 << 0);
@@ -83,9 +83,9 @@ JoystickLayout create_default_layout()
 
        // Accessible with start button not pressed, but four pressed
        // TODO find usage for button 0
-       JLO_B_PB(KeyType::DROP,       bm | 1 << 1, fb | 1 << 1);
-       JLO_B_PB(KeyType::SCROLL_UP,  bm | 1 << 4, fb | 1 << 4);
-       JLO_B_PB(KeyType::SCROLL_DOWN,bm | 1 << 5, fb | 1 << 5);
+       JLO_B_PB(KeyType::DROP,        bm | 1 << 1, fb | 1 << 1);
+       JLO_B_PB(KeyType::HOTBAR_PREV, bm | 1 << 4, fb | 1 << 4);
+       JLO_B_PB(KeyType::HOTBAR_NEXT, bm | 1 << 5, fb | 1 << 5);
 
        // Accessible with start button and four pressed
        // TODO find usage for buttons 0, 1 and 4, 5
@@ -99,8 +99,8 @@ JoystickLayout create_default_layout()
        JLO_A_PB(KeyType::RIGHT,    0, -1, 1024);
 
        // Scroll buttons
-       JLO_A_PB(KeyType::SCROLL_UP,   2, -1, 1024);
-       JLO_A_PB(KeyType::SCROLL_DOWN, 5, -1, 1024);
+       JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, 1024);
+       JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, 1024);
 
        return jlo;
 }
@@ -134,10 +134,10 @@ JoystickLayout create_xbox_layout()
        JLO_B_PB(KeyType::SNEAK,       1 << 12, 1 << 12); // right
 
        // Triggers
-       JLO_B_PB(KeyType::MOUSE_L,     1 << 6,  1 << 6); // lt
-       JLO_B_PB(KeyType::MOUSE_R,     1 << 7,  1 << 7); // rt
-       JLO_B_PB(KeyType::SCROLL_UP,   1 << 4,  1 << 4); // lb
-       JLO_B_PB(KeyType::SCROLL_DOWN, 1 << 5,  1 << 5); // rb
+       JLO_B_PB(KeyType::DIG,         1 << 6,  1 << 6); // lt
+       JLO_B_PB(KeyType::PLACE,       1 << 7,  1 << 7); // rt
+       JLO_B_PB(KeyType::HOTBAR_PREV, 1 << 4,  1 << 4); // lb
+       JLO_B_PB(KeyType::HOTBAR_NEXT, 1 << 5,  1 << 5); // rb
 
        // D-PAD
        JLO_B_PB(KeyType::ZOOM,        1 << 15, 1 << 15); // up
index b6ce59b4a166ef6678763bda7bf214695a632349..60a7a3c453c9854b2f6aad00dbe1f952e0cac456 100644 (file)
@@ -110,12 +110,6 @@ class KeyType
                SLOT_31,
                SLOT_32,
 
-               // joystick specific keys
-               MOUSE_L,
-               MOUSE_R,
-               SCROLL_UP,
-               SCROLL_DOWN,
-
                // Fake keycode for array size and internal checks
                INTERNAL_ENUM_COUNT