From 942cf9e51da37b9c05311d3099b3d331307550d3 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 31 Jul 2002 17:32:16 +0000 Subject: [PATCH] Accept multiple names for the same joystick. --- src/Input/input.cxx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Input/input.cxx b/src/Input/input.cxx index b3c57880c..93cad1dba 100644 --- a/src/Input/input.cxx +++ b/src/Input/input.cxx @@ -483,19 +483,26 @@ FGInput::_init_joystick () continue; } else { #ifdef FG_PLIB_JOYSTICK_GETNAME + bool found_js = false; const char * name = js->getName(); SG_LOG(SG_INPUT, SG_INFO, "Looking for bindings for joystick \"" << name << '"'); vector nodes = js_nodes->getChildren("js-named"); for (unsigned int i = 0; i < nodes.size(); i++) { SGPropertyNode_ptr node = nodes[i]; - SG_LOG(SG_INPUT, SG_INFO, - " Trying \"" << node->getStringValue("name") << '"'); - if (!strcmp(node->getStringValue("name"), name)) { - SG_LOG(SG_INPUT, SG_INFO, " Found bindings"); - js_node = node; - break; - } + vector name_nodes = node->getChildren("name"); + for (unsigned int j = 0; j < name_nodes.size(); j++) { + const char * js_name = name_nodes[j]->getStringValue(); + SG_LOG(SG_INPUT, SG_INFO, " Trying \"" << js_name << '"'); + if (!strcmp(js_name, name)) { + SG_LOG(SG_INPUT, SG_INFO, " Found bindings"); + js_node = node; + found_js = true; + break; + } + } + if (found_js) + break; } #endif }