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:
parent
5066fe7583
commit
af22dd86e3
7 changed files with 55 additions and 50 deletions
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue