diff options
Diffstat (limited to 'src/SFML/Window/Input.cpp')
-rwxr-xr-x | src/SFML/Window/Input.cpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/src/SFML/Window/Input.cpp b/src/SFML/Window/Input.cpp index 7b10270..01dd54f 100755 --- a/src/SFML/Window/Input.cpp +++ b/src/SFML/Window/Input.cpp @@ -37,23 +37,7 @@ Input::Input() : myMouseX(0),
myMouseY(0)
{
- for (int i = 0; i < Key::Count; ++i)
- myKeys[i] = false;
-
- for (int i = 0; i < Mouse::Count; ++i)
- myMouseButtons[i] = false;
-
- for (int i = 0; i < 16; ++i)
- {
- myJoystickButtons[0][i] = false;
- myJoystickButtons[1][i] = false;
- }
-
- for (int i = 0; i < Joy::Count; ++i)
- {
- myJoystickAxis[0][i] = 0.f;
- myJoystickAxis[1][i] = 0.f;
- }
+ ResetStates();
}
@@ -80,7 +64,7 @@ bool Input::IsMouseButtonDown(Mouse::Button Button) const ////////////////////////////////////////////////////////////
bool Input::IsJoystickButtonDown(unsigned int JoyId, unsigned int Button) const
{
- if ((JoyId < 2) && (Button < 16))
+ if ((JoyId < Joy::Count) && (Button < Joy::ButtonCount))
return myJoystickButtons[JoyId][Button];
else
return false;
@@ -110,7 +94,10 @@ int Input::GetMouseY() const ////////////////////////////////////////////////////////////
float Input::GetJoystickAxis(unsigned int JoyId, Joy::Axis Axis) const
{
- return myJoystickAxis[JoyId][Axis];
+ if (JoyId < Joy::Count)
+ return myJoystickAxis[JoyId][Axis];
+ else
+ return 0.f;
}
@@ -147,17 +134,7 @@ void Input::OnEvent(const Event& EventReceived) // Lost focus event : we must reset all persistent states
case Event::LostFocus :
{
- for (int i = 0; i < Key::Count; ++i)
- myKeys[i] = false;
-
- for (int i = 0; i < Mouse::Count; ++i)
- myMouseButtons[i] = false;
-
- for (int i = 0; i < 16; ++i)
- {
- myJoystickButtons[0][i] = false;
- myJoystickButtons[1][i] = false;
- }
+ ResetStates();
break;
}
@@ -166,4 +143,27 @@ void Input::OnEvent(const Event& EventReceived) }
}
+
+////////////////////////////////////////////////////////////
+/// Reset all the states
+////////////////////////////////////////////////////////////
+void Input::ResetStates()
+{
+ for (int i = 0; i < Key::Count; ++i)
+ myKeys[i] = false;
+
+ for (int i = 0; i < Mouse::ButtonCount; ++i)
+ myMouseButtons[i] = false;
+
+ for (int i = 0; i < Joy::Count; ++i)
+ {
+ for (int j = 0; j < Joy::ButtonCount; ++j)
+ myJoystickButtons[i][j] = false;
+
+ for (int j = 0; j < Joy::AxisCount; ++j)
+ myJoystickAxis[i][j] = 0.f;
+ myJoystickAxis[i][Joy::AxisPOV] = -1.f;
+ }
+}
+
} // namespace sf
|