From: <au...@us...> - 2009-03-31 20:42:42
|
Revision: 3332 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3332&view=rev Author: auria Date: 2009-03-31 20:42:32 +0000 (Tue, 31 Mar 2009) Log Message: ----------- added debug check to help minibjorn find the cause of his issues with gamepad Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-03-31 20:33:44 UTC (rev 3331) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-03-31 20:42:32 UTC (rev 3332) @@ -267,6 +267,7 @@ // ----------------------------------------------------------------------------- bool GamePadDevice::hasBinding(Input::InputType type, const int id, const int value, const int player, PlayerAction* action /* out */) { + printf("Something's triggered in gamepad\n"); if(type == Input::IT_STICKMOTION) { // going to negative from positive @@ -332,6 +333,7 @@ } else if(type == Input::IT_STICKBUTTON) { + printf(" It's a button press, #%i\n", id); // find corresponding action and return it for(int n=0; n<PA_COUNT; n++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-03-31 21:04:53
|
Revision: 3334 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3334&view=rev Author: auria Date: 2009-03-31 21:04:44 +0000 (Tue, 31 Mar 2009) Log Message: ----------- removed a few debug prints now that it works Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-03-31 20:49:51 UTC (rev 3333) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-03-31 21:04:44 UTC (rev 3334) @@ -267,7 +267,6 @@ // ----------------------------------------------------------------------------- bool GamePadDevice::hasBinding(Input::InputType type, const int id, const int value, const int player, PlayerAction* action /* out */) { - printf("Something's triggered in gamepad\n"); if(type == Input::IT_STICKMOTION) { // going to negative from positive @@ -333,7 +332,6 @@ } else if(type == Input::IT_STICKBUTTON) { - printf(" It's a button press, #%i\n", id); // find corresponding action and return it for(int n=0; n<PA_COUNT; n++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-04 23:15:44
|
Revision: 3351 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3351&view=rev Author: auria Date: 2009-04-04 23:15:34 +0000 (Sat, 04 Apr 2009) Log Message: ----------- attempt at fixing crash when navigating menus with gamepad Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-04 23:12:38 UTC (rev 3350) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-04 23:15:34 UTC (rev 3351) @@ -255,6 +255,8 @@ // ----------------------------------------------------------------------------- void GamePadDevice::resetAxisDirection(const int axis, Input::AxisDirection direction, const int player) { + if(!StateManager::isGameState()) return; // ignore this while in menus + for(int n=0; n<PA_COUNT; n++) { if(m_bindings[n].id == axis && m_bindings[n].dir == direction) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-04 23:21:41
|
Revision: 3352 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3352&view=rev Author: auria Date: 2009-04-04 23:21:35 +0000 (Sat, 04 Apr 2009) Log Message: ----------- added missing include Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-04 23:15:34 UTC (rev 3351) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-04 23:21:35 UTC (rev 3352) @@ -3,6 +3,7 @@ #include "input/input_device.hpp" #include "race_manager.hpp" #include "modes/world.hpp" +#include "gui/state_manager.hpp" InputDevice::InputDevice() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-26 00:24:18
|
Revision: 3432 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3432&view=rev Author: auria Date: 2009-04-26 00:24:16 +0000 (Sun, 26 Apr 2009) Log Message: ----------- added more debug checks for jpenguin Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:12:55 UTC (rev 3431) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:24:16 UTC (rev 3432) @@ -287,6 +287,8 @@ { std::cout << "For jpenguin (a)\n"; + std::cout << "id=" << id << ", m_prevAxisDirections[id]=" << m_prevAxisDirections[id] << std::endl; + // going to negative from positive if (value < 0 && m_prevAxisDirections[id] == Input::AD_POSITIVE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-26 00:29:26
|
Revision: 3433 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3433&view=rev Author: auria Date: 2009-04-26 00:29:24 +0000 (Sun, 26 Apr 2009) Log Message: ----------- added more debug checks for jpenguin Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:24:16 UTC (rev 3432) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:29:24 UTC (rev 3433) @@ -287,8 +287,12 @@ { std::cout << "For jpenguin (a)\n"; - std::cout << "id=" << id << ", m_prevAxisDirections[id]=" << m_prevAxisDirections[id] << std::endl; + std::cout << "id=" << id << std::endl; + assert(id < m_axis_count); + + std::cout << "m_prevAxisDirections[id]=" << m_prevAxisDirections[id] << std::endl; + // going to negative from positive if (value < 0 && m_prevAxisDirections[id] == Input::AD_POSITIVE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-26 00:32:34
|
Revision: 3434 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3434&view=rev Author: auria Date: 2009-04-26 00:32:33 +0000 (Sun, 26 Apr 2009) Log Message: ----------- possibly a fix this time for the jpenguin bug. It would be a bug related to having >1 gamepads. Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:29:24 UTC (rev 3433) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:32:33 UTC (rev 3434) @@ -283,6 +283,8 @@ // ----------------------------------------------------------------------------- bool GamePadDevice::hasBinding(Input::InputType type, const int id, const int value, const int player, PlayerAction* action /* out */) { + if(m_prevAxisDirections == NULL) return false; // device not open + if(type == Input::IT_STICKMOTION) { std::cout << "For jpenguin (a)\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-04-26 00:37:38
|
Revision: 3435 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3435&view=rev Author: auria Date: 2009-04-26 00:37:38 +0000 (Sun, 26 Apr 2009) Log Message: ----------- fix over previous commit Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:32:33 UTC (rev 3434) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-04-26 00:37:38 UTC (rev 3435) @@ -284,6 +284,7 @@ bool GamePadDevice::hasBinding(Input::InputType type, const int id, const int value, const int player, PlayerAction* action /* out */) { if(m_prevAxisDirections == NULL) return false; // device not open + if(id >= m_axis_count) return false; // this gamepad doesn't even have that many axes if(type == Input::IT_STICKMOTION) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-05-10 03:01:07
|
Revision: 3475 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3475&view=rev Author: auria Date: 2009-05-10 01:45:32 +0000 (Sun, 10 May 2009) Log Message: ----------- Fixed issue with input gamepad buttons Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-05-10 01:14:40 UTC (rev 3474) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-05-10 01:45:32 UTC (rev 3475) @@ -13,7 +13,7 @@ m_bindings[n].type = Input::IT_NONE; m_bindings[n].dir = Input::AD_NEGATIVE; } - + m_player = "default"; } // ----------------------------------------------------------------------------- @@ -22,16 +22,16 @@ if (m_type == DT_KEYBOARD) stream << "<keyboard "; else if (m_type == DT_GAMEPAD) stream << "<gamepad name=\"" << m_name.c_str() << "\" "; else std::cerr << "Warning, unknown input device type, skipping it\n"; - + stream << "owner=\"" << m_player << "\">\n\n"; - + for(int n=0; n<PA_COUNT; n++) { stream << " <action name=\"" << KartActionStrings[n] << "\" id=\"" << m_bindings[n].id << "\" event=\"" << m_bindings[n].type << "\" "; - + if (m_type == DT_GAMEPAD) stream << "direction=\"" << m_bindings[n].dir << "\""; - + stream << "/>\n"; } @@ -45,8 +45,8 @@ const char* name_string = xml->getAttributeValue("name"); if(name_string == NULL) return false; - int binding_id = -1; - + int binding_id = -1; + for(int n=0; n<PA_COUNT; n++) { if(strcmp(name_string,KartActionStrings[n].c_str()) == 0) @@ -60,21 +60,21 @@ std::cerr << "Unknown action type : " << name_string << std::endl; return false; } - + // ---- read id const char* id_string = xml->getAttributeValue("id"); if(id_string == NULL) return false; const int id = atoi(id_string); - + // ---- read event type const char* event_string = xml->getAttributeValue("event"); if(event_string == NULL) return false; const int event_id = atoi(event_string); - + m_bindings[binding_id].id = id; m_bindings[binding_id].type = (Input::InputType)event_id; - - + + // ---- read axis direction const char* dir_string = xml->getAttributeValue("direction"); if(dir_string != NULL) @@ -82,7 +82,7 @@ const int dir = atoi(dir_string); m_bindings[binding_id].dir = (Input::AxisDirection)dir; } - + return true; } @@ -101,7 +101,7 @@ KeyboardDevice::KeyboardDevice(irr::io::IrrXMLReader* xml) { m_type = DT_KEYBOARD; - + const char* owner_string = xml->getAttributeValue("owner"); if(owner_string == NULL) m_player = "default"; else m_player = owner_string; @@ -141,7 +141,7 @@ return true; } }// next device - + return false; } // ----------------------------------------------------------------------------- @@ -161,11 +161,11 @@ m_type = DT_GAMEPAD; m_prevAxisDirections = NULL; m_deadzone = DEADZONE_JOYSTICK; - + const char* owner_string = xml->getAttributeValue("owner"); if(owner_string == NULL) m_player = "default"; else m_player = owner_string; - + const char* name_string = xml->getAttributeValue("name"); if(name_string == NULL) { @@ -186,7 +186,7 @@ open(irrIndex, name, axis_count); m_name = name; - + loadDefaults(); } // GamePadDevice // ----------------------------------------------------------------------------- @@ -194,12 +194,12 @@ { m_axis_count = axis_count; m_prevAxisDirections = new Input::AxisDirection[axis_count]; - + std::cout << "(i) This gamepad has " << axis_count << " axes\n"; - + for (int i = 0; i < axis_count; i++) m_prevAxisDirections[i] = Input::AD_NEUTRAL; - + m_index = irrIndex; } // ----------------------------------------------------------------------------- @@ -208,28 +208,28 @@ // buttons m_bindings[PA_FIRE].type = Input::IT_STICKBUTTON; m_bindings[PA_FIRE].id = 0; - + m_bindings[PA_NITRO].type = Input::IT_STICKBUTTON; - m_bindings[PA_NITRO].id = 1; - + m_bindings[PA_NITRO].id = 1; + m_bindings[PA_DRIFT].type = Input::IT_STICKBUTTON; - m_bindings[PA_DRIFT].id = 2; + m_bindings[PA_DRIFT].id = 2; m_bindings[PA_RESCUE].type = Input::IT_STICKBUTTON; - m_bindings[PA_RESCUE].id = 3; - + m_bindings[PA_RESCUE].id = 3; + m_bindings[PA_LOOK_BACK].type = Input::IT_STICKBUTTON; - m_bindings[PA_LOOK_BACK].id = 4; - + m_bindings[PA_LOOK_BACK].id = 4; + // axes m_bindings[PA_ACCEL].type = Input::IT_STICKMOTION; m_bindings[PA_ACCEL].id = 1; m_bindings[PA_ACCEL].dir = Input::AD_NEGATIVE; - + m_bindings[PA_BRAKE].type = Input::IT_STICKMOTION; m_bindings[PA_BRAKE].id = 1; m_bindings[PA_BRAKE].dir = Input::AD_POSITIVE; - + m_bindings[PA_LEFT].type = Input::IT_STICKMOTION; m_bindings[PA_LEFT].id = 0; m_bindings[PA_LEFT].dir = Input::AD_NEGATIVE; @@ -237,17 +237,17 @@ m_bindings[PA_RIGHT].type = Input::IT_STICKMOTION; m_bindings[PA_RIGHT].id = 0; m_bindings[PA_RIGHT].dir = Input::AD_POSITIVE; - - + + /* TODO - mappings for clear/enter/leave ? - + set(GA_CLEAR_MAPPING, Input(Input::IT_STICKBUTTON, 0, 2)); - + set(GA_ENTER, Input(Input::IT_STICKBUTTON, 0, 0), - + set(GA_LEAVE, Input(Input::IT_STICKBUTTON, 0, 1), */ @@ -256,7 +256,7 @@ void GamePadDevice::resetAxisDirection(const int axis, Input::AxisDirection direction, const int player) { if(!StateManager::isGameState()) return; // ignore this while in menus - + for(int n=0; n<PA_COUNT; n++) { if(m_bindings[n].id == axis && m_bindings[n].dir == direction) @@ -270,16 +270,17 @@ bool GamePadDevice::hasBinding(Input::InputType type, const int id, const int value, const int player, PlayerAction* action /* out */) { if(m_prevAxisDirections == NULL) return false; // device not open - if(id >= m_axis_count) return false; // this gamepad doesn't even have that many axes - + if(type == Input::IT_STICKMOTION) { + if(id >= m_axis_count) return false; // this gamepad doesn't even have that many axes + // going to negative from positive if (value < 0 && m_prevAxisDirections[id] == Input::AD_POSITIVE) { // set positive id to 0 resetAxisDirection(id, Input::AD_POSITIVE, player); - + } // going to positive from negative else if (value > 0 && m_prevAxisDirections[id] == Input::AD_NEGATIVE) @@ -287,10 +288,10 @@ // set negative id to 0 resetAxisDirection(id, Input::AD_NEGATIVE, player); } - + if(value > 0) m_prevAxisDirections[id] = Input::AD_POSITIVE; else if(value < 0) m_prevAxisDirections[id] = Input::AD_NEGATIVE; - + // check if within deadzone if(value > -m_deadzone && value < m_deadzone) { @@ -301,7 +302,7 @@ // state. This allows us to regard two directions of an id // as completely independent input variants (as if they where // two buttons). - + if(m_prevAxisDirections[id] == Input::AD_NEGATIVE) { // set negative id to 0 @@ -313,8 +314,8 @@ resetAxisDirection(id, Input::AD_POSITIVE, player); } m_prevAxisDirections[id] = Input::AD_NEUTRAL; - - return false; + + return false; } // find corresponding action and return it @@ -334,7 +335,7 @@ } } }// next device - + } else if(type == Input::IT_STICKBUTTON) { @@ -348,7 +349,7 @@ } }// next device } - + return false; } // ----------------------------------------------------------------------------- @@ -357,6 +358,6 @@ GamePadDevice::~GamePadDevice() { delete[] m_prevAxisDirections; - + // FIXME - any need to close devices? } // ~GamePadDevice This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <au...@us...> - 2009-05-30 20:49:15
|
Revision: 3558 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3558&view=rev Author: auria Date: 2009-05-30 20:48:25 +0000 (Sat, 30 May 2009) Log Message: ----------- default value for 'rescue' is now 'backspace' rather than 'escape' since escape has a special meaning Modified Paths: -------------- main/branches/irrlicht/src/input/input_device.cpp Modified: main/branches/irrlicht/src/input/input_device.cpp =================================================================== --- main/branches/irrlicht/src/input/input_device.cpp 2009-05-30 20:47:03 UTC (rev 3557) +++ main/branches/irrlicht/src/input/input_device.cpp 2009-05-30 20:48:25 UTC (rev 3558) @@ -120,7 +120,7 @@ m_bindings[PA_LEFT].id = KEY_LEFT; m_bindings[PA_RIGHT].id = KEY_RIGHT; m_bindings[PA_DRIFT].id = KEY_KEY_V; - m_bindings[PA_RESCUE].id = KEY_ESCAPE; + m_bindings[PA_RESCUE].id = KEY_BACK; m_bindings[PA_FIRE].id = KEY_SPACE; m_bindings[PA_LOOK_BACK].id = KEY_KEY_B ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |