40 readProperties(filename, &root);
41 }
catch (
const sg_exception&) {
42 SG_LOG(SG_GENERAL, SG_ALERT,
"Error reading AI flight plan: " << filename);
47 SGPropertyNode* node = root.getNode(
"SIDS");
50 for (
int i = 0;
i < node->nChildren();
i++) {
52 SGPropertyNode* fpl_node = node->getChild(
i);
53 std::string
name = fpl_node->getStringValue(
"name",
"END");
54 std::string runway = fpl_node->getStringValue(
"runway",
"27");
58 SGPropertyNode* wpts_node = fpl_node->getNode(
"wpts");
60 for (
int j = 0; j < wpts_node->nChildren(); j++) {
62 SGPropertyNode* wpt_node = wpts_node->getChild(j);
65 wpt->
setName(wpt_node->getStringValue(
"name",
"END"));
66 wpt->
setLatitude(wpt_node->getDoubleValue(
"lat", 0));
68 wpt->
setAltitude(wpt_node->getDoubleValue(
"alt", 0));
69 wpt->
setSpeed(wpt_node->getDoubleValue(
"ktas", 0));
70 wpt->
setCrossat(wpt_node->getDoubleValue(
"crossat", -10000));
71 wpt->
setGear_down(wpt_node->getBoolValue(
"gear-down",
false));
72 wpt->
setFlaps(wpt_node->getBoolValue(
"flaps-down",
false) ? 0.5 : 0.0);
73 wpt->
setOn_ground(wpt_node->getBoolValue(
"on-ground",
false));
74 wpt->
setTime_sec(wpt_node->getDoubleValue(
"time-sec", 0));
75 wpt->
setTime(wpt_node->getStringValue(
"time",
""));
85 data[runway].push_back(fp);