summaryrefslogtreecommitdiff
path: root/src/SFML/Window/Input.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SFML/Window/Input.cpp')
-rwxr-xr-xsrc/SFML/Window/Input.cpp60
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