|
@@ -506,7 +506,7 @@ static bool EMSCRIPTEN_JoystickOpen(SDL_Joystick *joystick, int device_index)
|
|
|
|
|
|
|
|
item->rumble_available = MAIN_THREAD_EM_ASM_INT({
|
|
item->rumble_available = MAIN_THREAD_EM_ASM_INT({
|
|
|
let gamepad = navigator['getGamepads']()[$0];
|
|
let gamepad = navigator['getGamepads']()[$0];
|
|
|
- return gamepad && gamepad['vibrationActuator']; // Don't check the vibrationActuator.effects array here, because it's not defined in Safari
|
|
|
|
|
|
|
+ return gamepad && 'vibrationActuator' in gamepad; // Don't check the vibrationActuator.effects array here, because it's not defined in Safari
|
|
|
}, item->index);
|
|
}, item->index);
|
|
|
|
|
|
|
|
if (item->rumble_available) {
|
|
if (item->rumble_available) {
|
|
@@ -516,7 +516,7 @@ static bool EMSCRIPTEN_JoystickOpen(SDL_Joystick *joystick, int device_index)
|
|
|
item->trigger_rumble_available = MAIN_THREAD_EM_ASM_INT({
|
|
item->trigger_rumble_available = MAIN_THREAD_EM_ASM_INT({
|
|
|
let gamepad = navigator['getGamepads']()[$0];
|
|
let gamepad = navigator['getGamepads']()[$0];
|
|
|
// This effect is not supported in Safari, so it's okay for us to check the vibrationActuator.effects array here for the browsers that do support it
|
|
// This effect is not supported in Safari, so it's okay for us to check the vibrationActuator.effects array here for the browsers that do support it
|
|
|
- return gamepad && gamepad['vibrationActuator'] && gamepad['vibrationActuator']['effects'] && gamepad['vibrationActuator']['effects']['includes']('trigger-rumble');
|
|
|
|
|
|
|
+ return gamepad && 'vibrationActuator' in gamepad && 'effects' in gamepad['vibrationActuator'] && gamepad['vibrationActuator']['effects']['includes']('trigger-rumble');
|
|
|
}, item->index);
|
|
}, item->index);
|
|
|
|
|
|
|
|
if (item->trigger_rumble_available) {
|
|
if (item->trigger_rumble_available) {
|