{
// JoystickHat -> Buttons/GamePadAxes mapping
JoystickHat source_hat = map.Source.Hat;
- bool pressed = joy.GetHat(source_hat).Position == map.Source.HatPosition;
+
+ bool pressed = false;
+ switch (map.Source.HatPosition)
+ {
+ case HatPosition.Down:
+ pressed = joy.GetHat(source_hat).IsDown;
+ break;
+
+ case HatPosition.Up:
+ pressed = joy.GetHat(source_hat).IsUp;
+ break;
+
+ case HatPosition.Left:
+ pressed = joy.GetHat(source_hat).IsLeft;
+ break;
+
+ case HatPosition.Right:
+ pressed = joy.GetHat(source_hat).IsRight;
+ break;
+ }
switch (map.Target.Type)
{
OpenTK.Input.HatPosition TranslateHat(HatPosition value)
{
- if ((value & HatPosition.LeftUp) == value)
+ if ((value & HatPosition.LeftUp) == HatPosition.LeftUp)
return OpenTK.Input.HatPosition.UpLeft;
- if ((value & HatPosition.RightUp) == value)
+ if ((value & HatPosition.RightUp) == HatPosition.RightUp)
return OpenTK.Input.HatPosition.UpRight;
- if ((value & HatPosition.LeftDown) == value)
+ if ((value & HatPosition.LeftDown) == HatPosition.LeftDown)
return OpenTK.Input.HatPosition.DownLeft;
- if ((value & HatPosition.RightDown) == value)
+ if ((value & HatPosition.RightDown) == HatPosition.RightDown)
return OpenTK.Input.HatPosition.DownRight;
- if ((value & HatPosition.Up) == value)
+ if ((value & HatPosition.Up) == HatPosition.Up)
return OpenTK.Input.HatPosition.Up;
- if ((value & HatPosition.Right) == value)
+ if ((value & HatPosition.Right) == HatPosition.Right)
return OpenTK.Input.HatPosition.Right;
- if ((value & HatPosition.Down) == value)
+ if ((value & HatPosition.Down) == HatPosition.Down)
return OpenTK.Input.HatPosition.Down;
- if ((value & HatPosition.Left) == value)
+ if ((value & HatPosition.Left) == HatPosition.Left)
return OpenTK.Input.HatPosition.Left;
return OpenTK.Input.HatPosition.Centered;