1
0
Fork 0

throw an exception if not even a default joystick could be found;

This can only happen if $FG_ROOT is corrupted or some developer has
broken the default js config. Better not keep that under the rug.
This commit is contained in:
mfranz 2005-06-11 15:26:32 +00:00
parent 325d545132
commit 4a1eadbf35

View file

@ -438,7 +438,7 @@ FGInput::_init_joystick ()
int js_named_index = 1000; int js_named_index = 1000;
_scan_joystick_dir(&path, js_nodes, &js_named_index); _scan_joystick_dir(&path, js_nodes, &js_named_index);
// build name->node map for each <name> (reverse order) // build name->node map with each <name> (reverse order)
map<string, SGPropertyNode_ptr> jsmap; map<string, SGPropertyNode_ptr> jsmap;
vector<SGPropertyNode_ptr> js_named = js_nodes->getChildren("js-named"); vector<SGPropertyNode_ptr> js_named = js_nodes->getChildren("js-named");
@ -469,20 +469,16 @@ FGInput::_init_joystick ()
SGPropertyNode_ptr named; SGPropertyNode_ptr named;
if ((named = jsmap[name])) { if ((named = jsmap[name])) {
string source = named->getStringValue("source", ""); string source = named->getStringValue("source", "user defined");
if (source.empty())
SG_LOG(SG_INPUT, SG_INFO, "... found joystick (user defined)");
else
SG_LOG(SG_INPUT, SG_INFO, "... found joystick: \"" << source << '"'); SG_LOG(SG_INPUT, SG_INFO, "... found joystick: \"" << source << '"');
} else if ((named = jsmap["default"])) { } else if ((named = jsmap["default"])) {
string source = named->getStringValue("source", ""); string source = named->getStringValue("source", "user defined");
SG_LOG(SG_INPUT, SG_INFO, "No config found for joystick \"" << name SG_LOG(SG_INPUT, SG_INFO, "No config found for joystick \"" << name
<< "\"\nUsing default: \"" << source << '"'); << "\"\nUsing default: \"" << source << '"');
} else { } else {
SG_LOG(SG_INPUT, SG_ALERT, "No default joystick found! (<name>default</name>)"); throw sg_throwable(string("No default joystick found! (<name>default</name>)"));
continue;
} }
js_node = js_nodes->getChild("js", i, true); js_node = js_nodes->getChild("js", i, true);