diff options
Diffstat (limited to 'src/SFML/Window/WindowImpl.cpp')
-rwxr-xr-x | src/SFML/Window/WindowImpl.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/SFML/Window/WindowImpl.cpp b/src/SFML/Window/WindowImpl.cpp index bc60543..dd0584f 100755 --- a/src/SFML/Window/WindowImpl.cpp +++ b/src/SFML/Window/WindowImpl.cpp @@ -125,7 +125,7 @@ void WindowImpl::RemoveListener(WindowListener* Listener) void WindowImpl::Initialize()
{
// Initialize the joysticks
- for (unsigned int i = 0; i < JoysticksCount; ++i)
+ for (unsigned int i = 0; i < Joy::Count; ++i)
{
myJoysticks[i].Initialize(i);
myJoyStates[i] = myJoysticks[i].UpdateState();
@@ -214,25 +214,29 @@ int WindowImpl::EvaluateConfig(const VideoMode& Mode, const WindowSettings& Sett ////////////////////////////////////////////////////////////
void WindowImpl::ProcessJoystickEvents()
{
- for (unsigned int i = 0; i < JoysticksCount; ++i)
+ for (unsigned int i = 0; i < Joy::Count; ++i)
{
// Copy the previous state of the joystick and get the new one
JoystickState PreviousState = myJoyStates[i];
myJoyStates[i] = myJoysticks[i].UpdateState();
// Axis
- for (unsigned int j = 0; j < myJoysticks[i].GetAxesCount(); ++j)
+ for (unsigned int j = 0; j < Joy::AxisCount; ++j)
{
- float PrevPos = PreviousState.Axis[j];
- float CurrPos = myJoyStates[i].Axis[j];
- if (fabs(CurrPos - PrevPos) >= myJoyThreshold)
+ Joy::Axis Axis = static_cast<Joy::Axis>(j);
+ if (myJoysticks[i].HasAxis(Axis))
{
- Event Event;
- Event.Type = Event::JoyMoved;
- Event.JoyMove.JoystickId = i;
- Event.JoyMove.Axis = static_cast<Joy::Axis>(j);
- Event.JoyMove.Position = CurrPos;
- SendEvent(Event);
+ float PrevPos = PreviousState.Axis[j];
+ float CurrPos = myJoyStates[i].Axis[j];
+ if (fabs(CurrPos - PrevPos) >= myJoyThreshold)
+ {
+ Event Event;
+ Event.Type = Event::JoyMoved;
+ Event.JoyMove.JoystickId = i;
+ Event.JoyMove.Axis = Axis;
+ Event.JoyMove.Position = CurrPos;
+ SendEvent(Event);
+ }
}
}
|