@@ -11,14 +11,17 @@ ControllerDefaultMappings::ControllerDefaultMappings(
11
11
std::unordered_map<StickIndex, std::vector<std::pair<Direction, SDL_GameControllerButton>>>
12
12
defaultSDLButtonToAxisDirectionMappings,
13
13
std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>
14
- defaultSDLAxisDirectionToButtonMappings) {
14
+ defaultSDLAxisDirectionToButtonMappings,
15
+ std::unordered_map<StickIndex, std::vector<std::pair<Direction, std::pair<SDL_GameControllerAxis, int32_t >>>>
16
+ defaultSDLAxisDirectionToAxisDirectionMappings) {
15
17
SetDefaultKeyboardKeyToButtonMappings (defaultKeyboardKeyToButtonMappings);
16
18
SetDefaultKeyboardKeyToAxisDirectionMappings (defaultKeyboardKeyToAxisDirectionMappings);
17
19
18
20
SetDefaultSDLButtonToButtonMappings (defaultSDLButtonToButtonMappings);
19
21
SetDefaultSDLButtonToAxisDirectionMappings (defaultSDLButtonToAxisDirectionMappings);
20
22
21
23
SetDefaultSDLAxisDirectionToButtonMappings (defaultSDLAxisDirectionToButtonMappings);
24
+ SetDefaultSDLAxisDirectionToAxisDirectionMappings (defaultSDLAxisDirectionToAxisDirectionMappings);
22
25
}
23
26
24
27
ControllerDefaultMappings::ControllerDefaultMappings ()
@@ -27,7 +30,9 @@ ControllerDefaultMappings::ControllerDefaultMappings()
27
30
std::unordered_map<StickIndex, std::vector<std::pair<Direction, KbScancode>>>(),
28
31
std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<SDL_GameControllerButton>>(),
29
32
std::unordered_map<StickIndex, std::vector<std::pair<Direction, SDL_GameControllerButton>>>(),
30
- std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>()) {
33
+ std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>(),
34
+ std::unordered_map<StickIndex,
35
+ std::vector<std::pair<Direction, std::pair<SDL_GameControllerAxis, int32_t >>>>()) {
31
36
}
32
37
33
38
ControllerDefaultMappings::~ControllerDefaultMappings () {
@@ -137,4 +142,33 @@ void ControllerDefaultMappings::SetDefaultSDLAxisDirectionToButtonMappings(
137
142
mDefaultSDLAxisDirectionToButtonMappings [BTN_CLEFT] = { { SDL_CONTROLLER_AXIS_RIGHTX, -1 } };
138
143
mDefaultSDLAxisDirectionToButtonMappings [BTN_CRIGHT] = { { SDL_CONTROLLER_AXIS_RIGHTX, 1 } };
139
144
}
145
+
146
+ std::unordered_map<StickIndex, std::vector<std::pair<Direction, std::pair<SDL_GameControllerAxis, int32_t >>>>
147
+ ControllerDefaultMappings::GetDefaultSDLAxisDirectionToAxisDirectionMappings () {
148
+ return mDefaultSDLAxisDirectionToAxisDirectionMappings ;
149
+ }
150
+
151
+ void ControllerDefaultMappings::SetDefaultSDLAxisDirectionToAxisDirectionMappings (
152
+ std::unordered_map<StickIndex, std::vector<std::pair<Direction, std::pair<SDL_GameControllerAxis, int32_t >>>>
153
+ defaultSDLAxisDirectionToAxisDirectionMappings) {
154
+ if (!defaultSDLAxisDirectionToAxisDirectionMappings.empty ()) {
155
+ mDefaultSDLAxisDirectionToAxisDirectionMappings = defaultSDLAxisDirectionToAxisDirectionMappings;
156
+ return ;
157
+ }
158
+
159
+ mDefaultSDLAxisDirectionToAxisDirectionMappings [LEFT_STICK] = {
160
+ { LEFT, { SDL_CONTROLLER_AXIS_LEFTX, -1 } },
161
+ { RIGHT, { SDL_CONTROLLER_AXIS_LEFTX, 1 } },
162
+ { UP, { SDL_CONTROLLER_AXIS_LEFTY, -1 } },
163
+ { DOWN, { SDL_CONTROLLER_AXIS_LEFTY, 1 } },
164
+ };
165
+
166
+ mDefaultSDLAxisDirectionToAxisDirectionMappings [RIGHT_STICK] = {
167
+ { LEFT, { SDL_CONTROLLER_AXIS_RIGHTX, -1 } },
168
+ { RIGHT, { SDL_CONTROLLER_AXIS_RIGHTX, 1 } },
169
+ { UP, { SDL_CONTROLLER_AXIS_RIGHTY, -1 } },
170
+ { DOWN, { SDL_CONTROLLER_AXIS_RIGHTY, 1 } },
171
+ };
172
+ }
173
+
140
174
} // namespace Ship
0 commit comments