@@ -5,15 +5,19 @@ namespace Ship {
5
5
ControllerDefaultMappings::ControllerDefaultMappings (
6
6
std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<KbScancode>> defaultKeyboardKeyToButtonMappings,
7
7
std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<SDL_GameControllerButton>>
8
- defaultSDLButtonToButtonMappings) {
8
+ defaultSDLButtonToButtonMappings,
9
+ std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>
10
+ defaultSDLAxisDirectionToButtonMappings) {
9
11
SetDefaultKeyboardKeyToButtonMappings (defaultKeyboardKeyToButtonMappings);
10
12
SetDefaultSDLButtonToButtonMappings (defaultSDLButtonToButtonMappings);
13
+ SetDefaultSDLAxisDirectionToButtonMappings (defaultSDLAxisDirectionToButtonMappings);
11
14
}
12
15
13
16
ControllerDefaultMappings::ControllerDefaultMappings ()
14
17
: ControllerDefaultMappings(
15
18
std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<KbScancode>>(),
16
- std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<SDL_GameControllerButton>>()) {
19
+ std::unordered_map<CONTROLLERBUTTONS_T, std::unordered_set<SDL_GameControllerButton>>(),
20
+ std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>()) {
17
21
}
18
22
19
23
ControllerDefaultMappings::~ControllerDefaultMappings () {
@@ -69,4 +73,25 @@ void ControllerDefaultMappings::SetDefaultSDLButtonToButtonMappings(
69
73
mDefaultSDLButtonToButtonMappings [BTN_DLEFT] = { SDL_CONTROLLER_BUTTON_DPAD_LEFT };
70
74
mDefaultSDLButtonToButtonMappings [BTN_DRIGHT] = { SDL_CONTROLLER_BUTTON_DPAD_RIGHT };
71
75
}
76
+
77
+ std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>
78
+ ControllerDefaultMappings::GetDefaultSDLAxisDirectionToButtonMappings () {
79
+ return mDefaultSDLAxisDirectionToButtonMappings ;
80
+ }
81
+
82
+ void ControllerDefaultMappings::SetDefaultSDLAxisDirectionToButtonMappings (
83
+ std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::pair<SDL_GameControllerAxis, int32_t >>>
84
+ defaultSDLAxisDirectionToButtonMappings) {
85
+ if (!defaultSDLAxisDirectionToButtonMappings.empty ()) {
86
+ mDefaultSDLAxisDirectionToButtonMappings = defaultSDLAxisDirectionToButtonMappings;
87
+ return ;
88
+ }
89
+
90
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_R] = { { SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1 } };
91
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_Z] = { { SDL_CONTROLLER_AXIS_TRIGGERLEFT, 1 } };
92
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_CUP] = { { SDL_CONTROLLER_AXIS_RIGHTY, -1 } };
93
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_CDOWN] = { { SDL_CONTROLLER_AXIS_RIGHTY, 1 } };
94
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_CLEFT] = { { SDL_CONTROLLER_AXIS_RIGHTX, -1 } };
95
+ mDefaultSDLAxisDirectionToButtonMappings [BTN_CRIGHT] = { { SDL_CONTROLLER_AXIS_RIGHTX, 1 } };
96
+ }
72
97
} // namespace Ship
0 commit comments