these need to be differentiatable lol

This commit is contained in:
minenice55 2026-02-15 23:40:38 -05:00
parent 9748cb3839
commit a5de10fce6
4 changed files with 32 additions and 7 deletions

View file

@ -29,7 +29,8 @@ typedef enum
ev_console,
ev_mouse,
ev_joystick,
ev_sensor,
ev_accelerometer,
ev_gyroscope,
} evtype_t;
// Event structure.

View file

@ -2180,6 +2180,12 @@ boolean G_Responder(event_t *ev)
case ev_joystick:
return true; // eat events
case ev_accelerometer:
return true; // eat events
case ev_gyroscope:
return true; // eat events
default:
break;
}

View file

@ -90,6 +90,24 @@ void I_ShutdownController(UINT8 index)
D_PostEvent(&event);
}
// reset sensors
event.type = ev_accelerometer;
for (i = 0; i < 3; i++)
{
event.data1 = 0;
event.data2 = 0;
event.data3 = 0;
D_PostEvent(&event);
}
event.type = ev_gyroscope;
for (i = 0; i < 3; i++)
{
event.data1 = 0;
event.data2 = 0;
event.data3 = 0;
D_PostEvent(&event);
}
I_ControllerReset(&controllerInfo[index]);
}

View file

@ -941,8 +941,6 @@ static void Impl_HandleControllerSensorEvent(SDL_GamepadSensorEvent evt)
{
event_t event;
event.type = ev_sensor;
event.device = 1 + evt.which;
event.data1 = event.data2 = event.data3 = INT32_MAX;
@ -958,16 +956,18 @@ static void Impl_HandleControllerSensorEvent(SDL_GamepadSensorEvent evt)
// data[1]: y acceleration in m/s
// data[2]: z acceleration in m/s
case SDL_SENSOR_ACCEL:
event.type = ev_accelerometer;
event.data1 = FLOAT_TO_FIXED(evt.data[0]);
event.data2 = FLOAT_TO_FIXED(evt.data[1]);
event.data3 = FLOAT_TO_FIXED(evt.data[2]);
break;
// data[0]: delta pitch in rad/s
// data[1]: delta yaw in rad/s
// data[2]: delta roll in rad/s
case SDL_SENSOR_GYRO:
// data[0]: delta pitch in rad/s
// data[1]: delta yaw in rad/s
// data[2]: delta roll in rad/s
case SDL_SENSOR_GYRO:
#define RAD2DEG 57.295779513f
event.type = ev_gyroscope;
event.data1 = FixedAngle(FLOAT_TO_FIXED(RAD2DEG * evt.data[0]));
event.data2 = FixedAngle(FLOAT_TO_FIXED(RAD2DEG * evt.data[1]));
event.data3 = FixedAngle(FLOAT_TO_FIXED(RAD2DEG * evt.data[2]));