X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcontrol%2Fjoystickkeyboardcontroller.hpp;h=f989ea6f64a543418e2ab78697fa3f27feb7ae8d;hb=b029182b66e1f36e8eb7a1d8d23d26d475dec45f;hp=7d88932fc4b32217c51a685212c811ab76a5d26a;hpb=a113d3bd1feddd510e3b2852b0d42522735eee40;p=supertux.git diff --git a/src/control/joystickkeyboardcontroller.hpp b/src/control/joystickkeyboardcontroller.hpp index 7d88932fc..f989ea6f6 100644 --- a/src/control/joystickkeyboardcontroller.hpp +++ b/src/control/joystickkeyboardcontroller.hpp @@ -21,11 +21,17 @@ #define __JOYSTICKKEYBOARDCONTROLLER_H__ #include "controller.hpp" -#include "lisp/lisp.hpp" -#include "lisp/writer.hpp" + +namespace lisp { +class Writer; +class Lisp; +} + #include + #include #include +#include class Menu; @@ -45,53 +51,65 @@ public: Menu* get_key_options_menu(); Menu* get_joystick_options_menu(); + void updateAvailableJoysticks(); 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 KeyMap; KeyMap keymap; - std::vector joysticks; - typedef std::map ButtonMap; ButtonMap joy_button_map; + + typedef std::map AxisMap; + AxisMap joy_axis_map; + + typedef std::map HatMap; + HatMap joy_hat_map; + + std::vector joysticks; + std::string name; - bool use_hat; - int joyaxis_x; - int joyaxis_y; - int dead_zone_x; - int dead_zone_y; + + int dead_zone; /// the number of buttons all joysticks have int min_joybuttons; /// the max number of buttons a joystick has int max_joybuttons; -/* - enum { - MNID_KEY_UP, - MNID_KEY_DOWN, - MNID_KEY_LEFT, - MNID_KEY_RIGHT, - MNID_KEY_JUMP, - MNID_KEY_ACTION, - MNID_KEY_CONSOLE - }; - enum { - MNID_JS_JUMP, - MNID_JS_ACTION, - MNID_JS_MENU, - MNID_JS_PAUSE - }; - */ + + 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); - void reset_joybutton(int button, Control c); - void reset_key(SDLKey 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 set_joy_controls(Control id, bool value); int wait_for_key; - int wait_for_joybutton; + int wait_for_joystick; class KeyboardMenu; class JoystickMenu;