51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef JOYSTICK_HEADER
-#define JOYSTICK_HEADER
+#pragma once
#include "irrlichttypes_extrabloated.h"
#include "keys.h"
struct JoystickButtonCmb : public JoystickCombination {
- JoystickButtonCmb() {}
+ JoystickButtonCmb() = default;
+
JoystickButtonCmb(GameKeyType key, u32 filter_mask, u32 compare_mask) :
filter_mask(filter_mask),
compare_mask(compare_mask)
struct JoystickAxisCmb : public JoystickCombination {
- JoystickAxisCmb() {}
+ JoystickAxisCmb() = default;
+
JoystickAxisCmb(GameKeyType key, u16 axis_to_compare, int direction, s16 thresh) :
axis_to_compare(axis_to_compare),
direction(direction),
public:
JoystickController();
+
+ void onJoystickConnect(const std::vector<irr::SJoystickInfo> &joystick_infos);
+
bool handleEvent(const irr::SEvent::SJoystickEvent &ev);
void clear();
f32 doubling_dtime;
private:
- const JoystickLayout *m_layout;
+ void setLayoutFromControllerName(const std::string &name);
+
+ JoystickLayout m_layout;
s16 m_axes_vals[JA_COUNT];
+ u8 m_joystick_id = 0;
+
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_pressed_keys;
f32 m_internal_time;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_pressed_keys;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_released_keys;
};
-
-#endif