@@ -81,31 +81,43 @@ void Platform::gamepadEventDisconnectedInternal(GamepadHandle handle)
8181void Platform::gamepadButtonPressedEventInternal (GamepadHandle handle, Gamepad::ButtonMapping mapping)
8282{
8383 Gamepad* gamepad = Gamepad::getGamepad (handle);
84- unsigned int newButtons = gamepad->_buttons | (1 << mapping);
85- gamepad->setButtons (newButtons);
86- Form::gamepadButtonEventInternal (gamepad);
84+ if (gamepad)
85+ {
86+ unsigned int newButtons = gamepad->_buttons | (1 << mapping);
87+ gamepad->setButtons (newButtons);
88+ Form::gamepadButtonEventInternal (gamepad);
89+ }
8790}
8891
8992void Platform::gamepadButtonReleasedEventInternal (GamepadHandle handle, Gamepad::ButtonMapping mapping)
9093{
9194 Gamepad* gamepad = Gamepad::getGamepad (handle);
92- unsigned int newButtons = gamepad->_buttons & ~(1 << mapping);
93- gamepad->setButtons (newButtons);
94- Form::gamepadButtonEventInternal (gamepad);
95+ if (gamepad)
96+ {
97+ unsigned int newButtons = gamepad->_buttons & ~(1 << mapping);
98+ gamepad->setButtons (newButtons);
99+ Form::gamepadButtonEventInternal (gamepad);
100+ }
95101}
96102
97103void Platform::gamepadTriggerChangedEventInternal (GamepadHandle handle, unsigned int index, float value)
98104{
99105 Gamepad* gamepad = Gamepad::getGamepad (handle);
100- gamepad->setTriggerValue (index, value);
101- Form::gamepadTriggerEventInternal (gamepad, index);
106+ if (gamepad)
107+ {
108+ gamepad->setTriggerValue (index, value);
109+ Form::gamepadTriggerEventInternal (gamepad, index);
110+ }
102111}
103112
104113void Platform::gamepadJoystickChangedEventInternal (GamepadHandle handle, unsigned int index, float x, float y)
105114{
106115 Gamepad* gamepad = Gamepad::getGamepad (handle);
107- gamepad->setJoystickValue (index, x, y);
108- Form::gamepadJoystickEventInternal (gamepad, index);
116+ if (gamepad)
117+ {
118+ gamepad->setJoystickValue (index, x, y);
119+ Form::gamepadJoystickEventInternal (gamepad, index);
120+ }
109121}
110122
111123}
0 commit comments