void notify_show_realism_page (void) { set_ui_object_text (co_pilot_target_option_button, option_cpg_text [get_global_cpg_assist_type ()]); #if DEBUG_MODULE debug_filtered_log ("cpg_assist: %d text: %s",get_global_cpg_assist_type (), option_cpg_text [get_global_cpg_assist_type ()]); #endif set_ui_object_text (co_pilot_ecm_option_button, option_boolean_text [get_global_auto_counter_measures ()]); #if DEBUG_MODULE debug_filtered_log ("acm: %d text: %s", get_global_auto_counter_measures (), option_boolean_text [get_global_auto_counter_measures ()]); #endif set_ui_object_text (avionics_option_button, option_avionics_text [get_global_simple_avionics ()]); #if DEBUG_MODULE debug_filtered_log ("avionics: %d text: %s", get_global_simple_avionics (), option_avionics_text [get_global_simple_avionics ()]); #endif set_ui_object_text (difficulty_option_button, option_difficulty_text [get_global_difficulty_level () - 1]); #if DEBUG_MODULE debug_filtered_log ("diff: %d text: %s", get_global_difficulty_level (), option_difficulty_text [get_global_difficulty_level () - 1]); #endif set_ui_object_text (cpg_report_targets_button, option_cpg_report_targets_text[global_co_pilot_scans_for_targets]); display_options_page (OPTIONS_PAGE_REALISM); #if DEBUG_MODULE debug_filtered_log("Inside show_realism_page"); #endif }
void notify_avionics_option_button ( ui_object *obj, void *arg ) { set_global_simple_avionics (!get_global_simple_avionics ()); set_ui_object_text (obj, option_avionics_text [get_global_simple_avionics ()]); #if DEBUG_MODULE debug_filtered_log ("avionics: %d text: %s", get_global_simple_avionics (), option_avionics_text [get_global_simple_avionics ()]); #endif // don't leave text selected set_toggle_button_off (obj); }
static void select_target_acquisition_system_air_radar_event (event *ev) { if (!get_global_simple_avionics ()) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_AIR_RADAR); } }
static void select_target_acquisition_system_hms_event (event *ev) { if (!get_global_simple_avionics ()) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_HMS); } }
void initialise_viper_hms (void) { if (get_global_simple_avionics ()) { hms_max_visual_range = 5000.0; hms_max_field_of_view = rad (45.0); } else { hms_max_visual_range = 2500.0; hms_max_field_of_view = rad (45.0); } };
void update_viper_hms (void) { if (get_global_simple_avionics ()) { hms_max_visual_range = 5000.0; hms_max_field_of_view = rad (45.0); } else { hms_max_visual_range = 2500.0; hms_max_field_of_view = rad (45.0); } //////////////////////////////////////// while (single_target_acquisition_system_select_next_target_key) { select_next_hms_target (); single_target_acquisition_system_select_next_target_key--; } //////////////////////////////////////// while (single_target_acquisition_system_select_previous_target_key) { select_previous_hms_target (); single_target_acquisition_system_select_previous_target_key--; } // Jabberwock 031107 Designated targets while (single_target_acquisition_system_select_next_designated_key) { select_next_designated_hms_target (); single_target_acquisition_system_select_next_designated_key--; } //////////////////////////////////////// while (single_target_acquisition_system_select_previous_designated_key) { select_previous_designated_hms_target (); single_target_acquisition_system_select_previous_designated_key--; } // Jabberwock 031107 ends }
static void damage_systems (havoc_damage_flags damage) { entity *en; en = get_gunship_entity (); //////////////////////////////////////// if (damage.radar) { if (!havoc_damage.radar) { activate_havoc_master_caution_lamp (); havoc_damage.radar = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("RADAR", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_FAILURE); if ( (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_GROUND_RADAR) || (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_AIR_RADAR) ) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.flir) { if (!havoc_damage.flir) { activate_havoc_master_caution_lamp (); havoc_damage.flir = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("FLIR", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_FLIR_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_FLIR) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.llltv) { if (!havoc_damage.llltv) { activate_havoc_master_caution_lamp (); havoc_damage.llltv = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("LLLTV", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_LLLTV_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_LLLTV) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.laser_range_finder) { if (!havoc_damage.laser_range_finder) { activate_havoc_master_caution_lamp (); havoc_damage.laser_range_finder = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("LASER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_LASER_RANGE_FINDER_FAILURE); } } //////////////////////////////////////// if (damage.radar_jammer) { if (!havoc_damage.radar_jammer) { activate_havoc_master_caution_lamp (); havoc_damage.radar_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("RD JAMMER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.infra_red_jammer) { if (!havoc_damage.infra_red_jammer) { activate_havoc_master_caution_lamp (); havoc_damage.infra_red_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("IR JAMMER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_IR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.navigation_computer) { if (!havoc_damage.navigation_computer) { activate_havoc_master_caution_lamp (); havoc_damage.navigation_computer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("NAV COMP", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_NAV_COMPUTER_FAILURE); } } //////////////////////////////////////// if (damage.communications) { if (!havoc_damage.communications) { activate_havoc_master_caution_lamp (); havoc_damage.communications = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("COMMS", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_COMMS_FAILURE); } } //////////////////////////////////////// if (damage.radar_warning_system) { if (!havoc_damage.radar_warning_system) { activate_havoc_master_caution_lamp (); havoc_damage.radar_warning_system = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("RWS", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_WARNING_FAILURE); } } //////////////////////////////////////// if (!get_global_simple_avionics ()) { if (damage.head_up_display) { if (!havoc_damage.head_up_display) { activate_havoc_master_caution_lamp (); havoc_damage.head_up_display = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HUD", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HUD_FAILURE); } } } //////////////////////////////////////// if (!get_global_simple_avionics ()) { if (damage.helmet_mounted_sight) { if (!havoc_damage.helmet_mounted_sight) { activate_havoc_master_caution_lamp (); havoc_damage.helmet_mounted_sight = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HMS", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HELMET_MOUNTED_SIGHT_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_HMS) { select_havoc_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } } //////////////////////////////////////// if (damage.tv_display) { if (!havoc_damage.tv_display) { activate_havoc_master_caution_lamp (); havoc_damage.tv_display = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("TV", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_TV_DISPLAY_FAILURE); } } //////////////////////////////////////// if (damage.threat_warning_display) { if (!havoc_damage.threat_warning_display) { activate_havoc_master_caution_lamp (); havoc_damage.threat_warning_display = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("TWD", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_THREAT_WARNING_DISPLAY_FAILURE); } } //////////////////////////////////////// if (damage.night_vision_goggles) { if (!havoc_damage.night_vision_goggles) { activate_havoc_master_caution_lamp (); havoc_damage.night_vision_goggles = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("NVG", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_NIGHT_VISION_GOGGLES_FAILURE); night_vision_system_active = FALSE; } } //////////////////////////////////////// if (damage.gun_jammed) { if (!havoc_damage.gun_jammed) { activate_havoc_master_caution_lamp (); havoc_damage.gun_jammed = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("GUN", "JAMMED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_GUN_JAMMED); } } //////////////////////////////////////// if (damage.lh_outer_pylon) { if (!havoc_damage.lh_outer_pylon) { activate_havoc_master_caution_lamp (); havoc_damage.lh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.lh_inner_pylon) { if (!havoc_damage.lh_inner_pylon) { activate_havoc_master_caution_lamp (); havoc_damage.lh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_outer_pylon) { if (!havoc_damage.rh_outer_pylon) { activate_havoc_master_caution_lamp (); havoc_damage.rh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_inner_pylon) { if (!havoc_damage.rh_inner_pylon) { activate_havoc_master_caution_lamp (); havoc_damage.rh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.chaff_dispenser) { if (!havoc_damage.chaff_dispenser) { activate_havoc_master_caution_lamp (); havoc_damage.chaff_dispenser = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("CHAFF", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_CHAFF_DISPENSER_DAMAGED); } } //////////////////////////////////////// if (damage.flare_dispenser) { if (!havoc_damage.flare_dispenser) { activate_havoc_master_caution_lamp (); havoc_damage.flare_dispenser = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_havoc_ekran_display_text ("FLARES", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_FLARE_DISPENSER_DAMAGED); } } //////////////////////////////////////// set_havoc_weapon_damage_status (); }
static void damage_systems (apache_damage_flags damage) { entity *en; en = get_gunship_entity (); //////////////////////////////////////// if (damage.radar) { if (!apache_damage.radar) { apache_damage.radar = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("RADAR FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_FAILURE); if ( (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_GROUND_RADAR) || (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_AIR_RADAR) ) { select_apache_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.flir) { if (!apache_damage.flir) { apache_damage.flir = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("FLIR FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_FLIR_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_FLIR) { select_apache_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.dtv) { if (!apache_damage.dtv) { apache_damage.dtv = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("DTV FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_DTV_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_DTV) { select_apache_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.dvo) { if (!apache_damage.dvo) { apache_damage.dvo = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("DVO FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_DVO_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_DVO) { select_apache_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.laser_designator) { if (!apache_damage.laser_designator) { apache_damage.laser_designator = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("LASER DESIG", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_LASER_DESIGNATOR_FAILURE); } } //////////////////////////////////////// if (damage.radar_jammer) { if (!apache_damage.radar_jammer) { apache_damage.radar_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("RADAR JAMMER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.infra_red_jammer) { if (!apache_damage.infra_red_jammer) { apache_damage.infra_red_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("IR JAMMER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_IR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.navigation_computer) { if (!apache_damage.navigation_computer) { apache_damage.navigation_computer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("NAV COMPUTER", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_NAV_COMPUTER_FAILURE); } } //////////////////////////////////////// if (damage.communications) { if (!apache_damage.communications) { apache_damage.communications = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("COMMS FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_COMMS_FAILURE); } } //////////////////////////////////////// if (damage.radar_warning_system) { if (!apache_damage.radar_warning_system) { apache_damage.radar_warning_system = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("RADAR WARNING", "FAILURE", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_WARNING_FAILURE); } } //////////////////////////////////////// if (!get_global_simple_avionics ()) { if (damage.ihadss) { if (!apache_damage.ihadss) { apache_damage.ihadss = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("IHADSS FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_IHADSS_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_IHADSS) { select_apache_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } } //////////////////////////////////////// if (damage.lh_mfd) { if (!apache_damage.lh_mfd) { apache_damage.lh_mfd = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("MFD FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_MFD_FAILURE); select_apache_mfd_mode (MFD_MODE_DAMAGED, MFD_LOCATION_LHS); } } //////////////////////////////////////// if (damage.rh_mfd) { if (!apache_damage.rh_mfd) { apache_damage.rh_mfd = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("MFD FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_MFD_FAILURE); select_apache_mfd_mode (MFD_MODE_DAMAGED, MFD_LOCATION_RHS); } } //////////////////////////////////////// if (damage.pnvs) { if (!apache_damage.pnvs) { apache_damage.pnvs = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("PNVS FAILURE", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_PNVS_FAILURE); night_vision_system_active = FALSE; } } //////////////////////////////////////// if (damage.gun_jammed) { if (!apache_damage.gun_jammed) { apache_damage.gun_jammed = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("GUN JAMMED", "", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_GUN_JAMMED); } } //////////////////////////////////////// if (damage.lh_wing_tip_mount) { if (!apache_damage.lh_wing_tip_mount) { apache_damage.lh_wing_tip_mount = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.lh_outer_pylon) { if (!apache_damage.lh_outer_pylon) { apache_damage.lh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.lh_inner_pylon) { if (!apache_damage.lh_inner_pylon) { apache_damage.lh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_wing_tip_mount) { if (!apache_damage.rh_wing_tip_mount) { apache_damage.rh_wing_tip_mount = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_outer_pylon) { if (!apache_damage.rh_outer_pylon) { apache_damage.rh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_inner_pylon) { if (!apache_damage.rh_inner_pylon) { apache_damage.rh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("HARDPOINT", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.chaff_dispenser) { if (!apache_damage.chaff_dispenser) { apache_damage.chaff_dispenser = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("CHAFF DISPNSR", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_CHAFF_DISPENSER_DAMAGED); } } //////////////////////////////////////// if (damage.flare_dispenser) { if (!apache_damage.flare_dispenser) { apache_damage.flare_dispenser = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_apache_upfront_display_text ("FLARE DISPNSR", "DAMAGED", NULL, NULL); play_client_server_warning_message (en, SPEECH_SYSTEM_FLARE_DISPENSER_DAMAGED); } } //////////////////////////////////////// set_apache_weapon_damage_status (); }
static void damage_systems (ka50_damage_flags damage) { entity *en; en = get_gunship_entity (); //////////////////////////////////////// if (damage.flir) { if (!ka50_damage.flir) { activate_ka50_master_caution (); ka50_damage.flir = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("FLIR", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_FLIR_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_FLIR) { select_ka50_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } //////////////////////////////////////// if (damage.laser_designator) { if (!ka50_damage.laser_designator) { activate_ka50_master_caution (); ka50_damage.laser_designator = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_laser_is_active(FALSE); set_ka50_text_display_text ("LASER", "DESIGNATOR", "FAILURE"); play_client_server_warning_message (en, SPEECH_SYSTEM_LASER_DESIGNATOR_FAILURE); } } //////////////////////////////////////// if (damage.radar_jammer) { if (!ka50_damage.radar_jammer) { activate_ka50_master_caution (); ka50_damage.radar_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("RADAR", "JAMMER", "FAILURE"); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_RADAR_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.infra_red_jammer) { if (!ka50_damage.infra_red_jammer) { activate_ka50_master_caution (); ka50_damage.infra_red_jammer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("IR JAMMER", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_IR_JAMMER_FAILURE); if (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON)) { set_client_server_entity_int_value (get_gunship_entity (), INT_TYPE_INFRA_RED_JAMMER_ON, FALSE); } } } //////////////////////////////////////// if (damage.navigation_computer) { if (!ka50_damage.navigation_computer) { activate_ka50_master_caution (); ka50_damage.navigation_computer = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("NAVIGATION", "COMPUTER", "FAILURE"); play_client_server_warning_message (en, SPEECH_SYSTEM_NAV_COMPUTER_FAILURE); } } //////////////////////////////////////// if (damage.communications) { if (!ka50_damage.communications) { activate_ka50_master_caution (); ka50_damage.communications = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("COMMS", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_COMMS_FAILURE); } } //////////////////////////////////////// if (damage.radar_warning_system) { if (!ka50_damage.radar_warning_system) { activate_ka50_master_caution (); ka50_damage.radar_warning_system = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("RADAR", "WARNING", "FAILURE"); play_client_server_warning_message (en, SPEECH_SYSTEM_RADAR_WARNING_FAILURE); } } //////////////////////////////////////// if (!get_global_simple_avionics ()) { if (damage.head_up_display) { if (!ka50_damage.head_up_display) { activate_ka50_master_caution (); ka50_damage.head_up_display = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HUD", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HUD_FAILURE); } } } //////////////////////////////////////// if (!get_global_simple_avionics ()) { if (damage.helmet_mounted_sight) { if (!ka50_damage.helmet_mounted_sight) { activate_ka50_master_caution (); ka50_damage.helmet_mounted_sight = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HMS", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HELMET_MOUNTED_SIGHT_FAILURE); if (target_acquisition_system == TARGET_ACQUISITION_SYSTEM_HMS) { select_ka50_target_acquisition_system (TARGET_ACQUISITION_SYSTEM_OFF); } } } } //////////////////////////////////////// if (damage.shkval_mfd) { if (!ka50_damage.shkval_mfd) { activate_ka50_master_caution (); ka50_damage.shkval_mfd = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("SHKVAL", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_MFD_FAILURE); select_ka50_mfd_mode (KA50_MFD_MODE_DAMAGED, KA50_MFD_LOCATION_SHKVAL); } } //////////////////////////////////////// if (damage.abris_mfd) { if (!ka50_damage.abris_mfd) { activate_ka50_master_caution (); ka50_damage.abris_mfd = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("ABRIS", "FAILURE", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_MFD_FAILURE); select_ka50_mfd_mode (KA50_MFD_MODE_DAMAGED, KA50_MFD_LOCATION_ABRIS); } } //////////////////////////////////////// if (damage.night_vision_goggles) { if (!ka50_damage.night_vision_goggles) { activate_ka50_master_caution (); ka50_damage.night_vision_goggles = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("NVG", "DAMAGED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_NIGHT_VISION_GOGGLES_FAILURE); night_vision_system_active = FALSE; } } //////////////////////////////////////// if (damage.gun_jammed) { if (!ka50_damage.gun_jammed) { activate_ka50_master_caution (); ka50_damage.gun_jammed = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("GUN", "JAMMED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_GUN_JAMMED); } } //////////////////////////////////////// if (damage.lh_outer_pylon) { if (!ka50_damage.lh_outer_pylon) { activate_ka50_master_caution (); ka50_damage.lh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HARDPOINT", "DAMAGED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.lh_inner_pylon) { if (!ka50_damage.lh_inner_pylon) { activate_ka50_master_caution (); ka50_damage.lh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HARDPOINT", "DAMAGED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_outer_pylon) { if (!ka50_damage.rh_outer_pylon) { activate_ka50_master_caution (); ka50_damage.rh_outer_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HARDPOINT", "DAMAGED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.rh_inner_pylon) { if (!ka50_damage.rh_inner_pylon) { activate_ka50_master_caution (); ka50_damage.rh_inner_pylon = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("HARDPOINT", "DAMAGED", ""); play_client_server_warning_message (en, SPEECH_SYSTEM_HARDPOINT_DAMAGED); } } //////////////////////////////////////// if (damage.lh_chaff_dispensers) { if (!ka50_damage.lh_chaff_dispensers) { activate_ka50_master_caution (); ka50_damage.lh_chaff_dispensers = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("CHAFF", "DISPENSER", "DAMAGED"); play_client_server_warning_message (en, SPEECH_SYSTEM_CHAFF_DISPENSER_DAMAGED); } } //////////////////////////////////////// if (damage.rh_chaff_dispensers) { if (!ka50_damage.rh_chaff_dispensers) { activate_ka50_master_caution (); ka50_damage.rh_chaff_dispensers = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("CHAFF", "DISPENSER", "DAMAGED"); play_client_server_warning_message (en, SPEECH_SYSTEM_CHAFF_DISPENSER_DAMAGED); } } //////////////////////////////////////// if (damage.lh_flare_dispensers) { if (!ka50_damage.lh_flare_dispensers) { activate_ka50_master_caution (); ka50_damage.lh_flare_dispensers = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("FLARE", "DISPENSER", "DAMAGED"); play_client_server_warning_message (en, SPEECH_SYSTEM_FLARE_DISPENSER_DAMAGED); } } //////////////////////////////////////// if (damage.rh_flare_dispensers) { if (!ka50_damage.rh_flare_dispensers) { activate_ka50_master_caution (); ka50_damage.rh_flare_dispensers = TRUE; dynamics_damage_model (DYNAMICS_DAMAGE_AVIONICS, FALSE); set_ka50_text_display_text ("FLARE", "DISPENSER", "DAMAGED"); play_client_server_warning_message (en, SPEECH_SYSTEM_FLARE_DISPENSER_DAMAGED); } } //////////////////////////////////////// set_ka50_weapon_damage_status (); }