From 02ddcc961b2c510bcaa59c153b93556b9ff72601 Mon Sep 17 00:00:00 2001 From: auria Date: Sun, 27 Mar 2011 02:03:46 +0000 Subject: [PATCH] Blindly trying to add hat support (I don't have hats so can't test) git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@8085 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/input/input_manager.cpp | 12 +++++++++++- src/states_screens/options_screen_input2.cpp | 7 ++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/input/input_manager.cpp b/src/input/input_manager.cpp index e8bf39567..2f88843da 100644 --- a/src/input/input_manager.cpp +++ b/src/input/input_manager.cpp @@ -331,8 +331,18 @@ void InputManager::inputSensing(Input::InputType type, int deviceID, int button, break; } - case Input::IT_NONE: case Input::IT_STICKHAT: + if (value > Input::MAX_VALUE/2) + { + Input sensed_input; + sensed_input.m_type = Input::IT_STICKHAT; + sensed_input.m_device_id = deviceID; + sensed_input.m_button_id = button; + sensed_input.m_character = deviceID; + OptionsScreenInput2::getInstance()->gotSensedInput(sensed_input); + break; + } + case Input::IT_NONE: case Input::IT_MOUSEMOTION: case Input::IT_MOUSEBUTTON: // uninteresting (but we keep them here to explicitely state we do diff --git a/src/states_screens/options_screen_input2.cpp b/src/states_screens/options_screen_input2.cpp index 7ac155616..319fd362d 100644 --- a/src/states_screens/options_screen_input2.cpp +++ b/src/states_screens/options_screen_input2.cpp @@ -292,7 +292,8 @@ void OptionsScreenInput2::gotSensedInput(const Input& sensed_input) const bool keyboard = (m_config->getType() == DEVICE_CONFIG_TYPE_KEYBOARD && sensed_input.m_type == Input::IT_KEYBOARD); const bool gamepad = (sensed_input.m_type == Input::IT_STICKMOTION || - sensed_input.m_type == Input::IT_STICKBUTTON) && + sensed_input.m_type == Input::IT_STICKBUTTON || + sensed_input.m_type == Input::IT_STICKHAT) && m_config->getType() == DEVICE_CONFIG_TYPE_GAMEPAD; if (keyboard) @@ -331,6 +332,10 @@ void OptionsScreenInput2::gotSensedInput(const Input& sensed_input) { std::cout << "button " << sensed_input.m_button_id<< "\n\n"; } + else if (sensed_input.m_type == Input::IT_STICKHAT) + { + std::cout << "Hat " << sensed_input.m_button_id << "\n\n"; + } else { std::cout << "Sensed unknown gamepad event type??\n";