1
0
Fork 0

Add the ability to specify an initial state (on/off) for a connector switch.

If nothing is specifed the switch defaults to on, but this is a problem for
the starter switch.
This commit is contained in:
curt 2003-02-03 22:15:36 +00:00
parent fc095c7061
commit 9e35d33657
2 changed files with 27 additions and 0 deletions

View file

@ -180,9 +180,33 @@ FGElectricalConnector::FGElectricalConnector ( SGPropertyNode *node,
add_switch( fgGetNode( child->getStringValue(), true ) );
}
}
// do a 2nd pass to pick up starting switch value if specified
for ( i = 0; i < node->nChildren(); ++i ) {
SGPropertyNode *child = node->getChild(i);
string cname = child->getName();
string cval = child->getStringValue();
// cout << " " << cname << " = " << cval << endl;
if ( cname == "initial-state" ) {
if ( cval == "off" ) {
set_switches( false );
} else {
set_switches( true );
}
}
}
}
// set all switches to the specified state
void FGElectricalConnector::set_switches( bool state ) {
cout << "setting switch state to " << state << endl;
for ( unsigned int i = 0; i < switches.size(); ++i ) {
switches[i]->setBoolValue( state );
}
}
// return true if all switches are true, false otherwise. A connector
// could have multiple switches, but they all need to be true(closed)
// for current to get through.

View file

@ -170,6 +170,9 @@ public:
switches.push_back( node );
}
// set all switches to the specified state
void set_switches( bool state );
bool get_state();
};