private:
void process_key_event(const SDL_Event& event);
+ void process_hat_event(const SDL_JoyHatEvent& jhat);
+ void process_axis_event(const SDL_JoyAxisEvent& jaxis);
+ void process_button_event(const SDL_JoyButtonEvent& jbutton);
void process_console_key_event(const SDL_Event& event);
void process_menu_key_event(const SDL_Event& event);
+ void print_joystick_mappings();
+
typedef std::map<SDLKey, Control> KeyMap;
KeyMap keymap;
typedef std::map<int, Control> AxisMap;
AxisMap joy_axis_map;
+ typedef std::map<int, Control> HatMap;
+ HatMap joy_hat_map;
+
std::vector<SDL_Joystick*> joysticks;
std::string name;
- bool use_hat;
+
int dead_zone;
/// the number of buttons all joysticks have
int min_joybuttons;
int max_joyaxis;
+ int max_joyhats;
+
+ Uint8 hat_state;
+
+ bool jump_with_up_joy; // Joystick up jumps
+ bool jump_with_up_kbd; // Keyboard up jumps
+
SDLKey reversemap_key(Control c);
int reversemap_joybutton(Control c);
int reversemap_joyaxis(Control c);
+ int reversemap_joyhat(Control c);
+
+ void unbind_joystick_control(Control c);
+
+ void bind_joybutton(int button, Control c);
+ void bind_joyaxis(int axis, Control c);
+ void bind_joyhat(int dir, Control c);
+ void bind_key(SDLKey key, Control c);
- void reset_joybutton(int button, Control c);
- void reset_joyaxis(int axis, Control c);
- void reset_key(SDLKey key, Control c);
+ void set_joy_controls(Control id, bool value);
int wait_for_key;
int wait_for_joystick;