void display_hud_on_external_view (void) { if (get_gunship_entity ()) { switch (get_global_gunship_type ()) { //////////////////////////////////////// case GUNSHIP_TYPE_APACHE: //////////////////////////////////////// { draw_apache_hud (); break; } //////////////////////////////////////// case GUNSHIP_TYPE_HAVOC: //////////////////////////////////////// { draw_external_havoc_hud (); draw_havoc_hms (); break; } //////////////////////////////////////// case GUNSHIP_TYPE_COMANCHE: //////////////////////////////////////// { draw_comanche_hud (); break; } //////////////////////////////////////// case GUNSHIP_TYPE_HOKUM: //////////////////////////////////////// { draw_external_hokum_hud (); draw_hokum_hms (); break; } } } }
void draw_havoc_cockpit (cockpit_panels panel) { //////////////////////////////////////// // // select cockpit graphics wrt time of day // //////////////////////////////////////// switch (get_local_entity_int_value (get_session_entity (), INT_TYPE_DAY_SEGMENT_TYPE)) { case DAY_SEGMENT_TYPE_DAWN: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_DAY: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL1_BASE; break; } case DAY_SEGMENT_TYPE_DUSK: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_NIGHT: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL3_BASE; break; } } #if DEMO_VERSION base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL1_BASE; #endif set_havoc_instrument_colours (); //////////////////////////////////////// // // draw overlaid instruments // //////////////////////////////////////// if (!get_global_draw_cockpit_graphics ()) { if (get_global_draw_overlaid_instruments ()) { if (panel != COCKPIT_PANEL_SPECIAL_HAVOC_TV) { draw_overlaid_havoc_mfd (68.0, 412.0, 128.0); draw_overlaid_threat_warning_display (int_full_screen_width - 64, int_full_screen_height - 84); } } } //////////////////////////////////////// // // draw cockpits // //////////////////////////////////////// switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U40_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U40_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U20_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L30_RLE), ix_640_480, iy_640_480); draw_havoc_g_meter (panel); draw_havoc_radar_altimeter (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_havoc_master_caution_lamp (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_AHD_RLE), ix_640_480, iy_640_480); draw_havoc_g_meter (panel); draw_havoc_radar_altimeter (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_havoc_threat_warning_display (panel); draw_havoc_master_caution_lamp (panel); draw_havoc_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit (VIRTUAL_COCKPIT_HUD_GLASS); draw_havoc_hud_on_cockpit (get_global_hud_enlarge ()); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R30_RLE), ix_640_480, iy_640_480); draw_havoc_status_panel_lamps (panel); draw_havoc_threat_warning_display (panel); draw_havoc_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L60_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_havoc_weapons_management_panel_lamps (panel); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_HSI | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L30_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_havoc_airspeed_indicator (panel); draw_havoc_main_rotor_rpm_indicator (panel); draw_havoc_g_meter (panel); draw_havoc_vertical_speed_indicator (panel); draw_havoc_clock (panel); draw_havoc_radar_altimeter (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_havoc_master_caution_lamp (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_CRT_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_HSI | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_AHD_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_havoc_airspeed_indicator (panel); draw_havoc_main_rotor_rpm_indicator (panel); draw_havoc_g_meter (panel); draw_havoc_engine_torque_indicator (panel); draw_havoc_engine_temperature_indicator (panel); draw_havoc_engine_rpm_indicator (panel); draw_havoc_engine_temperature_and_rpm_indicator_ticks (panel); draw_havoc_vertical_speed_indicator (panel); draw_havoc_clock (panel); draw_havoc_radar_altimeter (panel); draw_havoc_fuel_gauge (panel); draw_havoc_fixed_cockpit_hsi_waypoint_distance_digits (panel); draw_havoc_fixed_cockpit_hsi_waypoint_identifier (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_havoc_status_panel_lamps (panel); draw_havoc_threat_warning_display (panel); draw_havoc_master_caution_lamp (panel); draw_havoc_warning_panel_lamps (panel); draw_havoc_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); draw_havoc_mfd_on_cockpit (fx_640_480 + 354.0, fy_640_480 + 337.0, FALSE, FALSE); draw_havoc_ekran_display_on_cockpit (fx_640_480 + 459.0, fy_640_480 + 310.0); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_MASK_D20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R30_RLE), ix_640_480, iy_640_480); draw_havoc_engine_torque_indicator (panel); draw_havoc_engine_temperature_indicator (panel); draw_havoc_engine_rpm_indicator (panel); draw_havoc_engine_temperature_and_rpm_indicator_ticks (panel); draw_havoc_fuel_gauge (panel); draw_havoc_status_panel_lamps (panel); draw_havoc_threat_warning_display (panel); draw_havoc_warning_panel_lamps (panel); draw_havoc_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_CRT_DISPLAY | VIRTUAL_COCKPIT_EKRAN_DISPLAY ); } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R60_RLE), ix_640_480, iy_640_480); draw_havoc_status_panel_lamps (panel); draw_havoc_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_havoc_hud_on_cockpit (TRUE); } draw_havoc_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_HAVOC_TV: //////////////////////////////////////// { if (lock_screen (active_screen)) { blit_rgb_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_RGB), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_havoc_mfd_on_cockpit (fx_640_480 + 321.0, fy_640_480 + 229.0, TRUE, FALSE); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_MASK_CRT_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_HAVOC_HUD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_havoc_external_virtual_cockpit ( VIRTUAL_COCKPIT_LARGE_HUD | VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_HUD) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_HUD_RLE), ix_640_480, iy_640_480); draw_havoc_threat_warning_display (panel); draw_havoc_master_caution_lamp (panel); draw_havoc_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_havoc_internal_virtual_cockpit ( VIRTUAL_COCKPIT_LARGE_HUD | VIRTUAL_COCKPIT_HUD_GLASS ); } draw_havoc_hud_on_cockpit (TRUE); draw_havoc_hms (); break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal ("Invalid cockpit panel = %d", panel); break; } } }