// step through the port config streams (from fgOPTIONS) and setup
// serial port channels for each
void fgIOInit() {
+ // FG_LOG( FG_IO, FG_INFO, "I/O Channel initialization, " <<
+ // globals->get_channel_options_list()->size() << " requests." );
+
FGProtocol *p;
- string_list channel_options_list =
- globals->get_channel_options_list();
+ string_list *channel_options_list = globals->get_channel_options_list();
// we could almost do this in a single step except pushing a valid
// port onto the port list copies the structure and destroys the
// parse the configuration strings and store the results in the
// appropriate FGIOChannel structures
- for ( int i = 0; i < (int)channel_options_list.size(); ++i ) {
- p = parse_port_config( channel_options_list[i] );
+ for ( int i = 0; i < (int)channel_options_list->size(); ++i ) {
+ p = parse_port_config( (*channel_options_list)[i] );
if ( p != NULL ) {
p->open();
global_io_list.push_back( p );
SGPropertyNode *initial_state;
// list of serial port-like configurations
- string_list channel_options_list;
+ string_list *channel_options_list;
public:
inline SGPropertyNode *get_props () { return props; }
inline void set_props( SGPropertyNode *n ) { props = n; }
- inline string_list get_channel_options_list () {
- return channel_options_list;
+ inline string_list *get_channel_options_list () {
+ return channel_options_list;
+ }
+ inline void set_channel_options_list( string_list *l ) {
+ channel_options_list = l;
}
#endif
thesky->modify_vis( cur_fdm_state->get_Altitude() * FEET_TO_METER,
-
( global_multi_loop *
fgGetInt("/sim/speed-up") ) /
(double)fgGetInt("/sim/model-hz") );
// position tile nodes and update range selectors
global_tile_mgr.prep_ssg_nodes();
- // draw the sky backdrop
- thesky->preDraw();
+ if ( fgGetBool("/sim/rendering/skyblend") ) {
+ // draw the sky backdrop
+ thesky->preDraw();
+ }
// draw the ssg scene
glEnable( GL_DEPTH_TEST );
ssgCullAndDraw( lighting );
- // draw the sky cloud layers
- thesky->postDraw( cur_fdm_state->get_Altitude() * FEET_TO_METER );
+ if ( fgGetBool("/sim/rendering/skyblend") ) {
+ // draw the sky cloud layers
+ thesky->postDraw( cur_fdm_state->get_Altitude() * FEET_TO_METER );
+ }
// display HUD && Panel
glDisable( GL_FOG );
}
// cout << "multi_loop = " << multi_loop << endl;
- for ( i = 0; i < multi_loop; ++i ) {
+ for ( i = 0; i < multi_loop * fgGetInt("/sim/speed-up"); ++i ) {
// run Autopilot system
current_autopilot->run();
- // update autopiot
- cur_fdm_state->update( 1 * fgGetInt("/sim/speed-up") );
+ // update autopilot
+ cur_fdm_state->update( 1 );
}
FGSteam::update( multi_loop * fgGetInt("/sim/speed-up") );
} else {
FGViewerLookAt *chase = new FGViewerLookAt;
globals->get_viewmgr()->add_view( chase );
+ string_list *col = new string_list;
+ globals->set_channel_options_list( col );
+
// set current view to 0 (first) which is our main pilot view
globals->set_current_view( globals->get_viewmgr()->get_view( 0 ) );
parse_channel( const string& type, const string& channel_str ) {
// cout << "Channel string = " << channel_str << endl;
- globals->get_channel_options_list().push_back( type + "," + channel_str );
+ globals->get_channel_options_list()->push_back( type + "," + channel_str );
return true;
}