int fgHUDInit2( fgAIRCRAFT * /* current_aircraft */ )
{
- instr_item *HIptr;
- int index;
-
- fgPrintf( FG_COCKPIT, FG_INFO, "Initializing current aircraft HUD\n" );
-
- HUD_deque.erase( HUD_deque.begin(), HUD_deque.end()); // empty the HUD deque
-
-// hud->code = 1;
-// hud->status = 0;
-
- // For now lets just hardcode the hud here.
- // In the future, hud information has to come from the same place
- // aircraft information came from.
-
-// fgHUDSetTimeMode( hud, NIGHT );
-// fgHUDSetBrightness( hud, BRT_LIGHT );
-
-// index = 0;
- index = 19;
-
- do {
- switch ( index ) {
- case 0: // TBI
- HIptr = (instr_item *) new fgTBI_instr( 270, 100, 60, 10 );
- break;
-
- case 1: // Artificial Horizon
- HIptr = (instr_item *) new HudLadder( 240, 195, 120, 180 );
- break;
-
- case 2: // KIAS
- HIptr = (instr_item *) new hud_card( 130,
- 170,
- 28,
- 200,
- get_speed,
- HUDS_LEFT | HUDS_VERT,
- 200.0, 0.0,
- 1.0,
- 10, 5,
- 0,
- 0,
- 50.0,
- true);
-
- break;
-
- case 3: // Radio Altimeter
- HIptr = (instr_item *) new hud_card( 420,
- 195,
- 25,
- 150,
- get_agl,
- HUDS_LEFT | HUDS_VERT,
- 1000, 0,
- 1.0,
- 25, 5,
- 0,
- 0,
- 200.0,
- true);
- break;
-
- case 4: // GYRO COMPASS
- HIptr = (instr_item *) new hud_card( 200,
- 375,
- 200,
- 28,
- get_heading,
- HUDS_TOP,
- 360, 0,
- 1.0,
- 5, 1,
- 360,
- 0,
- 25,
- true);
- break;
-
- case 5: // AMSL
- HIptr = (instr_item *) new hud_card( 460,
- 170,
- 35,
- 200,
- get_altitude,
- HUDS_RIGHT | HUDS_VERT,
- 15000, 0,
- 1.0,
- 100, 25,
- 0,
- 0,
- 250,
- true);
- break;
-
- case 6:
- HIptr = (instr_item *) new guage_instr( 250, // x
- 350, // y
- 100, // width
- 20, // height
- get_aileronval, // data source
- HUDS_BOTTOM | HUDS_NOTEXT,
- 100.0,
- +1.0,
- -1.0);
- break;
-
- case 7:
- HIptr = (instr_item *) new guage_instr( 170, // x
- 225, // y
- 20, // width
- 100, // height
- get_elevatorval, // data source
- HUDS_RIGHT | HUDS_VERT | HUDS_NOTEXT,
- -100.0, // Scale data
- +1.0, // Data Range
- -1.0);
- break;
-
- case 8:
- HIptr = (instr_item *) new guage_instr( 250, // x
- 200, // y
- 100, // width
- 20, // height
- get_rudderval, // data source
- HUDS_TOP | HUDS_NOTEXT,
- 100.0,
- +1.0,
- -1.0);
- break;
-
- case 9:
- HIptr = (instr_item *) new guage_instr( 100, // x
- 190,
- 20,
- 160, // height
- get_throttleval, // data source
- HUDS_VERT | HUDS_RIGHT | HUDS_NOTEXT,
- 100.0,
- 1.0,
- 0.0);
- break;
-
- case 10: // Digital KIAS
- HIptr = (instr_item *) new instr_label ( 110,
- 150,
- 40,
- 30,
- get_speed,
- "%5.0f",
- NULL,
- " Kts",
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 11: // Digital Rate of Climb
- HIptr = (instr_item *) new instr_label ( 110,
- 135,
- 40,
- 10,
- get_altitude,
- "Climb %5.0f",
- NULL,
- " m",
- 1.0,
- HUDS_TOP,
- LEFT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 12: // Roll indication diagnostic
- HIptr = (instr_item *) new instr_label ( 110,
- 120,
- 40,
- 10,
- get_roll,
- "%5.2f",
- " Roll",
- " Deg",
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 13: // Angle of attack diagnostic
- HIptr = (instr_item *) new instr_label ( 440,
- 150,
- 60,
- 10,
- get_aoa,
- " %5.2f",
- "AOA",
- " Deg",
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 14:
- HIptr = (instr_item *) new instr_label ( 440,
- 135,
- 60,
- 10,
- get_heading,
- " %5.1f",
- "Heading ",
- " Deg",
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 15:
- HIptr = (instr_item *) new instr_label ( 440,
- 120,
- 60,
- 10,
- get_sideslip,
- "%5.2f",
- "Sideslip ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 16:
- HIptr = (instr_item *) new instr_label( 440,
- 100,
- 60,
- 10,
- get_throttleval,
- "%5.2f",
- "Throttle ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 17:
- HIptr = (instr_item *) new instr_label( 440,
- 85,
- 60,
- 10,
- get_elevatorval,
- "%5.2f",
- "Elevator ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 18:
- HIptr = (instr_item *) new instr_label( 440,
- 60,
- 60,
- 10,
- get_aileronval,
- "%5.2f",
- "Aileron ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
-
- case 19:
- HIptr = (instr_item *) new instr_label( 10,
- 10,
- 60,
- 10,
- get_frame_rate,
- "%.1f",
- "Frame rate = ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- case 20:
- switch( current_options.get_tris_or_culled() ) {
- case 0:
- HIptr = (instr_item *) new instr_label( 10,
- 25,
- 90,
- 10,
- get_vfc_tris_drawn,
- "%.0f",
- "Tris Rendered = ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
- case 1:
- HIptr = (instr_item *) new instr_label( 10,
- 25,
- 90,
- 10,
- get_vfc_ratio,
- "%.2f",
- "VFC Ratio = ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
- }
- break;
-
- case 21:
- HIptr = (instr_item *) new instr_label( 10,
- 40,
- 90,
- 10,
- get_fov,
- "%.1f",
- "FOV = ",
- NULL,
- 1.0,
- HUDS_TOP,
- RIGHT_JUST,
- SMALL,
- 0,
- TRUE );
- break;
-
- default:
- HIptr = 0;;
- }
- if( HIptr ) { // Anything to install?
- HUD_deque.insert( HUD_deque.begin(), HIptr);
- }
- index++;
- }
- while( HIptr );
-
- return 0; // For now. Later we may use this for an error code.
+ instr_item *HIptr;
+ int index;
+
+ fgPrintf( FG_COCKPIT, FG_INFO, "Initializing current aircraft HUD\n" );
+
+ HUD_deque.erase( HUD_deque.begin(), HUD_deque.end());
+
+ // hud->code = 1;
+ // hud->status = 0;
+
+ // For now lets just hardcode the hud here.
+ // In the future, hud information has to come from the same place
+ // aircraft information came from.
+
+ // fgHUDSetTimeMode( hud, NIGHT );
+ // fgHUDSetBrightness( hud, BRT_LIGHT );
+
+ // index = 0;
+ index = 19;
+
+ instr_item* p;
+
+ p = new instr_label( 10, 10, 60, 10,
+ get_frame_rate,
+ "%.1f",
+ "Frame rate = ",
+ NULL,
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ if ( current_options.get_tris_or_culled() == 0 )
+ p = new instr_label( 10, 25, 90, 10,
+ get_vfc_tris_drawn,
+ "%.0f",
+ "Tris Rendered = ",
+ NULL,
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ else
+ p = new instr_label( 10, 25, 90, 10,
+ get_vfc_ratio,
+ "%.2f",
+ "VFC Ratio = ",
+ NULL,
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ p = new instr_label( 10, 40, 90, 10,
+ get_fov,
+ "%.1f",
+ "FOV = ",
+ NULL,
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ const int x_pos = 480;
+ p = new instr_label( x_pos, 40, 40, 30,
+ get_speed,
+ "%5.0f",
+ "Airspeed ",
+ " Kts",
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ p = new instr_label( x_pos, 25, 40, 10,
+ get_altitude,
+ "%5.0f",
+ "Altitude ",
+ " m",
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ p = new instr_label( x_pos, 10, 60, 10,
+ get_heading,
+ "%5.1f",
+ "Heading ",
+ " Deg",
+ 1.0,
+ HUDS_TOP,
+ RIGHT_JUST,
+ SMALL,
+ 0,
+ TRUE );
+ HUD_deque.push_front( p );
+
+ return 0; // For now. Later we may use this for an error code.
}
int global_day_night_switch = DAY;
glLineWidth(1);
- deque < instr_item * > :: iterator current;
- deque < instr_item * > :: iterator last;
+ deque < instr_item * > :: iterator current = HUD_deque.begin();
+ deque < instr_item * > :: iterator last = HUD_deque.end();
- current = HUD_deque.begin();
- last = HUD_deque.end();
- while ( current != last ) {
+ for ( ; current != last; ++current ) {
pHUDInstr = *current;
- current++;
// for( i = hud_displays; i; --i) { // Draw everything
// if( HUD_deque.at(i)->enabled()) {
}
// $Log$
+// Revision 1.23 1998/10/16 00:53:00 curt
+// Mods to display a bit more info when mini-hud is active.
+//
// Revision 1.22 1998/09/29 14:56:31 curt
// c++-ified comments.
//