mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-22 19:38:06 -04:00
Add extra gyro calibration step, increase calibration time (#1875)
Give players time to place gamepad on a flat surface.
This commit is contained in:
parent
0514102a8d
commit
55a65d98dd
11
src/i_gyro.c
11
src/i_gyro.c
@ -224,7 +224,12 @@ void I_UpdateGyroCalibrationState(void)
|
||||
switch (cal.state)
|
||||
{
|
||||
case GYRO_CALIBRATION_INACTIVE:
|
||||
if (!motion.calibrating)
|
||||
cal.state = GYRO_CALIBRATION_STARTING;
|
||||
cal.start_time = I_GetTimeMS();
|
||||
break;
|
||||
|
||||
case GYRO_CALIBRATION_STARTING:
|
||||
if (I_GetTimeMS() - cal.start_time > 1500)
|
||||
{
|
||||
motion.calibrating = true;
|
||||
ClearGyroCalibration();
|
||||
@ -234,7 +239,7 @@ void I_UpdateGyroCalibrationState(void)
|
||||
break;
|
||||
|
||||
case GYRO_CALIBRATION_ACTIVE:
|
||||
if (I_GetTimeMS() - cal.start_time > 1000)
|
||||
if (I_GetTimeMS() - cal.start_time > 3000)
|
||||
{
|
||||
motion.calibrating = false;
|
||||
PostProcessCalibration();
|
||||
@ -244,7 +249,7 @@ void I_UpdateGyroCalibrationState(void)
|
||||
break;
|
||||
|
||||
case GYRO_CALIBRATION_COMPLETE:
|
||||
if (I_GetTimeMS() - cal.finish_time > 1000)
|
||||
if (I_GetTimeMS() - cal.finish_time > 1500)
|
||||
{
|
||||
cal.state = GYRO_CALIBRATION_INACTIVE;
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ extern float gyro_axes[NUM_GYRO_AXES]; // Calculated gyro values.
|
||||
typedef enum gyro_calibration_state_e
|
||||
{
|
||||
GYRO_CALIBRATION_INACTIVE,
|
||||
GYRO_CALIBRATION_STARTING,
|
||||
GYRO_CALIBRATION_ACTIVE,
|
||||
GYRO_CALIBRATION_COMPLETE,
|
||||
} gyro_calibration_state_t;
|
||||
|
@ -1091,8 +1091,13 @@ static void DrawGyroCalibration(void)
|
||||
case GYRO_CALIBRATION_INACTIVE:
|
||||
break;
|
||||
|
||||
case GYRO_CALIBRATION_ACTIVE:
|
||||
case GYRO_CALIBRATION_STARTING:
|
||||
block_input = true;
|
||||
DrawNotification("Starting calibration...", CR_GRAY);
|
||||
I_UpdateGyroCalibrationState();
|
||||
break;
|
||||
|
||||
case GYRO_CALIBRATION_ACTIVE:
|
||||
DrawNotification("Calibrating, please wait...", CR_GRAY);
|
||||
I_UpdateGyroCalibrationState();
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user