aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Koch <markus@notsyncing.net>2020-11-07 17:45:32 +0100
committersfan5 <sfan5@live.de>2020-11-09 11:58:50 +0100
commite1142ee57f2d7b59a86f6d0d72ae043844bc3121 (patch)
tree9b63cede37948a78d05e7595ee5976aab0c63a41
parent7589cbe086a5558eea018e1e3d25e388b26d51e8 (diff)
downloadminetest-e1142ee57f2d7b59a86f6d0d72ae043844bc3121.tar.gz
minetest-e1142ee57f2d7b59a86f6d0d72ae043844bc3121.tar.bz2
minetest-e1142ee57f2d7b59a86f6d0d72ae043844bc3121.zip
Joystick: Remap joystick-specific KeyTypes to generic ones
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.
-rw-r--r--src/client/game.cpp16
-rw-r--r--src/client/joystick_controller.cpp22
-rw-r--r--src/client/keys.h6
3 files changed, 17 insertions, 27 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 0380c1661..5c38e027d 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -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);
}
diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp
index c29e8b639..742115046 100644
--- a/src/client/joystick_controller.cpp
+++ b/src/client/joystick_controller.cpp
@@ -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
diff --git a/src/client/keys.h b/src/client/keys.h
index b6ce59b4a..60a7a3c45 100644
--- a/src/client/keys.h
+++ b/src/client/keys.h
@@ -110,12 +110,6 @@ public:
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