summaryrefslogtreecommitdiff
blob: 973c75d010fb5728ded542811b08131548ae1848 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
From 61833c9c26da5520f2eaa02f2458971ba07f2aad Mon Sep 17 00:00:00 2001
From: Benau <Benau@users.noreply.github.com>
Date: Sun, 29 Nov 2020 12:42:11 +0800
Subject: [PATCH] Fix compilation with latest SDL

---
 src/input/gamepad_config.cpp | 55 ++++++++++++++++++------------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/src/input/gamepad_config.cpp b/src/input/gamepad_config.cpp
index 7c6f632099..c060e7a5a7 100644
--- a/src/input/gamepad_config.cpp
+++ b/src/input/gamepad_config.cpp
@@ -32,8 +32,7 @@
 #include "input/sdl_controller.hpp"
 #include <array>
 
-static_assert(SDL_CONTROLLER_BUTTON_MAX - 1 == SDL_CONTROLLER_BUTTON_DPAD_RIGHT, "non continous name");
-enum AxisWithDirection
+enum AxisWithDirection : unsigned
 {
     SDL_CONTROLLER_AXIS_LEFTX_RIGHT = SDL_CONTROLLER_BUTTON_MAX,
     SDL_CONTROLLER_AXIS_LEFTX_LEFT,
@@ -140,56 +139,56 @@ void GamepadConfig::setDefaultBinds ()
 core::stringw GamepadConfig::getBindingAsString(const PlayerAction action) const
 {
 #ifndef SERVER_ONLY
-    std::array<core::stringw, SDL_CONTROLLER_AXIS_WITH_DIRECTION_AND_BUTTON_MAX> readable =
+    std::map<unsigned, core::stringw> readable =
     {{
-        "A", // SDL_CONTROLLER_BUTTON_A
-        "B", // SDL_CONTROLLER_BUTTON_B
-        "X", // SDL_CONTROLLER_BUTTON_X
-        "Y", // SDL_CONTROLLER_BUTTON_Y
+        { SDL_CONTROLLER_BUTTON_A, "A" },
+        { SDL_CONTROLLER_BUTTON_B, "B" },
+        { SDL_CONTROLLER_BUTTON_X, "X" },
+        { SDL_CONTROLLER_BUTTON_Y, "Y" },
         // I18N: name of buttons on gamepads
-        _("Back"), // SDL_CONTROLLER_BUTTON_BACK
+        { SDL_CONTROLLER_BUTTON_BACK, _("Back") },
         // I18N: name of buttons on gamepads
-        _("Guide"), // SDL_CONTROLLER_BUTTON_GUIDE
+        { SDL_CONTROLLER_BUTTON_GUIDE, _("Guide") },
         // I18N: name of buttons on gamepads
-        _("Start"), // SDL_CONTROLLER_BUTTON_START
+        { SDL_CONTROLLER_BUTTON_START, _("Start") },
         // I18N: name of buttons on gamepads
-        _("Left thumbstick press"), // SDL_CONTROLLER_BUTTON_LEFTSTICK
+        { SDL_CONTROLLER_BUTTON_LEFTSTICK, _("Left thumbstick press") },
         // I18N: name of buttons on gamepads
-        _("Right thumbstick press"), // SDL_CONTROLLER_BUTTON_RIGHTSTICK
+        { SDL_CONTROLLER_BUTTON_RIGHTSTICK, _("Right thumbstick press") },
         // I18N: name of buttons on gamepads
-        _("Left shoulder"), // SDL_CONTROLLER_BUTTON_LEFTSHOULDER
+        { SDL_CONTROLLER_BUTTON_LEFTSHOULDER, _("Left shoulder") },
         // I18N: name of buttons on gamepads
-        _("Right shoulder"), // SDL_CONTROLLER_BUTTON_RIGHTSHOULDER
+        { SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, _("Right shoulder") },
         // I18N: name of buttons on gamepads
-        _("DPad up"), // SDL_CONTROLLER_BUTTON_DPAD_UP
+        { SDL_CONTROLLER_BUTTON_DPAD_UP, _("DPad up") },
         // I18N: name of buttons on gamepads
-        _("DPad down"), // SDL_CONTROLLER_BUTTON_DPAD_DOWN
+        { SDL_CONTROLLER_BUTTON_DPAD_DOWN, _("DPad down") },
         // I18N: name of buttons on gamepads
-        _("DPad left"), // SDL_CONTROLLER_BUTTON_DPAD_LEFT
+        { SDL_CONTROLLER_BUTTON_DPAD_LEFT, _("DPad left") },
         // I18N: name of buttons on gamepads
-        _("DPad right"), // SDL_CONTROLLER_BUTTON_DPAD_RIGHT
+        { SDL_CONTROLLER_BUTTON_DPAD_RIGHT, _("DPad right") },
 
         // Below are extensions after SDL2 header SDL_CONTROLLER_BUTTON_MAX
         // I18N: name of buttons on gamepads
-        _("Left thumbstick right"), // SDL_CONTROLLER_AXIS_LEFTX_RIGHT
+        { SDL_CONTROLLER_AXIS_LEFTX_RIGHT, _("Left thumbstick right") },
         // I18N: name of buttons on gamepads
-        _("Left thumbstick left"), // SDL_CONTROLLER_AXIS_LEFTX_LEFT
+        { SDL_CONTROLLER_AXIS_LEFTX_LEFT, _("Left thumbstick left") },
         // I18N: name of buttons on gamepads
-        _("Left thumbstick down"), // SDL_CONTROLLER_AXIS_LEFTY_DOWN
+        { SDL_CONTROLLER_AXIS_LEFTY_DOWN, _("Left thumbstick down") },
         // I18N: name of buttons on gamepads
-        _("Left thumbstick up"), // SDL_CONTROLLER_AXIS_LEFTY_UP
+        { SDL_CONTROLLER_AXIS_LEFTY_UP, _("Left thumbstick up") },
         // I18N: name of buttons on gamepads
-        _("Right thumbstick right"), // SDL_CONTROLLER_AXIS_RIGHTX_RIGHT
+        { SDL_CONTROLLER_AXIS_RIGHTX_RIGHT, _("Right thumbstick right") },
         // I18N: name of buttons on gamepads
-        _("Right thumbstick left"), // SDL_CONTROLLER_AXIS_RIGHTX_LEFT
+        { SDL_CONTROLLER_AXIS_RIGHTX_LEFT, _("Right thumbstick left") },
         // I18N: name of buttons on gamepads
-        _("Right thumbstick down"), // SDL_CONTROLLER_AXIS_RIGHTY_DOWN
+        { SDL_CONTROLLER_AXIS_RIGHTY_DOWN, _("Right thumbstick down") },
         // I18N: name of buttons on gamepads
-        _("Right thumbstick up"), // SDL_CONTROLLER_AXIS_RIGHTY_UP
+        { SDL_CONTROLLER_AXIS_RIGHTY_UP, _("Right thumbstick up") },
         // I18N: name of buttons on gamepads
-        _("Left trigger"), // SDL_CONTROLLER_AXIS_TRIGGERLEFT_UP
+        { SDL_CONTROLLER_AXIS_TRIGGERLEFT_UP, _("Left trigger") },
         // I18N: name of buttons on gamepads
-        _("Right trigger") // SDL_CONTROLLER_AXIS_TRIGGERRIGHT_UP
+        { SDL_CONTROLLER_AXIS_TRIGGERRIGHT_UP, _("Right trigger") }
     }};
 
     const Binding &b = getBinding(action);