public override void OnActive(double elapsed, InputDevice input)
{
float curr_input = Math.Abs(input.LeftThumbStick.Y) > Math.Abs(input.RightThumbStick.Y) ? input.LeftThumbStick.Y : input.RightThumbStick.Y;
if (Math.Abs(curr_input) > epsilon)
time_1 += (float)elapsed;
else
time_1 = 0;
if (curr_input > epsilon && prev_direction > epsilon
|| curr_input < -epsilon && prev_direction < -epsilon)
time_2 += (float)elapsed;
else
time_2 = 0;
if ((time_1 > switch_delay && time_2 > scroll_delay) || (Math.Abs(prev_direction) < epsilon && Math.Abs(curr_input) > epsilon))
{
if (curr_input > epsilon)
curr_option--;
if (curr_input < -epsilon)
curr_option++;
if (curr_option < 0)
curr_option = options.Length - 1;
curr_option %= options.Length;
time_1 = 0;
}
if (input.IsPressed(Buttons.A))
{
TransitionTo(options[curr_option].screen);
}
prev_direction = curr_input;
}