1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Fix some more joystick issues (#10624)

This commit is contained in:
Markus 2020-12-19 22:01:05 +01:00 committed by GitHub
parent 5066fe7583
commit af22dd86e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 55 additions and 50 deletions

View file

@ -96,7 +96,7 @@ struct JoystickLayout {
std::vector<JoystickButtonCmb> button_keys;
std::vector<JoystickAxisCmb> axis_keys;
JoystickAxisLayout axes[JA_COUNT];
s16 axes_dead_border;
s16 axes_deadzone;
};
class JoystickController {
@ -111,37 +111,32 @@ public:
bool wasKeyDown(GameKeyType b)
{
bool r = m_past_pressed_keys[b];
m_past_pressed_keys[b] = false;
bool r = m_past_keys_pressed[b];
m_past_keys_pressed[b] = false;
return r;
}
bool getWasKeyDown(GameKeyType b)
{
return m_past_pressed_keys[b];
}
void clearWasKeyDown(GameKeyType b)
{
m_past_pressed_keys[b] = false;
}
bool wasKeyReleased(GameKeyType b)
{
bool r = m_past_released_keys[b];
m_past_released_keys[b] = false;
return r;
}
bool getWasKeyReleased(GameKeyType b)
{
return m_past_pressed_keys[b];
return m_keys_released[b];
}
void clearWasKeyReleased(GameKeyType b)
{
m_past_pressed_keys[b] = false;
m_keys_released[b] = false;
}
bool wasKeyPressed(GameKeyType b)
{
return m_keys_pressed[b];
}
void clearWasKeyPressed(GameKeyType b)
{
m_keys_pressed[b] = false;
}
bool isKeyDown(GameKeyType b)
{
return m_pressed_keys[b];
return m_keys_down[b];
}
s16 getAxis(JoystickAxis axis)
@ -162,12 +157,13 @@ private:
u8 m_joystick_id = 0;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_pressed_keys;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_down;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_pressed;
f32 m_internal_time;
f32 m_past_pressed_time[KeyType::INTERNAL_ENUM_COUNT];
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_pressed_keys;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_released_keys;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_keys_pressed;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_released;
};