From b562ed8864e5b93e79e99403fa65a1884b8f76bc Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Tue, 20 Jan 2015 18:59:55 +0100 Subject: [PATCH] Added AB source by Ruthberg. --- .../advancedballistics/CfgAmmo.h | 1715 +++++++++++++++++ .../advancedballistics/CfgFunctions.h | 30 + .../advancedballistics/CfgMagazines.h | 165 ++ .../advancedballistics/CfgSounds.h | 9 + .../advancedballistics/CfgVehicles.h | 167 ++ .../advancedballistics/CfgWeapons.h | 1598 +++++++++++++++ .../Combat_Space_Enhancement.h | 16 + .../sys_ballistics/advancedballistics/UI.h | 1 + .../advancedballistics/config.cpp | 44 + .../advancedballistics/data/protractor.paa | Bin 0 -> 41318 bytes .../data/protractor_marker.paa | Bin 0 -> 22587 bytes .../advancedballistics/data/wind0.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind1.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind10.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind11.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind12.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind2.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind3.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind4.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind5.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind6.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind7.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind8.paa | Bin 0 -> 22016 bytes .../advancedballistics/data/wind9.paa | Bin 0 -> 22016 bytes .../advancedballistics/functions/defines.h | 11 + .../functions/fn_adjust_parallax.sqf | 72 + .../functions/fn_adjust_turret.sqf | 91 + .../functions/fn_advanced_ballistics.sqf | 345 ++++ .../fn_advanced_ballistics_extension.sqf | 171 ++ .../fn_ammo_temperature_muzzle_velocity.sqf | 38 + .../functions/fn_apply_turret_adjustments.sqf | 37 + .../fn_barrel_length_muzzle_velocity.sqf | 61 + .../functions/fn_calculate_air_density.sqf | 31 + .../fn_calculate_atmospheric_correction.sqf | 27 + .../fn_calculate_hellmann_exponent.sqf | 38 + .../functions/fn_calculate_retardation.sqf | 129 ++ .../fn_calculate_roughness_length.sqf | 21 + .../fn_calculate_stability_factor.sqf | 27 + .../functions/fn_calculate_wind_speed.sqf | 65 + .../functions/fn_climate_simulation.sqf | 117 ++ .../functions/fn_display_protractor.sqf | 50 + .../functions/fn_display_wind_info.sqf | 64 + .../functions/fn_get_humidity_at_height.sqf | 17 + .../fn_get_temperature_at_height.sqf | 3 + .../fn_initialize_terrain_extension.sqf | 31 + .../functions/fn_mirage_simulation.sqf | 45 + .../functions/fn_synchronize_scope_zero.sqf | 14 + .../advancedballistics/init.sqf | 36 + .../advancedballistics/initClient.sqf | 169 ++ .../advancedballistics/license.txt | 19 + .../advancedballistics/sound/scope_click.wav | Bin 0 -> 22152 bytes .../advancedballistics/ui/rscTitles.h | 92 + .../cse/sys_ballistics/atragmx/CfgFunctions.h | 48 + .../cse/sys_ballistics/atragmx/CfgVehicles.h | 38 + .../cse/sys_ballistics/atragmx/CfgWeapons.h | 20 + .../atragmx/Combat_Space_Enhancement.h | 11 + TO_MERGE/cse/sys_ballistics/atragmx/UI.h | 2 + .../atragmx/XEH_postClientInit.sqf | 32 + .../cse/sys_ballistics/atragmx/config.cpp | 35 + .../cse/sys_ballistics/atragmx/data/ATRAG.paa | Bin 0 -> 227386 bytes .../atragmx/data/ATRAG_Icon.paa | Bin 0 -> 35867 bytes .../atragmx/functions/fn_add_new_gun.sqf | 14 + .../functions/fn_calculate_range_card.sqf | 48 + .../fn_calculate_scope_base_angle.sqf | 20 + .../functions/fn_calculate_solution.sqf | 123 ++ .../fn_calculate_target_range_assist.sqf | 105 + .../fn_calculate_target_solution.sqf | 52 + .../fn_calculate_target_speed_assist.sqf | 41 + .../atragmx/functions/fn_change_gun.sqf | 23 + .../atragmx/functions/fn_create_dialog.sqf | 24 + .../functions/fn_cycle_range_card_columns.sqf | 7 + .../atragmx/functions/fn_cycle_scope_unit.sqf | 8 + .../atragmx/functions/fn_delete_gun.sqf | 19 + .../atragmx/functions/fn_parse_input.sqf | 74 + .../fn_reset_relative_click_memory.sqf | 6 + .../atragmx/functions/fn_save_gun.sqf | 13 + .../atragmx/functions/fn_show_add_new_gun.sqf | 3 + .../atragmx/functions/fn_show_gun_list.sqf | 3 + .../atragmx/functions/fn_show_main_page.sqf | 4 + .../atragmx/functions/fn_show_range_card.sqf | 3 + .../functions/fn_show_range_card_setup.sqf | 3 + .../functions/fn_show_target_range_assist.sqf | 3 + .../functions/fn_show_target_speed_assist.sqf | 3 + .../fn_show_target_speed_assist_timer.sqf | 3 + .../atragmx/functions/fn_sord.sqf | 22 + .../fn_target_speed_assist_timer.sqf | 30 + .../atragmx/functions/fn_toggle_gun_list.sqf | 21 + .../functions/fn_toggle_range_card.sqf | 18 + .../functions/fn_toggle_range_card_setup.sqf | 29 + .../fn_toggle_target_range_assist.sqf | 32 + .../fn_toggle_target_speed_assist.sqf | 39 + .../functions/fn_update_atmosphere.sqf | 9 + .../atragmx/functions/fn_update_gun.sqf | 38 + .../functions/fn_update_range_card.sqf | 89 + .../fn_update_relative_click_memory.sqf | 6 + .../atragmx/functions/fn_update_result.sqf | 65 + .../functions/fn_update_scope_unit.sqf | 4 + .../atragmx/functions/fn_update_target.sqf | 22 + .../functions/fn_update_target_selection.sqf | 14 + .../functions/fn_update_unit_selection.sqf | 14 + .../functions/fn_update_zero_range.sqf | 36 + .../atragmx/functions/script_component.hpp | 0 TO_MERGE/cse/sys_ballistics/atragmx/init.sqf | 41 + .../cse/sys_ballistics/atragmx/license.txt | 19 + .../cse/sys_ballistics/atragmx/ui/defines.h | 182 ++ .../cse/sys_ballistics/atragmx/ui/display.h | 1015 ++++++++++ .../sys_ballistics/kestrel4500/CfgFunctions.h | 16 + .../sys_ballistics/kestrel4500/CfgSounds.h | 39 + .../sys_ballistics/kestrel4500/CfgVehicles.h | 37 + .../kestrel4500/Combat_space_enhancement.h | 11 + .../kestrel4500/XEH_postClientInit.sqf | 19 + .../sys_ballistics/kestrel4500/cfgWeapons.h | 20 + .../cse/sys_ballistics/kestrel4500/config.cpp | 36 + .../kestrel4500/data/Kestrel4500.paa | Bin 0 -> 208892 bytes .../kestrel4500/data/Kestrel4500_Icon.paa | Bin 0 -> 33147 bytes .../functions/fn_button_pressed.sqf | 40 + .../kestrel4500/functions/fn_collect_data.sqf | 90 + .../functions/fn_create_dialog.sqf | 13 + .../functions/fn_display_kestrel.sqf | 63 + .../functions/fn_generate_output_data.sqf | 203 ++ .../fn_hasAdvancedBallisticsEnabled.sqf | 1 + .../functions/fn_kestrel_mainLoop.sqf | 8 + .../functions/fn_update_display.sqf | 19 + .../functions/script_component.hpp | 0 .../cse/sys_ballistics/kestrel4500/init.sqf | 19 + .../sys_ballistics/kestrel4500/license.txt | 19 + .../sound/kestrel_bottom_button_click.wav | Bin 0 -> 27188 bytes .../sound/kestrel_center_button_click.wav | Bin 0 -> 28756 bytes .../sound/kestrel_exit_button_click.wav | Bin 0 -> 27188 bytes .../sound/kestrel_left_button_click.wav | Bin 0 -> 23684 bytes .../sound/kestrel_right_button_click.wav | Bin 0 -> 24560 bytes .../sound/kestrel_top_button_click.wav | Bin 0 -> 24300 bytes TO_MERGE/cse/sys_ballistics/kestrel4500/ui.h | 3 + .../sys_ballistics/kestrel4500/ui/defines.h | 56 + .../sys_ballistics/kestrel4500/ui/display.h | 162 ++ .../sys_ballistics/kestrel4500/ui/rscTitles.h | 98 + 136 files changed, 9071 insertions(+) create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgAmmo.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgFunctions.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgMagazines.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgSounds.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgVehicles.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/CfgWeapons.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/Combat_Space_Enhancement.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/UI.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/config.cpp create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor_marker.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind0.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind1.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind10.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind11.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind12.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind2.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind3.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind4.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind5.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind6.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind7.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind8.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind9.paa create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/defines.h create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_adjust_parallax.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_adjust_turret.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics_extension.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_ammo_temperature_muzzle_velocity.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_apply_turret_adjustments.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_barrel_length_muzzle_velocity.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_air_density.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_atmospheric_correction.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_hellmann_exponent.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_retardation.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_roughness_length.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_stability_factor.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_wind_speed.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_climate_simulation.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_protractor.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_wind_info.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_humidity_at_height.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_temperature_at_height.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_initialize_terrain_extension.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_mirage_simulation.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_synchronize_scope_zero.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/init.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/initClient.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/license.txt create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/sound/scope_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/advancedballistics/ui/rscTitles.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/CfgFunctions.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/CfgVehicles.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/CfgWeapons.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/Combat_Space_Enhancement.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/UI.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/XEH_postClientInit.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/config.cpp create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/data/ATRAG.paa create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/data/ATRAG_Icon.paa create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_add_new_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_range_card.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_scope_base_angle.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_solution.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_range_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_solution.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_speed_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_change_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_create_dialog.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_range_card_columns.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_scope_unit.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_delete_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_parse_input.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_reset_relative_click_memory.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_save_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_add_new_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_gun_list.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_main_page.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card_setup.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_range_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist_timer.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_sord.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_target_speed_assist_timer.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_gun_list.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card_setup.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_range_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_speed_assist.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_atmosphere.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_gun.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_range_card.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_relative_click_memory.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_result.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_scope_unit.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target_selection.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_unit_selection.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_zero_range.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/functions/script_component.hpp create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/init.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/license.txt create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/ui/defines.h create mode 100644 TO_MERGE/cse/sys_ballistics/atragmx/ui/display.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/CfgFunctions.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/CfgSounds.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/CfgVehicles.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/Combat_space_enhancement.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/XEH_postClientInit.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/cfgWeapons.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/config.cpp create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500.paa create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500_Icon.paa create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_button_pressed.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_collect_data.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_create_dialog.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_display_kestrel.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_generate_output_data.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_hasAdvancedBallisticsEnabled.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_kestrel_mainLoop.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_update_display.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/functions/script_component.hpp create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/init.sqf create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/license.txt create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_bottom_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_center_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_exit_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_left_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_right_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_top_button_click.wav create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/ui.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/ui/defines.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/ui/display.h create mode 100644 TO_MERGE/cse/sys_ballistics/kestrel4500/ui/rscTitles.h diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgAmmo.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgAmmo.h new file mode 100644 index 0000000000..255aced8d7 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgAmmo.h @@ -0,0 +1,1715 @@ +class CfgAmmo +{ + class BulletBase; + class B_556x45_Ball_Tracer_Red; + class B_762x51_Tracer_Red; + class B_556x45_Ball + { + airFriction=-0.001265; + hit=8; + typicalSpeed=750; + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=62; + AB_ammoTempMuzzleVelocityShifts[]={-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75}; + AB_ballisticCoefficients[]={0.151}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900}; + AB_barrelLengths[]={8.3, 9.4, 10.6, 11.8, 13.0, 14.2, 15.4, 16.5, 17.7, 18.9, 20.0, 24.0}; + }; + class AB_556x45_Ball_Mk262 : B_556x45_Ball + { + airFriction=-0.001125; + caliber=0.6; + deflecting=18; + hit=11; + typicalSpeed=836; + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=77; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.361}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={624, 816, 832, 838}; + AB_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + class AB_556x45_Ball_Mk318 : B_556x45_Ball + { + airFriction=-0.001120; + caliber=0.6; + deflecting=18; + hit=9; + typicalSpeed=886; + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=62; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.307}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={780, 886, 950}; + AB_barrelLengths[]={10, 15.5, 20}; + }; + class AB_545x39_Ball_7N6M : B_556x45_Ball + { + airFriction=-0.001162; + caliber=0.5; + deflecting=18; + hit=7; + typicalSpeed=880; + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=52.9; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={780, 880, 920}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class AB_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Red + { + airFriction=-0.001162; + caliber=0.5; + deflecting=18; + hit=7; + typicalSpeed=883; + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_65x39_Caseless + { + airFriction=-0.000772; + typicalSpeed=800; + AB_caliber=0.264; + AB_bulletLength=1.295; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.263}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={760, 788, 800, 805}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class B_762x51_Ball + { + airFriction=-0.001035; + typicalSpeed=833; + hit=14; + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class AB_762x51_Ball_M118LR : B_762x51_Ball + { + airFriction=-0.0008525; + caliber=1.05; + hit=16; + typicalSpeed=790; + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485}; + AB_velocityBoundaries[]={853, 549, 549, 549}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={750, 780, 790, 794}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class AB_762x51_Ball_Subsonic : B_762x51_Ball + { + airFriction=-0.000535; + caliber=0.5; + hit=16; + typicalSpeed=790; + AB_caliber=0.308; + AB_bulletLength=1.340; + AB_bulletMass=200; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.235}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={305, 325, 335, 340}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class AB_762x54_Ball_7N14 : B_762x51_Ball + { + airFriction=-0.001023; + caliber=0.95; + hit=15; + typicalSpeed=820; + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=152; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.4}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={700, 800, 820, 833}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class AB_762x54_Ball_7T2 : B_762x51_Tracer_Red + { + airFriction=-0.001023; + caliber=0.9; + hit=15; + typicalSpeed=800; + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class AB_762x35_Ball : B_762x51_Ball + { + airFriction=-0.000821; + caliber=0.9; + hit=11; + typicalSpeed=790; + AB_caliber=0.308; + AB_bulletLength=1.153; + AB_bulletMass=125; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.349, 0.338, 0.330, 0.310}; + AB_velocityBoundaries[]={792, 610, 488}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={620, 655, 675}; + AB_barrelLengths[]={9, 16, 20}; + }; + class AB_762x39_Ball : B_762x51_Ball + { + airFriction=-0.0015168; + hit=12; + typicalSpeed=716; + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class AB_762x39_Ball_57N231P : B_762x51_Tracer_Red + { + airFriction=-0.0015168; + hit=12; + typicalSpeed=716; + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=117; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_9x21_Ball + { + airFriction=-0.00125; + typicalSpeed=390; + hit=6; + AB_caliber=0.356; + AB_bulletLength=0.610; + AB_bulletMass=115; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.17}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={350, 390, 420}; + AB_barrelLengths[]={4, 5, 9}; + }; + class AB_9x18_Ball_57N181S : B_9x21_Ball + { + hit=5; + airFriction=-0.001234; + typicalSpeed=298; + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class AB_9x19_Ball : B_9x21_Ball + { + airFriction=-0.001234; + typicalSpeed=370; + hit=6; + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class AB_10x25_Ball : B_9x21_Ball + { + airFriction=-0.00168; + typicalSpeed=425; + hit=7; + AB_caliber=0.5; + AB_bulletLength=0.764; + AB_bulletMass=165; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.189}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 400, 430}; + AB_barrelLengths[]={4, 4.61, 9}; + }; + class AB_765x17_Ball: B_9x21_Ball + { + airFriction=-0.001213; + typicalSpeed=282; + hit=7; + AB_caliber=0.3125; + AB_bulletLength=0.610; + AB_bulletMass=65; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.118}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={282, 300, 320}; + AB_barrelLengths[]={4, 5, 9}; + }; + class AB_303_Ball : AB_762x51_Ball_M118LR + { + airFriction=-0.00083; + typicalSpeed=761; + AB_caliber=0.311; + AB_bulletLength=1.227; + AB_bulletMass=174; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.499, 0.493, 0.48}; + AB_velocityBoundaries[]={671, 549}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={748, 761, 765}; + AB_barrelLengths[]={20, 24, 26}; + }; + class B_408_Ball + { + airFriction=-0.000395; + typicalSpeed=910; + AB_caliber=0.408; + AB_bulletLength=2.126; + AB_bulletMass=410; + AB_transonicStabilityCoef=1; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.97}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={910}; + AB_barrelLengths[]={29}; + }; + class AB_106x83mm_Ball : B_408_Ball + { + AB_caliber=0.416; + AB_bulletLength=2.089; + AB_bulletMass=398; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.72}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={960}; + AB_barrelLengths[]={29}; + }; + class AB_338_Ball : B_408_Ball + { + airFriction=-0.000526; + caliber=1.55; + deflecting=12; + hit=20; + typicalSpeed=826; + AB_caliber=0.338; + AB_bulletLength=1.70; + AB_bulletMass=300; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.381}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={820, 826, 830}; + AB_barrelLengths[]={24, 26.5, 28}; + }; + class B_127x99_Ball + { + airFriction=-0.0006; + typicalSpeed=853; + AB_caliber=0.510; + AB_bulletLength=2.310; + AB_bulletMass=647; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.670}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={853}; + AB_barrelLengths[]={29}; + }; + class AB_127x99_Ball_AMAX : B_127x99_Ball + { + AB_caliber=0.510; + AB_bulletLength=2.540; + AB_bulletMass=750; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={1.050}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={860}; + AB_barrelLengths[]={29}; + }; + class B_127x108_Ball + { + typicalSpeed=820; + AB_caliber=0.511; + AB_bulletLength=2.520; + AB_bulletMass=745; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.63}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={820}; + AB_barrelLengths[]={28.7}; + }; + class B_45ACP_Ball + { + airFriction=-0.0007182; + typicalSpeed=250; + AB_caliber=0.452; + AB_bulletLength=0.68; + AB_bulletMass=230; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.195}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={230, 250, 285}; + AB_barrelLengths[]={4, 5, 9}; + }; + + class TMR_B_762x51_M118LR : B_762x51_Ball + { + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485}; + AB_velocityBoundaries[]={853, 549, 549, 549}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={750, 780, 790, 794}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + + class RH_50_AE_Ball: BulletBase + { + AB_caliber=0.5; + AB_bulletLength=1.110; + AB_bulletMass=325; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.228}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 398, 420}; + AB_barrelLengths[]={4, 6, 9}; + }; + class RH_454_Casull: BulletBase + { + AB_caliber=0.452; + AB_bulletLength=0.895; + AB_bulletMass=325; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.171}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={450, 490, 500}; + AB_barrelLengths[]={4, 7.5, 9}; + }; + class RH_32ACP: BulletBase + { + AB_caliber=0.3125; + AB_bulletLength=0.610; + AB_bulletMass=65; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.118}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={282, 300, 320}; + AB_barrelLengths[]={4, 5, 9}; + }; + class RH_45ACP: BulletBase + { + AB_caliber=0.452; + AB_bulletLength=0.68; + AB_bulletMass=230; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.195}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={230, 250, 285}; + AB_barrelLengths[]={4, 5, 9}; + }; + class RH_B_40SW: BulletBase + { + AB_caliber=0.4; + AB_bulletLength=0.447; + AB_bulletMass=135; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.105, 0.115, 0.120, 0.105}; + AB_velocityBoundaries[]={365, 305, 259}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 380, 400}; + AB_barrelLengths[]={4, 6, 9}; + }; + class RH_44mag_ball: BulletBase + { + AB_caliber=0.429; + AB_bulletLength=0.804; + AB_bulletMass=200; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.172}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 390, 420}; + AB_barrelLengths[]={4, 7.5, 9}; + }; + class RH_357mag_ball: BulletBase + { + AB_caliber=0.357; + AB_bulletLength=0.541; + AB_bulletMass=125; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.148}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={490, 510, 535}; + AB_barrelLengths[]={4, 6, 9}; + }; + class RH_762x25: BulletBase + { + AB_caliber=0.310; + AB_bulletLength=0.5455; + AB_bulletMass=86; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.17}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 380, 400}; + AB_barrelLengths[]={4, 6, 9}; + }; + class RH_9x18_Ball: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class RH_B_9x19_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class RH_B_22LR_SD: BulletBase + { + AB_caliber=0.223; + AB_bulletLength=0.45; + AB_bulletMass=38; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.111}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={330, 340, 360}; + AB_barrelLengths[]={4, 6, 9}; + }; + class RH_57x28mm: BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.495; + AB_bulletMass=28; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.144}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={550, 625, 720}; + AB_barrelLengths[]={4, 6, 10.35}; + }; + + class RH_B_6x35: BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.445; + AB_bulletMass=65; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.26}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={730, 750, 760}; + AB_barrelLengths[]={8, 10, 12}; + }; + + class RH_556x45_B_Mk262 : B_556x45_Ball + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=77; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.361}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={624, 816, 832, 838}; + AB_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + + class HLC_556NATO_SOST: BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=62; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.307}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={780, 886, 950}; + AB_barrelLengths[]={10, 15.5, 20}; + }; + class HLC_556NATO_SPR: BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=77; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.361}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={624, 816, 832, 838}; + AB_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + class HLC_300Blackout_Ball: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.118; + AB_bulletMass=147; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.398}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={559, 609, 625}; + AB_barrelLengths[]={6, 16, 20}; + }; + class HLC_300Blackout_SMK: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.489; + AB_bulletMass=220; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.608}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={300, 320, 340}; + AB_barrelLengths[]={9, 16, 20}; + }; + class HLC_762x51_BTSub: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.340; + AB_bulletMass=200; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.235}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={305, 325, 335, 340}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class HLC_762x54_ball: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=152; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.4}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={700, 800, 820, 833}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class HLC_762x54_tracer: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class HLC_303Brit_B: BulletBase + { + AB_caliber=0.311; + AB_bulletLength=1.227; + AB_bulletMass=174; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.499, 0.493, 0.48}; + AB_velocityBoundaries[]={671, 549}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={748, 761, 765}; + AB_barrelLengths[]={20, 24, 26}; + }; + class HLC_792x57_Ball: BulletBase + { + AB_caliber=0.318; + AB_bulletLength=1.128; + AB_bulletMass=196; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.315}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={785, 800, 815}; + AB_barrelLengths[]={20, 23.62, 26}; + }; + class FH_545x39_Ball: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=52.9; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={780, 880, 920}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class FH_545x39_7u1: FH_545x39_Ball + { + AB_bulletMass=80; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_muzzleVelocities[]={260, 303, 320}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class HLC_9x19_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class HLC_9x19_GoldDot: HLC_9x19_Ball + { + AB_muzzleVelocities[]={350, 380, 420}; + }; + class HLC_9x19_Subsonic: HLC_9x19_Ball + { + AB_muzzleVelocities[]={300, 320, 340}; + }; + class HLC_10mm_FMJ: HLC_9x19_Ball + { + AB_caliber=0.5; + AB_bulletLength=0.764; + AB_bulletMass=165; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.189}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={360, 400, 430}; + AB_barrelLengths[]={4, 4.61, 9}; + }; + class HLC_9x19_M882_SMG: HLC_9x19_Ball + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + + class M_mas_545x39_Ball_7N6M : BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=52.9; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={780, 880, 920}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class M_mas_545x39_Ball_7T3M : BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_mas_556x45_Ball_Mk262 : B_556x45_Ball + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=77; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.361}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={624, 816, 832, 838}; + AB_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + class B_mas_9x18_Ball_57N181S : BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class B_mas_9x21p_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class B_mas_9x21_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class B_mas_9x21d_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={210, 250, 285}; + AB_barrelLengths[]={4, 5, 9}; + }; + class B_mas_765x17_Ball: BulletBase + { + AB_caliber=0.3125; + AB_bulletLength=0.610; + AB_bulletMass=65; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.118}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={282, 300, 320}; + AB_barrelLengths[]={4, 5, 9}; + }; + class B_mas_762x39_Ball: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_mas_762x39_Ball_T: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=117; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_mas_762x51_Ball_M118LR : B_762x51_Ball + { + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485}; + AB_velocityBoundaries[]={853, 549, 549, 549}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={750, 780, 790, 794}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class B_mas_762x54_Ball : BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=152; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.4}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={700, 800, 820, 833}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class B_mas_762x54_Ball_T : BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class BWA3_B_762x51_Ball_LR : BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485}; + AB_velocityBoundaries[]={853, 549, 549, 549}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={750, 780, 790, 794}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class BWA3_B_762x51_Ball_SD : BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={300, 340}; + AB_barrelLengths[]={16, 24}; + }; + + class BWA3_B_46x30_Ball : BulletBase + { + AB_caliber=0.193; + AB_bulletLength=0.512; + AB_bulletMass=31; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.1455}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 720, 730, 740}; + AB_barrelLengths[]={4, 7, 9, 12}; + }; + + class Trixie_338_Ball : BulletBase + { + AB_caliber=0.338; + AB_bulletLength=1.70; + AB_bulletMass=300; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.381}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={820, 826, 830}; + AB_barrelLengths[]={24, 26.5, 28}; + }; + class Trixie_303_Ball : BulletBase + { + AB_caliber=0.311; + AB_bulletLength=1.227; + AB_bulletMass=174; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.499, 0.493, 0.48}; + AB_velocityBoundaries[]={671, 549}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={748, 761, 765}; + AB_barrelLengths[]={20, 24, 26}; + }; + + class rhs_ammo_556x45_Mk318_Ball : BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=62; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.307}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={780, 886, 950}; + AB_barrelLengths[]={10, 15.5, 20}; + }; + class rhs_ammo_556x45_Mk262_Ball : BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=77; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.361}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={624, 816, 832, 838}; + AB_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + class rhsammo_762x51_Ball : BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class rhs_B_545x39_Ball : BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=52.9; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={780, 880, 920}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class rhs_B_545x39_Ball_Tracer_Green : BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class rhs_B_762x54_Ball : BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=152; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.4}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={700, 800, 820, 833}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_B_762x54_Ball_Tracer_Green : BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_B_762x39_Ball : BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class rhs_B_762x39_Tracer : BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=117; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + + class R3F_9x19_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class R3F_556x45_Ball: BulletBase + { + AB_caliber=0.224; + AB_bulletLength=0.906; + AB_bulletMass=62; + AB_ammoTempMuzzleVelocityShifts[]={-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75}; + AB_ballisticCoefficients[]={0.151}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900}; + AB_barrelLengths[]={8.3, 9.4, 10.6, 11.8, 13.0, 14.2, 15.4, 16.5, 17.7, 18.9, 20.0, 24.0}; + }; + class R3F_762x51_Ball: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class R3F_762x51_Ball2: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.24; + AB_bulletMass=175; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485}; + AB_velocityBoundaries[]={853, 549, 549, 549}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={750, 780, 790, 794}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class R3F_127x99_Ball: BulletBase + { + AB_caliber=0.510; + AB_bulletLength=2.310; + AB_bulletMass=647; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.670}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={853}; + AB_barrelLengths[]={29}; + }; + class R3F_127x99_Ball2: BulletBase + { + AB_caliber=0.510; + AB_bulletLength=2.310; + AB_bulletMass=647; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.670}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={853}; + AB_barrelLengths[]={29}; + }; + + class CUP_B_545x39_Ball: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=52.9; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={780, 880, 920}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_545x39_Ball_Tracer_Green: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_545x39_Ball_Tracer_Red: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_545x39_Ball_Tracer_White: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_545x39_Ball_Tracer_Yellow: BulletBase + { + AB_caliber=0.220; + AB_bulletLength=0.85; + AB_bulletMass=49.8; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.168}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=7; + AB_muzzleVelocities[]={785, 883, 925}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_762x39_Ball: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_762x39_Ball_Tracer_Green: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=117; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class B_762x39mm_KLT: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=123; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={650, 716, 750}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_9x18_Ball: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_9x18_Ball_Tracer_Green: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_9x18_Ball_Tracer_Red: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_9x18_Ball_Tracer_Yellow: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_9x18_Ball_White_Tracer: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 350}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_9x19_Ball: BulletBase + { + AB_caliber=0.355; + AB_bulletLength=0.610; + AB_bulletMass=124; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.165}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={340, 370, 400}; + AB_barrelLengths[]={4, 5, 9}; + }; + class CUP_B_762x51_noTracer: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_762x51_Red_Tracer_3RndBurst: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_762x51_White_Tracer_3RndBurst: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_303_Ball: BulletBase + { + AB_caliber=0.311; + AB_bulletLength=1.227; + AB_bulletMass=174; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.499, 0.493, 0.48}; + AB_velocityBoundaries[]={671, 549}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={748, 761, 765}; + AB_barrelLengths[]={20, 24, 26}; + }; + class CUP_B_127x107_Ball_Green_Tracer: BulletBase + { + AB_caliber=0.511; + AB_bulletLength=2.520; + AB_bulletMass=745; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.63}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={820}; + AB_barrelLengths[]={28.7}; + }; + class CUP_B_127x108_Ball_Green_Tracer: BulletBase + { + AB_caliber=0.511; + AB_bulletLength=2.520; + AB_bulletMass=745; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.63}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={820}; + AB_barrelLengths[]={28.7}; + }; + class CUP_B_762x54_Ball_White_Tracer: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class CUP_B_762x54_Ball_Red_Tracer: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class CUP_B_762x54_Ball_Green_Tracer: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class CUP_B_762x54_Ball_Yellow_Tracer: BulletBase + { + AB_caliber=0.312; + AB_bulletLength=1.14; + AB_bulletMass=149; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.395}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={680, 750, 798, 800}; + AB_barrelLengths[]={16, 20, 24, 26}; + }; + class CUP_B_9x39_SP5: BulletBase + { + AB_caliber=0.364; + AB_bulletLength=1.24; + AB_bulletMass=250; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.275}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=1; + AB_muzzleVelocities[]={280, 300, 320}; + AB_barrelLengths[]={10, 16.3, 20}; + }; + class CUP_B_762x51_Tracer_Green: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_762x51_Tracer_Red: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_762x51_Tracer_Yellow: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class CUP_B_762x51_Tracer_White: BulletBase + { + AB_caliber=0.308; + AB_bulletLength=1.14; + AB_bulletMass=146; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.2}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={700, 800, 820, 833, 845}; + AB_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class B_127x107_Ball: BulletBase + { + AB_caliber=0.511; + AB_bulletLength=2.520; + AB_bulletMass=745; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.63}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={820}; + AB_barrelLengths[]={28.7}; + }; + class CUP_B_9x18_SD: BulletBase + { + AB_caliber=0.365; + AB_bulletLength=0.610; + AB_bulletMass=92.6; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.125}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={298, 330, 340}; + AB_barrelLengths[]={3.8, 5, 9}; + }; + class CUP_B_765x17_Ball: BulletBase + { + AB_caliber=0.3125; + AB_bulletLength=0.610; + AB_bulletMass=65; + AB_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + AB_ballisticCoefficients[]={0.118}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={282, 300, 320}; + AB_barrelLengths[]={4, 5, 9}; + }; + class CUP_B_145x115_AP_Green_Tracer: BulletBase + { + AB_caliber=0.586; + AB_bulletLength=2.00; + AB_bulletMass=1010; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.620}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={1000}; + AB_barrelLengths[]={53}; + }; + class CUP_B_127x99_Ball_White_Tracer: BulletBase + { + AB_caliber=0.510; + AB_bulletLength=2.310; + AB_bulletMass=647; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.670}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ASM"; + AB_dragModel=1; + AB_muzzleVelocities[]={853}; + AB_barrelLengths[]={29}; + }; + class CUP_B_86x70_Ball_noTracer: BulletBase + { + AB_caliber=0.338; + AB_bulletLength=1.70; + AB_bulletMass=300; + AB_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + AB_ballisticCoefficients[]={0.381}; + AB_velocityBoundaries[]={}; + AB_standardAtmosphere="ICAO"; + AB_dragModel=7; + AB_muzzleVelocities[]={820, 826, 830}; + AB_barrelLengths[]={24, 26.5, 28}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgFunctions.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgFunctions.h new file mode 100644 index 0000000000..c35241da53 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgFunctions.h @@ -0,0 +1,30 @@ +class cfgFunctions { + class cse_AB_ballistics + { + class advancedBallistics { + file = "cse\cse_sys_ballistics\advancedBallistics\functions"; + class adjust_parallax { recompile = 1; }; + class adjust_turret { recompile = 1; }; + class advanced_ballistics { recompile = 1; }; + class advanced_ballistics_extension { recompile = 1; }; + class ammo_temperature_muzzle_velocity { recompile = 1; }; + class apply_turret_adjustments { recompile = 1; }; + class barrel_length_muzzle_velocity { recompile = 1; }; + class calculate_air_density { recompile = 1; }; + class calculate_atmospheric_correction { recompile = 1; }; + class calculate_hellmann_exponent { recompile = 1; }; + class calculate_retardation { recompile = 1; }; + class calculate_roughness_length { recompile = 1; }; + class calculate_stability_factor { recompile = 1; }; + class calculate_wind_speed { recompile = 1; }; + class climate_simulation { recompile = 1; }; + class display_protractor { recompile = 1; }; + class display_wind_info { recompile = 1; }; + class get_humidity_at_height { recompile = 1; }; + class get_temperature_at_height { recompile = 1; }; + class initialize_terrain_extension { recompile = 1; }; + class mirage_simulation { recompile = 1; }; + class synchronize_scope_zero { recompile = 1; }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgMagazines.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgMagazines.h new file mode 100644 index 0000000000..b1383e2d79 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgMagazines.h @@ -0,0 +1,165 @@ +class CfgMagazines +{ + class 7Rnd_408_Mag; + class 16Rnd_9x21_Mag; + class 30Rnd_556x45_Stanag; + class 30Rnd_556x45_Stanag_Tracer_Red; + class 200Rnd_65x39_cased_Box; + class 200Rnd_65x39_cased_Box_Tracer; + class 10Rnd_762x51_Mag; + class 20Rnd_762x51_Mag; + class 100Rnd_127x99_mag; + class 8Rnd_mas_9x18_Mag: 16Rnd_9x21_Mag + { + ammo="B_mas_9x18_Ball_57N181S"; + count=8; + displayName="8rnd 9mm Mag"; + picture="\A3\weapons_f\data\ui\M_16Rnd_9x21_CA.paa"; + descriptionshort="Caliber: 9x18 mm Makarov
Rounds: 8
Used in: Makarov"; + }; + class 64Rnd_mas_9x18_mag: 30Rnd_556x45_Stanag + { + ammo="B_mas_9x18_Ball_57N181S"; + count=64; + displayName="64rnds 9x18 Bizon"; + picture="\mas_us_rifle\ui\m_bizon_ca.paa"; + descriptionshort="Caliber: 9x18 mm cal
Rounds: 64
Used in: Bizon"; + }; + class 30Rnd_mas_545x39_mag: 30Rnd_556x45_Stanag + { + ammo="M_mas_545x39_Ball_7N6M"; + count=30; + descriptionshort="Caliber: 5.45x39 mm
Rounds: 30
Used in: AK74M,AKS74,AKSU"; + displayname="30rnd 5.45mm Mag"; + }; + class 30Rnd_mas_545x39_T_mag: 30Rnd_556x45_Stanag_Tracer_Red + { + ammo="M_mas_545x39_Ball_7T3M"; + count=30; + descriptionshort="Caliber: 5.45x39 mm Tracer
Rounds: 30
Used in: AK74M,AKS74,AKSU"; + displayname="30rnd 5.45mm Mag(Tracer)"; + }; + class 100Rnd_mas_545x39_mag: 200Rnd_65x39_cased_Box + { + ammo="M_mas_545x39_Ball_7N6M"; + count=100; + descriptionshort="Caliber: 5.45x39 mm
Rounds: 100
Used in: RPK74"; + displayname="100rnd 5.45mm Drum"; + mass=25; + }; + class 100Rnd_mas_545x39_T_mag: 200Rnd_65x39_cased_Box_Tracer + { + ammo="M_mas_545x39_Ball_7T3M"; + count=100; + descriptionshort="Caliber: 5.45x39 mm Tracer
Rounds: 100
Used in: RPK74"; + displayname="100rnd 5.45mm Drum(Tracer)"; + mass=25; + }; + class 30Rnd_mas_556x45_Mk262_Stanag: 30Rnd_556x45_Stanag + { + ammo="B_mas_556x45_Ball_Mk262"; + count=30; + descriptionshort="Caliber: 5.56x45 mm STANAG Mk262
Rounds: 30
Used in: M4,HK416,M16,SCAR-L"; + displayname="30rnd 5.56mm STANAG(Mk262)"; + }; + class 20Rnd_mas_762x51_M118LR_Stanag: 30Rnd_556x45_Stanag + { + ammo="B_mas_762x51_Ball_M118LR"; + count=20; + descriptionshort="Caliber: 7.62x51 mm STANAG M118LR
Rounds: 20
Used in: HK417,SR25,SCAR-H,EBR"; + displayname="20rnd 7.62mm Mag(M118LR)"; + picture="\A3\weapons_f\data\UI\M_20Rnd_762x51_CA.paa"; + }; + class 5Rnd_mas_762x51_M118LR_Stanag: 30Rnd_556x45_Stanag + { + ammo="B_mas_762x51_Ball_M118LR"; + count=5; + descriptionshort="Caliber: 7.62x51 mm STANAG M118LR
Rounds: 5
Used in: M24"; + displayname="5rnd 7.62mm Mag(M118LR)"; + picture="\A3\weapons_f\data\UI\m_M24_CA.paa"; + }; + + class Trixie_30x556_Mk262_Mag: 30Rnd_556x45_Stanag + { + scope=2; + author="Trixie"; + count=30; + descriptionshort="Caliber: 5.56x45mm
Rounds: 30
Used in: Mk12 SPR"; + displayname="30Rnd Mk262 5.56x45mm"; + ammo="cse_AB_556x45_Ball_Mk262"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_20x762_M118LR_Mag: 20Rnd_762x51_Mag + { + scope=2; + author="Trixie"; + count=20; + descriptionshort="Caliber: 7.62x51mm
Rounds: 20
Used in: M110 SASS"; + displayname="20Rnd 7.62x51mm M118LR"; + ammo="cse_AB_762x51_Ball_M118LR"; + picture="\Trixie_recon\UI\20x762_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_10x762_M118LR_Mag: 10Rnd_762x51_Mag + { + scope=2; + author="Trixie"; + count=10; + descriptionshort="Caliber: 7.62x51mm
Rounds: 10
Used in: CZ750"; + displayname="10Rnd 7.62x51mm M118LR"; + ammo="cse_AB_762x51_Ball_M118LR"; + picture="\Trixie_recon\UI\5x762_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_5x762_M118LR_Mag: 10Rnd_762x51_Mag + { + scope=2; + author="Trixie"; + count=5; + descriptionshort="Caliber: 7.62x51mm
Rounds: 5
Used in: M40A3"; + displayname="5Rnd 7.62x51mm M118LR"; + ammo="cse_AB_762x51_Ball_M118LR"; + picture="\Trixie_recon\UI\5x762_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_10x127_Mag: 100Rnd_127x99_mag + { + scope=2; + author="Trixie"; + count=10; + descriptionshort="Caliber: 12.7x99mm
Rounds: 10
Used in: Barret M107"; + displayname="10Rnd 12.7x99mm"; + ammo="B_127x99_Ball"; + picture="\Trixie_recon\UI\50BMGx10_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_10x105_Mag: 100Rnd_127x99_mag + { + scope=2; + author="Trixie"; + count=10; + descriptionshort="Caliber: .416 Barrett
Rounds: 10
Used in: Barret M107"; + displayname="10Rnd 10.5x83mm"; + ammo="AB_106x83mm_Ball"; + picture="\Trixie_recon\UI\50BMGx10_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; + class Trixie_10x127_Amax_Mag: 100Rnd_127x99_mag + { + scope=2; + author="Trixie"; + count=10; + descriptionshort="Caliber: .50 BMG 750 gr A-MAX
Rounds: 10
Used in: Barret M107"; + displayname="10Rnd 12.7x99mm A-MAX"; + ammo="AB_127x99_Ball_AMAX"; + picture="\Trixie_recon\UI\50BMGx10_mag.paa"; + lastroundstracer=0; + tracersevery=0; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgSounds.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgSounds.h new file mode 100644 index 0000000000..d6c62fc98c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgSounds.h @@ -0,0 +1,9 @@ +class CfgSounds +{ + class cse_AB_scope_click + { + name="cse_AB_scope_click"; + sound[]={"cse\cse_sys_ballistics\advancedballistics\sound\scope_click.wav",1,1}; + titles[]={}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgVehicles.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgVehicles.h new file mode 100644 index 0000000000..9118494399 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgVehicles.h @@ -0,0 +1,167 @@ +class CfgVehicles { + class Logic; + class Module_F: Logic { + class ArgumentsBaseUnits { + }; + }; + class cse_AB_moduleAdvancedBallistics: Module_F { + scope = 2; + displayName = "Advanced Ballistics [CSE]"; + icon = "\cse\cse_main\data\cse_backblast_module.paa"; + category = "cseModules"; + function = "cse_fnc_initalizeModule_F"; + author = "Ruthberg"; + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + class Arguments { + + class FORCE_CLIENT_SETTINGS_OVERRIDE { + displayName = "Force Client Settings override"; + description = "Force Client Settings override"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class WIND_ENABLED { + displayName = "Wind drift"; + description = "Add wind drift"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class SPIN_DRIFT_ENABLED { + displayName = "Spin drift"; + description = "add spin drift"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class CORIOLIS_ENABLED { + displayName = "Horizontal Coriolis drift"; + description = "Horizontal Coriolis drift"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class EOETVOES_ENABLED { + displayName = "Vertical Coriolis drift"; + description = "Vertical Coriolis drift"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class ADVANCED_AIR_DRAG_ENABLED { + displayName = "Advanced air drag"; + description = "Enabled the advanced air drag model (only availible with compatible 3rd party ammunition)"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class ATMOSPHERIC_DENSITY_SIMULATION_ENABLED { + displayName = "Ambient air density "; + description = "The bullets ability to cut through air becomes affected by the ambient air density"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class TRANSONIC_REGION_ENABLED { + displayName = "Dispersion beyond supersonic"; + description = "Adds dispersion beyond supersonic flight of rifle bullets"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class MIL_TURRETS_ENABLED { + displayName = "Zero scope in 1/10 mil"; + description = "Adds the ability to zero your scope in 1/10 Mil steps"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class AMMO_TEMPERATURE_ENABLED { + displayName = "Ammo temperature"; + description = "Muzzle velocity changes with ammo temperature"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class DISABLED_IN_FULL_AUTO_MODE { + displayName = "Disabled during full auto"; + description = "Disables the advanced ballistics during full auto fire"; + typeName = "BOOL"; + defaultValue = 0; + }; + + class BULLET_TRACE_ENABLED { + displayName = "Bullet trace effect"; + description = "Adds a bullet trace effect to high caliber bullets"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class MIRAGE_ENABLED { + displayName = "Mirage and scope parallax"; + description = "Adds mirage and scope parallax adjustment"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class BARREL_LENGTH_INFLUENCE { + displayName = "Barrel length dependent"; + description = "Enables barrel length dependent muzzle velocity"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class VEHICLE_GUNNER_ENABLED { + displayName = "Vehicle Gunners"; + description = "Enables the advanced ballistics for rounds fired as vehicle gunner"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class EXTENSIONS_ENABLED { + displayName = "Extension allowed"; + description = "Allows the use of the DLL extension"; + typeName = "BOOL"; + defaultValue = 1; + }; + + class INIT_MESSAGE_ENABLED { + displayName = "Initialization message"; + description = "Prints a system chat message once the terrain initialization is finished"; + typeName = "BOOL"; + defaultValue = 0; + }; + + class ONLY_ACTIVE_FOR_LOCAL_PLAYER { + displayName = "Local only"; + description = "Disables the advanced ballistics for bullets coming from other players"; + typeName = "BOOL"; + defaultValue = 0; + }; + + class ONLY_ACTIVE_FOR_PLAYER_GROUP { + displayName = "Group only"; + description = "Disables the advanced ballistics for bullets coming from players in other groups"; + typeName = "BOOL"; + defaultValue = 0; + }; + + class DISABLED_BY_DEFAULT { + displayName = "Disabled by default"; + description = "Allows you to enable the advanced ballistics selectively in the unit initialization"; + typeName = "BOOL"; + defaultValue = 0; + }; + + class PRECISION { + displayName = "Calculation precision"; + description = "Allows to reduces the calculation precision to avoid frame drops (1 - maximum precision, 2 - medium precision, 3 - minimal precision)"; + typeName = "NUMBER"; + defaultValue = 1; + }; + }; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgWeapons.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgWeapons.h new file mode 100644 index 0000000000..c7c976f3c4 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/CfgWeapons.h @@ -0,0 +1,1598 @@ +class CfgWeapons +{ + class MGun; + class MGunCore; + class Pistol_Base_F; + class Rifle_Base_F; + class Rifle_Long_Base_F; + class hgun_P07_F + { + AB_barrelTwist=10; + AB_barrelLength=4; + }; + class hgun_Rook40_F + { + AB_barrelTwist=10; + AB_barrelLength=4.4; + }; + class hgun_Pistol_heavy_01_F + { + AB_barrelTwist=16; + AB_barrelLength=4.5; + }; + class hgun_Pistol_heavy_02_F + { + AB_barrelTwist=16; + AB_barrelLength=3; + }; + class hgun_ACPC2_F + { + AB_barrelTwist=16; + AB_barrelLength=5; + }; + class hgun_PDW2000_F + { + AB_barrelTwist=9; + AB_barrelLength=7; + }; + class arifle_Katiba_F + { + AB_barrelTwist=8; + AB_barrelLength=228.7; + }; + class arifle_Katiba_C_F + { + AB_barrelTwist=8; + AB_barrelLength=26.8; + }; + class arifle_Katiba_GL_F + { + AB_barrelTwist=8; + AB_barrelLength=28.7; + }; + class arifle_MX_F + { + AB_barrelTwist=9; + AB_barrelLength=14.5; + }; + class arifle_MX_GL_F + { + AB_barrelTwist=9; + AB_barrelLength=14.5; + }; + class arifle_MX_SW_F + { + AB_barrelTwist=9; + AB_barrelLength=16.0; + }; + class arifle_MXC_F + { + AB_barrelTwist=8; + AB_barrelLength=10.5; + }; + class arifle_MXM_F + { + AB_barrelTwist=9; + AB_barrelLength=18; + }; + class arifle_SDAR_F + { + AB_barrelTwist=11.25; + AB_barrelLength=18; + }; + class SMG_02_F + { + AB_barrelTwist=10; + AB_barrelLength=7.7; + }; + class arifle_TRG20_F + { + AB_barrelTwist=7; + AB_barrelLength=15; + }; + class arifle_TRG21_F + { + AB_barrelTwist=7; + AB_barrelLength=18.1; + }; + class LMG_Zafir_F + { + AB_barrelTwist=12; + AB_barrelLength=18.1; + }; + class arifle_Mk20_F + { + AB_barrelTwist=7; + AB_barrelLength=17.4; + }; + class arifle_Mk20C_F + { + AB_barrelTwist=7; + AB_barrelLength=16; + }; + class arifle_Mk20_GL_F + { + AB_barrelTwist=7; + AB_barrelLength=16; + }; + class SMG_01_F + { + AB_barrelTwist=16; + AB_barrelLength=5.5; + }; + class srifle_DMR_01_F + { + AB_barrelTwist=9.5; + AB_barrelLength=24; + }; + class srifle_EBR_F + { + AB_barrelTwist=12; + AB_barrelLength=24; + }; + class LMG_Mk200_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class srifle_LRR_F + { + AB_barrelTwist=13; + AB_barrelLength=29; + }; + class srifle_GM6_F + { + AB_barrelTwist=15; + AB_barrelLength=43.3; + }; + class HMG_M2 + { + AB_barrelTwist=12; + AB_barrelLength=45; + }; + + class RH_deagle : Pistol_Base_F + { + AB_barrelTwist=19; + AB_barrelLength=6; + }; + class RH_sw659 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=7.44; + }; + class RH_usp : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.41; + }; + class RH_uspm : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=6; + }; + class RH_mak : Pistol_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=3.68; + }; + class RH_m1911 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=5; + }; + class RH_kimber : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=5; + }; + class RH_m9 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.9; + }; + class RH_vz61 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.5; + }; + class RH_tec9 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=5; + }; + class RH_muzi : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=5; + }; + class RH_g18 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.49; + }; + class RH_g17 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.49; + }; + class RH_tt33 : Pistol_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=4.6; + }; + class RH_mk2 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4; + }; + class RH_p226 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.4; + }; + class RH_g19 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4; + }; + class RH_gsh18 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.1; + }; + class RH_mateba : Pistol_Base_F + { + AB_barrelTwist=14; + AB_barrelLength=6; + }; + class RH_python : Pistol_Base_F + { + AB_barrelTwist=14; + AB_barrelLength=6; + }; + class RH_bull : Pistol_Base_F + { + AB_barrelTwist=24; + AB_barrelLength=6.5; + }; + class RH_ttracker : Pistol_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=4; + }; + class RH_mp412 : Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=6; + }; + class RH_fnp45 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.5; + }; + class RH_fn57 : Pistol_Base_F + { + AB_barrelTwist=9.1; + AB_barrelLength=4.8; + }; + class RH_vp70 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.6; + }; + class RH_cz75 : Pistol_Base_F + { + AB_barrelTwist=9.7; + AB_barrelLength=4.7; + }; + + class RH_PDW : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=10; + }; + + class RH_ar10 : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=20.8; + }; + class RH_m4 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class RH_M4sbr : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9; + }; + class RH_M16a1 : Rifle_Base_F + { + AB_barrelTwist=14; + AB_barrelLength=20; + }; + class RH_M16A2 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class RH_M16A3 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class RH_M16A4 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class RH_Mk12mod1 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class RH_SAMR : Rifle_Base_F + { + AB_barrelTwist=7.7; + AB_barrelLength=20; + }; + + class hlc_rifle_ak74 : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class hlc_rifle_aks74u : Rifle_Base_F + { + AB_barrelTwist=6.3; + AB_barrelLength=8.3; + }; + class hlc_rifle_ak47 : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=16.3; + }; + class hlc_rifle_akm : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class hlc_rifle_rpk : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=23.2; + }; + class hlc_rifle_aek971 : Rifle_Base_F + { + AB_barrelTwist=9.5; + AB_barrelLength=17; + }; + class hlc_rifle_saiga12k : Rifle_Base_F + { + AB_barrelTwist=0; + cse_AB_twistDirection=0; + AB_barrelLength=16.9; + }; + class hlc_ar15_base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=11.5; + }; + class hlc_rifle_bcmjack : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class hlc_rifle_Bushmaster300 : Rifle_Base_F + { + AB_barrelTwist=8; + AB_barrelLength=16; + }; + class hlc_rifle_SAMR : Rifle_Base_F + { + AB_barrelTwist=9; + AB_barrelLength=16; + }; + class hlc_rifle_honeybase : Rifle_Base_F + { + AB_barrelTwist=8; + AB_barrelLength=6; + }; + class hlc_rifle_SLRchopmod : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class hlc_rifle_LAR : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class hlc_rifle_c1A1 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21.7; + }; + class hlc_rifle_FAL5061 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=18; + }; + class hlc_rifle_STG58F : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class hlc_rifle_SLR : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21.7; + }; + class hlc_rifle_falosw : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=13; + }; + class hlc_rifle_psg1 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=25.6; + }; + class hlc_rifle_g3sg1 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17.7; + }; + class hlc_rifle_hk51 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=8.31; + }; + class hlc_rifle_hk53 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=8.31; + }; + class hlc_rifle_g3a3 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17.7; + }; + class hlc_M14_base : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + class hlc_rifle_m14sopmod : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=18; + }; + class hlc_lmg_M60E4 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17; + }; + class hlc_lmg_m60 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + + class hlc_smg_mp5k_PDW : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=4.5; + }; + class hlc_smg_mp5a2 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class hlc_smg_mp5a4 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class hlc_smg_mp5n : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class hlc_smg_mp5sd5 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.7; + }; + class hlc_smg_mp5sd6 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.7; + }; + class hlc_smg_9mmar : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class hlc_smg_mp510 : Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=8.9; + }; + class hlc_smg_mp5a3 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + + class hgun_mas_usp_F: Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.41; + }; + class hgun_mas_m23_F: Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=5.87; + }; + class hgun_mas_acp_F: Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=5.03; + }; + class hgun_mas_m9_F: Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=4.9; + }; + class hgun_mas_bhp_F: Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=4.7; + }; + class hgun_mas_glock_F: Pistol_Base_F + { + AB_barrelTwist=9.84; + AB_barrelLength=4.48; + }; + class hgun_mas_glocksf_F: Pistol_Base_F + { + AB_barrelTwist=15.75; + AB_barrelLength=4.60; + }; + class hgun_mas_grach_F: Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=4.4; + }; + class hgun_mas_mak_F: Pistol_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=3.68; + }; + class hgun_mas_sa61_F: Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.5; + }; + class hgun_mas_uzi_F: Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.28; + }; + class arifle_mas_mk16 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=13.8; + }; + class arifle_mas_mk16_l : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class arifle_mas_mk17 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=16; + }; + class srifle_mas_m110 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=20; + magazines[]= + { + "20Rnd_mas_762x51_M118LR_Stanag", + "20Rnd_mas_762x51_Stanag", + "20Rnd_mas_762x51_T_Stanag", + "20Rnd_762x51_Mag" + }; + }; + class arifle_mas_ak_74m : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.34; + }; + class arifle_mas_ak_74m_gl : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.34; + }; + class srifle_mas_svd : Rifle_Base_F + { + AB_barrelTwist=9.4; + AB_barrelLength=24.4; + }; + class srifle_mas_m91 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=29; + }; + class srifle_mas_ksvk : Rifle_Base_F + { + AB_barrelTwist=18; + AB_barrelLength=39.37; + }; + class LMG_mas_rpk_F : Rifle_Base_F + { + AB_barrelTwist=7.68; + AB_barrelLength=23.2; + }; + class LMG_mas_pkm_F : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=25.4; + }; + class arifle_mas_aks74u : Rifle_Base_F + { + AB_barrelTwist=6.3; + AB_barrelLength=8.3; + }; + class arifle_mas_bizon : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=9.1; + }; + class arifle_mas_saiga : Rifle_Base_F + { + AB_barrelTwist=0; + cse_AB_twistDirection=0; + AB_barrelLength=16.93; + }; + class arifle_mas_hk416 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class arifle_mas_hk416_gl : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class arifle_mas_hk416c : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9.0; + }; + class arifle_mas_hk416_m203c : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9.0; + }; + class arifle_mas_hk417c : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=13; + }; + class arifle_mas_m4 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class arifle_mas_m4c : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=10.3; + }; + class arifle_mas_l119 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16; + }; + class arifle_mas_l119_gl : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16; + }; + class arifle_mas_l119_m203 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16; + }; + class arifle_mas_m16 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class arifle_mas_m16_gl : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class srifle_mas_hk417 : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=16.5; + }; + class srifle_mas_sr25 : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=24; + magazines[]= + { + "20Rnd_mas_762x51_M118LR_Stanag", + "20Rnd_mas_762x51_Stanag", + "20Rnd_mas_762x51_T_Stanag", + "20Rnd_762x51_Mag" + }; + }; + class srifle_mas_ebr : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=18; + magazines[]= + { + "20Rnd_mas_762x51_M118LR_Stanag", + "20Rnd_mas_762x51_Stanag", + "20Rnd_mas_762x51_T_Stanag", + "20Rnd_762x51_Mag" + }; + }; + class srifle_mas_m24 : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=24; + magazines[]= + { + "5Rnd_mas_762x51_M118LR_Stanag", + "5Rnd_mas_762x51_Stanag", + "5Rnd_mas_762x51_T_Stanag" + }; + }; + class arifle_mas_mp5 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class arifle_mas_mp5sd : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.7; + }; + class srifle_mas_m107 : Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class LMG_mas_M249_F : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16.3; + }; + class LMG_mas_M249a_F : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class LMG_mas_mk48_F : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=19.75; + }; + class LMG_mas_m240_F : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + class LMG_mas_mg3_F : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22.2; + }; + class arifle_mas_g3 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17.7; + }; + class arifle_mas_g3_m203 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17.7; + }; + class arifle_mas_fal : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class arifle_mas_fal_m203 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class arifle_mas_m1014 : Rifle_Base_F + { + AB_barrelTwist=0; + cse_AB_twistDirection=0; + AB_barrelLength=18.5; + }; + + class BWA3_P8 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.25; + }; + class BWA3_MP7 : Pistol_Base_F + { + AB_barrelTwist=6.3; + AB_barrelLength=7.1; + }; + class BWA3_G36 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18.9; + }; + class BWA3_G36K : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class BWA3_G28_Standard : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=16.5; + }; + class BWA3_G27 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=16; + }; + class BWA3_MG4 : Rifle_Long_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18.9; + }; + class BWA3_MG5 : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21.6; + }; + class BWA3_G82 : Rifle_Long_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + + class Trixie_L131A1 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.5; + }; + class Trixie_XM8_Carbine : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class Trixie_XM8_Compact : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9; + }; + class Trixie_XM8_SAW : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class Trixie_XM8_SAW_NB : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class Trixie_XM8_DMR : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class Trixie_XM8_DMR_NB : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class L129A1_base : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=16; + }; + class Trixie_Enfield : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=25.2; + }; + class Trixie_CZ550_Rail : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=23.622; + }; + class Trixie_FNFAL_Rail : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + + class Trixie_M110 : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=20; + magazines[]= + { + "Trixie_20x762_M118LR_Mag", + "Trixie_20x762_Mag", + "Trixie_10x762_M118LR_Mag", + "Trixie_10x762_Mag" + }; + }; + class Trixie_MK12 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + magazines[]= + { + "Trixie_30x556_Mk262_Mag", + "30Rnd_556x45_Stanag", + "30Rnd_556x45_Stanag_Tracer_Red" + }; + }; + class Trixie_LM308MWS : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=16; + magazines[]= + { + "Trixie_20x762_M118LR_Mag", + "Trixie_20x762_Mag", + "Trixie_10x762_M118LR_Mag", + "Trixie_10x762_Mag" + }; + }; + class Trixie_M14DMR : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + magazines[]= + { + "Trixie_20x762_M118LR_Mag", + "Trixie_20x762_Mag" + }; + }; + class Trixie_M14DMR_NG_Black_Short : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=18; + }; + class Trixie_M14DMR_NG_Short : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=18; + }; + class Trixie_M14 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + class Trixie_M40A3 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24; + magazines[]= + { + "Trixie_5x762_M118LR_Mag", + "Trixie_5x762_Mag" + }; + }; + class Trixie_CZ750 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=26; + magazines[]= + { + "Trixie_10x762_M118LR_Mag", + "Trixie_10x762_Mag" + }; + }; + class Trixie_M24 : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=24; + magazines[]= + { + "Trixie_5x762_M118LR_Mag", + "Trixie_5x762_Mag" + }; + }; + class Trixie_AWM338 : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=27; + }; + class Trixie_M107 : Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class Trixie_AS50 : Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class L110A1_base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=13.7; + }; + class Trixie_L86A2_base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=25.4; + }; + class Trixie_l85a2_base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20.4; + }; + class L7A2_base : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + + class rhs_weap_pya : Pistol_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=4.4; + }; + class rhs_weap_pkp : Rifle_Long_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=25.9; + }; + class rhs_weap_pkm : Rifle_Long_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=25.4; + }; + class rhs_weap_rpk74m : Rifle_Long_Base_F + { + AB_barrelTwist=7.68; + AB_barrelLength=23.2; + }; + class rhs_weap_rpk74 : Rifle_Long_Base_F + { + AB_barrelTwist=7.68; + AB_barrelLength=23.2; + }; + class rhs_weap_ak74m : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class rhs_weap_aks74u : Rifle_Base_F + { + AB_barrelTwist=6.3; + AB_barrelLength=8.3; + }; + class rhs_weap_akm : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class rhs_weap_svd : Rifle_Base_F + { + AB_barrelTwist=9.4; + AB_barrelLength=24.4; + }; + class rhs_weap_svds : Rifle_Base_F + { + AB_barrelTwist=9.4; + AB_barrelLength=22.2; + }; + class rhs_weap_m4_Base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class rhs_weap_m16a4 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class rhs_weap_m16a4_carryhandle : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class rhs_weap_m16a4_grip : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class rhs_weap_m240B : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + class rhs_weap_m249_pip : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16.3; + }; + + class R3F_PAMAS : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.9; + }; + class R3F_Famas_F1: Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=19.2; + }; + class R3F_Famas_surb: Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=15.9; + }; + class R3F_Minimi: Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=13.7; + }; + class R3F_Minimi_762: Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=19.8; + }; + class R3F_FRF2: Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=25.59; + }; + class R3F_PGM_Hecate_II: Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=27.6; + }; + class R3F_HK417S_HG : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=12; + }; + class R3F_HK417M : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=16; + }; + class R3F_HK417L : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=20; + }; + class R3F_M107 : Rifle_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class R3F_HK416M : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14; + }; + class R3F_MP5SD : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.7; + }; + + class CUP_hgun_Colt1911 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=5; + }; + class CUP_sgun_AA12 : Rifle_Base_F + { + AB_barrelTwist=0; + AB_twistDirection=0; + AB_barrelLength=18; + }; + class CUP_arifle_AK_Base : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=16.3; + }; + class CUP_arifle_AK107_Base : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class CUP_arifle_AKS_Base : Rifle_Base_F + { + AB_barrelTwist=7.87; + AB_barrelLength=16.3; + }; + class CUP_arifle_AKS74U : Rifle_Base_F + { + AB_barrelTwist=6.3; + AB_barrelLength=8.3; + }; + class CUP_arifle_RPK74 : Rifle_Long_Base_F + { + AB_barrelTwist=7.68; + AB_barrelLength=23.2; + }; + class CUP_srifle_AS50 : Rifle_Long_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class CUP_srifle_AWM_Base : Rifle_Long_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=27; + }; + class CUP_smg_bizon : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=9.1; + }; + class CUP_hgun_Compact : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=3.74; + }; + class CUP_srifle_CZ750 : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=26; + }; + class CUP_arifle_CZ805_Base : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=14; + }; + class CUP_arifle_CZ805_A1 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=14; + }; + class CUP_arifle_CZ805_A2 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=10.9; + }; + class CUP_srifle_DMR : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + class CUP_hgun_Duty : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=3.74; + }; + class CUP_arifle_FNFAL : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=21; + }; + class CUP_arifle_G36A : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18.9; + }; + class CUP_arifle_G36K : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class CUP_arifle_G36C : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9; + }; + class CUP_arifle_MG36 : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18.9; + }; + class CUP_hgun_Glock17 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.49; + }; + class CUP_srifle_CZ550 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=23.622; + }; + class CUP_srifle_ksvk : Rifle_Long_Base_F + { + AB_barrelTwist=18; + AB_barrelLength=39.37; + }; + class CUP_lmg_L7A2 : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + class CUP_arifle_L85A2_Base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20.4; + }; + class CUP_lmg_L110A1 : Rifle_Long_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=13.7; + }; + class CUP_srifle_LeeEnfield : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=25.2; + }; + class CUP_hgun_M9 : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=4.9; + }; + class CUP_srifle_M14 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + class CUP_arifle_M16_Base : Rifle_Base_F + { + AB_barrelTwist=14; + AB_barrelLength=20; + }; + class CUP_arifle_M4_Base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14.5; + }; + class CUP_srifle_Mk12SPR : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class CUP_srifle_M24_des : Rifle_Base_F + { + AB_barrelTwist=11.25; + AB_barrelLength=24; + }; + class CUP_lmg_M60A4 : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=17; + }; + class CUP_srifle_M107_Base : Rifle_Long_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=29; + }; + class CUP_srifle_M110 : Rifle_Base_F + { + AB_barrelTwist=11; + AB_barrelLength=20; + }; + class CUP_lmg_M240 : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + class CUP_lmg_M249_para : Rifle_Long_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=16.3; + }; + class CUP_lmg_M249 : Rifle_Long_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class CUP_sgun_M1014 : Rifle_Base_F + { + AB_twistDirection=0; + AB_barrelTwist=0; + AB_barrelLength=18.5; + }; + class CUP_hgun_Makarov : Pistol_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=3.68; + }; + class CUP_hgun_MicroUzi : Pistol_Base_F + { + AB_barrelTwist=9.8; + AB_barrelLength=5; + }; + class CUP_lmg_Mk48_Base : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=19.75; + }; + class CUP_smg_MP5SD6 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=5.7; + }; + class CUP_smg_MP5A5 : Rifle_Base_F + { + AB_barrelTwist=10; + AB_barrelLength=8.9; + }; + class CUP_hgun_PB6P9 : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=4.1; + }; + class CUP_hgun_Phantom : Rifle_Base_F + { + AB_barrelTwist=9.7; + AB_barrelLength=4.7; + }; + class CUP_lmg_PKM : Rifle_Long_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=25.4; + }; + class CUP_lmg_Pecheneg : Rifle_Long_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=25.9; + }; + class CUP_hgun_TaurusTracker455 : Pistol_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=4; + }; + class CUP_arifle_Sa58P : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=15.4; + }; + class CUP_arifle_Sa58V : Rifle_Base_F + { + AB_barrelTwist=9.45; + AB_barrelLength=15.4; + }; + class CUP_hgun_SA61 : Pistol_Base_F + { + AB_barrelTwist=16; + AB_barrelLength=4.5; + }; + class CUP_sgun_Saiga12K: Rifle_Base_F + { + AB_barrelTwist=0; + AB_twistDirection=0; + AB_barrelLength=16.9; + } + class CUP_arifle_Mk16_CQC : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=10; + }; + class CUP_arifle_Mk16_STD : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=14; + }; + class CUP_arifle_Mk16_SV : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=18; + }; + class CUP_arifle_Mk17_CQC : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=13; + }; + class CUP_arifle_Mk17_STD : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=16; + }; + class CUP_arifle_Mk20 : Rifle_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=20; + }; + class CUP_srifle_SVD : Rifle_Base_F + { + AB_barrelTwist=9.4; + AB_barrelLength=24.4; + }; + class CUP_lmg_UK59 : Rifle_Long_Base_F + { + AB_barrelTwist=15; + AB_barrelLength=21.7; + }; + class CUP_DSHKM_W : MGun + { + AB_barrelTwist=15; + AB_barrelLength=42.1; + }; + class CUP_KPVT_W : MGun + { + AB_barrelTwist=17.91; + AB_barrelLength=53; + }; + class CUP_KPVB_W : MGun + { + AB_barrelTwist=17.91; + AB_barrelLength=53; + }; + class CUP_M134 : MGunCore + { + AB_barrelTwist=12; + AB_barrelLength=22; + }; + class CUP_M240_veh_W : Rifle_Long_Base_F + { + AB_barrelTwist=12; + AB_barrelLength=24.8; + }; + class CUP_PKT_W : MGun + { + AB_barrelTwist=9.45; + AB_barrelLength=28.43; + }; + class CUP_srifle_VSSVintorez : Rifle_Base_F + { + AB_barrelTwist=8.3; + AB_barrelLength=7.9; + }; + class CUP_arifle_XM8_Base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class CUP_arifle_XM8_Carbine : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class CUP_arifle_xm8_sharpshooter : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class CUP_arifle_xm8_SAW : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=20; + }; + class CUP_arifle_XM8_Compact : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=9; + }; + class CUP_arifle_XM8_Railed_Base : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; + class CUP_arifle_XM8_Carbine_FG : Rifle_Base_F + { + AB_barrelTwist=7; + AB_barrelLength=12.5; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/Combat_Space_Enhancement.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/Combat_Space_Enhancement.h new file mode 100644 index 0000000000..aa5753b490 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/Combat_Space_Enhancement.h @@ -0,0 +1,16 @@ +class Combat_Space_Enhancement { + class cfgModules { + class cse_AB_moduleAdvancedBallistics { + init = "call compile preprocessFile 'cse\cse_sys_ballistics\advancedballistics\init.sqf';"; + name = "Advanced Ballistics"; + class EventHandlers { + class AllVehicles { + fired = "call cse_ab_ballistics_fnc_advanced_ballistics; false"; + }; + class CAManBase { + take = "call cse_ab_ballistics_fnc_synchronize_scope_zero; false"; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/UI.h b/TO_MERGE/cse/sys_ballistics/advancedballistics/UI.h new file mode 100644 index 0000000000..11255d108c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/UI.h @@ -0,0 +1 @@ +#include "ui\rscTitles.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/config.cpp b/TO_MERGE/cse/sys_ballistics/advancedballistics/config.cpp new file mode 100644 index 0000000000..cdc4523906 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/config.cpp @@ -0,0 +1,44 @@ +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 + +class CfgPatches +{ + class cse_ab_advancedballistics + { + units[]={}; + weapons[]={}; + requiredVersion=1.26; + requiredAddons[]= + { + + }; + version="2.7"; + author[]= + { + "Ruthberg" + }; + }; +}; +class CfgAddons +{ + class PreloadAddons + { + class cse_ab_advancedballistics + { + list[]= + { + "cse_ab_advancedballistics" + }; + }; + }; +}; + +#include "CfgAmmo.h" +#include "CfgMagazines.h" +#include "CfgWeapons.h" +#include "CfgSounds.h" +#include "CfgVehicles.h" +#include "CfgFunctions.h" +#include "Combat_Space_Enhancement.h" +#include "UI.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor.paa new file mode 100644 index 0000000000000000000000000000000000000000..1114b418262930b539469962e544ad5caec58c95 GIT binary patch literal 41318 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 G5&r{wS==`O literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor_marker.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/protractor_marker.paa new file mode 100644 index 0000000000000000000000000000000000000000..a97be42a73b8ddddc9aaf455f34dfdb4a4ffe1f6 GIT binary patch literal 22587 zcmeI4O-NKx7>2()f2kN_g1Hbn+lF6;(d+rfkq)7UH5oM3trK_ z4q2_2bjJ;UIA9CIlWJmN~4+k=vnDqnEADTH6=<$1w^&2n^|? zT7IBnak^lFsKDQPjl*(UjD5PpBjj)0>ehUt$yqIr@4M8aQB5Qr2u#U56TT#AHV~601rw5@Bki^8?Zir2k-zMlmg%ZJSaE(zw1L& zUwn9ta|UF>0RR2kL(f_jt~TtDf@p`sRDi4;Ue`+f7Zu*WTc( zzArvd#zQE?y3V6dvFGAmwGl5ydGsmvM3j>eCu1_En7HragAk4xBYs#jsTpx(T#f$! z%M(js6!?E{_#fj1ze)wbD|j{M0{8(uU_QWnfcZcv03N`Das$=}@BkjbgHixIfCuFU ztPkJ;Jb(wK0C)fo$_-c_zyo*y4@!Yt;lU%n1E46=uUzSt*&*}?)0XK4d4wO}2lzoL z03Nc#LoNBHT)rtArzLWlB6(Jg*uwMAJf|U&|L!X1sKsX&gotq3B9)jUk}Km;MZQVy zzspF|X@E80g6#!rV zhOY|wO^LRY2Qdu0)`kV!ww117V;jlaOk*1ACJnod4nnHfTOAWG?1PcB*~b z+mlCm@?%l0)M$2P`XTPz_FvNuHuR^OwXSF0{H0koo>5s(2lNllKlyE C;}%H( literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind0.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind0.paa new file mode 100644 index 0000000000000000000000000000000000000000..c049caf47e632796f568c14e56de06771977b2ba GIT binary patch literal 22016 zcmeHPQAkr!7(UVrLDZQw0ucmdrSr+N`deeo@$$cO?T zdk{(~?u+%Ri>Rjxb(9YpJp|2V45HoEf42Q+(--w+wR^tHxp=>E@!bFa{_p?KIomzu z=|I5Odm#|?*@O^@MB-=$5BM%goTfwKfUnChaT%QwU-tXEy>vZ6=QLg1?h)dCuMm&> zgxI9>;KzjgA6|98>`(!^0ERyh4|xwj570wC8jv5M2k4;`_0as(2(`H*I~>2RQ6n5% zXoxXpn}Dqu-}TX(k<{n-ALjSu(&G5)oVm^z{AWF2Rex0OM4zQobJD!be5Yc=lX~MZ zR~UnTYw_=RYlI#dBb&@GXEnyoU+KiH^luO2W1{1(vt!E181Ycr@o?f(GV(JxtkyFs zW#xZ8V=}*$-|4FRM;YVl_2)xt535!gga6Xze=mOngUj*MyLgKE4fao)t1~9}CWo-E zX#kWF z0>=M(pTdyZDD|8=T=_AALqJQ-=?`rbaj*brN+!ZLI&A6S0;lQWR{|JU|5()3HnjRv#F|MFP- zJ3k zM%s*#diH;7u(Z>-T`mR6y+*SKn{{rIHp!xWvlu(B9&XdD&Ku+-Bc$Bq>Z4M(aPVr^ zxhKqBhYWL1r|dufC9l&({TJZ9_Ev}rxh&e;VuWe$81>kWMq{Y3NH;Z0_Cqmt%W(&> ZzmV_7Mj4g-StmkuXUgui@@?7P{sOn}!Cn9W literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind1.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind1.paa new file mode 100644 index 0000000000000000000000000000000000000000..47d996fe67e0c9e06fa95c916cd4699d03876db5 GIT binary patch literal 22016 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 CPY9v_ literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind11.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind11.paa new file mode 100644 index 0000000000000000000000000000000000000000..469cdedadab329aa760cbad3b769c6b5904c6717 GIT binary patch literal 22016 zcmeHPe{2&~9Dgj+j*+cnKbVN!8defS0U_q1%-J=VZqxB2f{V$V$u`U&uDAahe=x>0 z$S`EnB2i;W6V&jB31DzX2#ErsY-xgsWOQx9gl;aftuv{cOgf(L_4d8eOHAO8E!^w( zC70YMce#7t&*%H&-n)1A5Ur?iY+YYb<47ljM5ED%s_297Cf99KB1ogB|&8^>Fm z&Q0ZPe>dCqvYpP&gdE&Ti1!sj!fd z9xxs-9uf>-JYYO z$$HbL7FxN+pl`vLITk$9+7B4@R~axWAKSJwz1?yQ`oHDh9v|Q5P1QZwzT%1Yy3luJ zAvliuC-Y-8J~F?kk!zLu)1YTBt$NS)qUQy`?(3A=>F33O$(ngqZli`dU=6V`^Z&Yl zB>&SluEoD)giicsj%oSb{7FyK0`|y<`WjPTH98aVS=`C;z0x=WdafP2?W6Rz32^3> z_OcM_Eo?r^4Z2&Vdw$_^$Lo7R*gk#6SBLRE!-qazjE-0Iu;Q-B!=U$*lT*~!_E+2i zxNViB(qpUg*xc8?3l@uf%wt;X^ckdHJ%k zBkY!^LGPvGbjn0yLBOKfo9gx`@p$)Y@xJ8GcyafE-euo^Y6%_3=Xc;kG=C|&#ELsh z@nGL01FX1r;rtx%A)4Oyv&rMP#lu{Bmf~6Cwyr(#Z5EE-660Ob^tVxWcvRv@(CFRcx5se&7IzWg$LRj@l5YIA>S&~kPI2qh z{J#7rR@}R@Fy3eQFuLCQ{ud4@Z;m_VJD_*=WmepO!0{XKq36r!ctIauPt#Na_LYv_ z8lW`V26%$JbZ415v)Xa|#uWxWME7@lAhS7u?^{zwZ_)i3?Nb>@mHdTzqu!hW z^mq079peGx0psDp$p_{99{@QJm6)bjp4P}7~)Kt_OyDF-^dOa8a?d-bqx~#p%HQ%B!zu7D7GOY|(T<=oQcXJ@J=fbmz*BUG8 zI=KG}`&uh+L~4lkg?EAdxt(G!%gWf9yiBF!*LS?BG_74aEVVor`C7|o<`2Z4*3CJZ zyv)2PdTOW0%Tn@muj!xe|2h2HyN7;+_%;c?EaUNhzRb9#4D8LldBhSpA#VO&^mcOn zvQ0+1ug*_=Ca16OqT~G9cA@LF==!CaeO6*6g#TzzZIHH%hD&v2Cx2XV1r8t5zSf;> zdn`kW9F}%yUmGlq?48xG3(~eFr`_lMk^KSo1A@8IFZ+hnaG>V*i*UbXvs~8mhq%3o z)j$^ihnBfq?H44ypOy3;(1xY6?N4)k{Tx0O$p1B}Hjq`1&3m{EuJiwQTz~$fy0A2L zY}|k5;Jv%4v`=YlbdR2e`^~>kH#4<$xb9~WK?cd-)1oF_w@WHnHn}Uh3fC)*?<>t( Xw592~mCiCM=kp1r`TVM8T@v~azUm9A literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind12.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind12.paa new file mode 100644 index 0000000000000000000000000000000000000000..11e19553ffee6463aec060a543d41a811313cb6a GIT binary patch literal 22016 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 PEh5_Q$FGSrb|?EEjXq+_ literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind2.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind2.paa new file mode 100644 index 0000000000000000000000000000000000000000..585944af45e23b600ba751e17ac21373deac33ab GIT binary patch literal 22016 zcmeHPYiJx*6uzmuNvcT`LeeC*+a^tlXpKUlt75}u4Q^aXwKi46l7QLRN7~K$t5CFT zY)S<|Ypey8rokfkL#5kPE(k(upry3Y=8v%HYE$zfX&TeAArQNp@!Xl7I}Z>QBy}cd zU}3(UVdmcNeCIJUXU476)%myA*1h6)F~*X~WTuK=^=}bafkogte|k4fK>naJK>k4fpsRuM1Nnn9{h{crx21x=o82t4F%eadU$dSMm~R33}3z9 zj9!4aVRG^otosmG%*H(NZ*!%d$o}@SztvtZ?Ya<|;UQ_yy=h@-Jw9BTR&FawbR6y9 zILSSOQTPiMaV%e-h!>tXV(ak8Dx6Qn zE#GaQaz#K@5A|1hbs{g-jd(rf4^;rjhtvFF6A!fQfDnN5TQj8$DNSu1h)c)IQ@aF! zMa=!NA7SUtbTMM5@j>&^7(n|L4Bd!qFw~z9&nZdeazxY=svcI398UKucLY@Nx^B=% zPx>5U;?vBh-T4Tx;D?oPNrCn)8cxrQd3VeBQT}^$PMObJ!0k`P&Gp8bxI8bE&R zt_SP*9~j`xs|@*M?X=RH%8cy5`Mz~CFV$Z1?%o_%#O5o^DG%Svd;D1%E^4lj;R1 zF8cL)y zm-e9^mbFm5AvAz|*j*3S@lUYjouh_&bmLjLeuWf+^Q}EEii>Um)qL{EAlxtStd{Y` zdOX4!1IU-%`KXv_YQ4`;kGj}%@H|AnezE)fX#CF7E7_CmDHw1{{3Sh;o=MN-&lJzJ z>ko>D6b~sLQaq%1NbwMJ0mTF7#Df~~4S;-US#oo7b14Q`Aw7^DNDqv;pXVWCn@HBR zW50em5t&8*$eiZYKSci!P{o*{*j(^UwV&d z_E-5>{xn86`=}!;N_8jaxa74zNoDlF6^T_R(!;n9x;k6y+c#}boja3sn)!t6iFU?0| z;9lvqjFmAaJ~XH;_i7mbxAPai2Wcd*dkXm|n-FPb@!l5kThiVfeC4qrcv8O2Q2P^< zNxA#JkmFnAGReKyoOW`4E6>@ikFUIrcwh0{HV%xWL99|s+li~T}tbXI>1Jq50 zd|2&~FKz{jZ;fipU+wmH+w%|e@Y9Buus&hIQtfZigmvG*ql Cks3e% literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind3.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind3.paa new file mode 100644 index 0000000000000000000000000000000000000000..16b823a9f3086d54b3d7722d2d5574f100140ac9 GIT binary patch literal 22016 zcmeI4KWGzC9LHZvj1^NTG1Z|){F5O#h>8X+4vB??la{NriXcKrp@TMd)hQK=ZW;nE z#Wb#B9dyXxq)P)G6cIw8i&7L3gb;O$oWI{)-g}oUO;BtazA0($+q)$1ec$)mQ^tS!2*PQ=FJto!K7dMX|_qqMz1*ZZ{bU{Z)j(?UGH zB*X??+rKREV?@>Q{Dex-1~mLY9<&4C0X*n5pgw{J@BkjP1KQ@Sq*&6&^go$c2oYNA_p9R7|hmd*YQ^_85A5 z@W1yWjbAZ+M2^>)r=%lGEbad%AGV6=m5E$P>f|@?4|`{0f1sMF?#%qO|74H-DE&5S z&<%e?iyxz}$X`(}u|bj*zTGPAd$u;eLQRs-f1+X)tkvsE2cPqvho9ws*=nip{-Ui+ zRrlu>X`^5F2fE3RsTY}gX=G0MD>ESd>^AKaMwaTm;{WJI>gI?mFM;>goBieFw&_o| z`HS{A4s>h&F+La{b^!U5Ge7cxJb(w(1Jnbj5~3cW9-Q@Sq)Nmxm~S2f&cJU%Pjccfj$$PG*5`kq6`fdC(4khu+}f zrL$~xj~vfQTGqI}x}=shjlV4pRtmqfa(~`FUN2+&-}-Ex+E>i0WwtVrvVEOuUvX`I z#@Z=-)LfaLtab`cPQd{*YKu z%{Jkd*d7Y=@j>7zsd literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind4.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind4.paa new file mode 100644 index 0000000000000000000000000000000000000000..a5bd119889a087e37f898a217fb98eea8b1e4e0c GIT binary patch literal 22016 zcmeHPZD>w2; zIyRURD4Vd+?%$w4)RtXT7|8~k5{gw}qngzX7qxz@I6FqAA9v@y*Y}*8gFn_;+`Y?t zA@n}I>Fqhs^FHr;PVPBz=?x9_q4f>h>hl<5BO@dE27a?X2w3L_;D-8*0l+!@1^A6X zV3VJpxAE6ue)7p?#yUcbecsI2Z~XPok2bi6U%Vgwp#c1ZF!4e0AQ>P(kRN0;P<|vo zkRQkok^%Aq`9Vel)d%te`GNc(86ZE9A7nI8eIP$P+7HWEW30L{mWTYf4BTFg7-NX= zqxo|hKd=0xMN(S(Bv6ngT3B?&foxIr}Zz}+gtk;=-ZMO`lZ@tOg;c) z#&6XyKWUAACvd!V_GSJjh_jtPyZ8Ua9?&`))SG*W`sgXi_J zM32;W1=|4mUcBG#{mr)aRV($_e@ct&2wVj@jpt=YM-8wOagE*>3mtO{|GxC~0f-NQ zvyDHe^|$sL@UyJPJMKLM5B09R%ZqcrU)1CE-xt@BzRsD?%>4-TmG!u(Pur880QZ`H zUULS{#uA7t@3eMYK0*FPKJ4!2nTIp$@ybhDWa$vJ-qcrLUJ6~PL;TEjeXQ@G)c19& z$A-knkKOe4DD~KPUyGC*Qzld2<{yoE92f2H()IX}7sPs&(ljs5RF4H8|Fynl--2Iv zzl?ealZ!smY;`&(!PD;qn)#`eG4z~v*H3VA6|Y<*Y{h- z*Cls0)mrm+b&%%IpfK`h_jvaPd|~VOs%RDI=Oq2?9$(ZxlL4pX1JaB10tP5vab!#J zK=D9+pnO32z|4e{4=Eo~KBRm|`H=FVWPtqeWc=WV?*Q-!-ih`nLpu^qd=uXo3-FWT z;orr>)5>GU90UJHf8I5B9G{-y8FE$Yp7>KX%q*v^>R+ z_c%@$Z4vox`^CW3IA1x7{Vh4-tYx&%Dg9%&8FM#%2Hi21t(5nJAEQ?gmz{O?wvKs9 zf9L<~3#ZThvK9MRoaASg$NCj#db}yiV|}OPAGN*nS>sXbHVu!%@{QUb!X^V4zr+Xe z0SshoJS<=f7=tewG>>ehVY>Ujus3sO`_HgP`Xv^LAUaPD*2l%EAUpN>4|D5i>l1Uy}h`mz`Z}esu)c^nh literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind5.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind5.paa new file mode 100644 index 0000000000000000000000000000000000000000..43398e2960c4e1c889cd1f2644f81b9baacac3ac GIT binary patch literal 22016 zcmeHPeN0R?bm zSk#~qqb`w1qEX{tFm*3k)PSf!Le$_8%IYSrj7i2?O5G^h?s@Mk=hihbtRNOHr%99d zOWSwv{r%24_ndp*ZM8xr_A@Ng7sIB4eMW}Y&^N;m8I2_d zdfiCh$LPgtrG&gyMo8-cLR|EHzqrm^G-rk}S@qiYL(?R);;5lH!)E;uaOxdvvs24$Ap}H+*idA33?+2^b;< zVlnJPGoY{X4SBACo`v7ZS9XUpe4uV(ZQ- zX~_bN`irGM`N*IR_H{COmG!c;iH2bR#~BX5sJB>pZ}&=;BQ(T=zNG`RbaM9&1J)cq zvEE5T0$|jCW$V8#BA>hSbdTrSpKVOu(E9lM@)Sue#r1LEW6t0?KPwz>zCiEeOSLSj)9NG@*V5nkFogv?BU%oo_)^i>o+naU)i9YS_7ZQy1&?dh=GObksL9f z-|z5$CI{Qt?Uele(-}WqkDuju%#i?eEQ?(AqF7+As@&GV*u>|Dgm?yvKxEFLH@qA`;Gm=Zrk4!vCWa^t*tt0`=uYopDFrdDi;WS4o}Os z?NzSl>VS zTeoMgt%HyE9I;KWreiZ}AGEW4RoHwb*7k+%hZy*;;)#yv=zo_0tIMYBgAOfpn1eK} z&i?wFZ43QVJ)&&bdH&$#t`9Q)x3E(*EFIcfTk$iD zSN+V=PU~r7%IO^!wC5)Sh1+d$*?^O)+drDKHIT|6kr%?#mWoDH#^>#lc`(sD0=*Bh^*8&^1DF5+ literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind6.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind6.paa new file mode 100644 index 0000000000000000000000000000000000000000..3bd9a9c6764fd0d669eee58ca91c25c67d5e1e01 GIT binary patch literal 22016 zcmeHPO-K|`9RC}u*}+d1D$G(`WC;Q*6w<<71J}iBgEXQ;WS%^zbg_sQKOnqi7}CLy zE`g^?!(M`yAm{@MJGy!(+90GLr9*^k)Blb8p6fu6&vqVEpL?g{a zaX$Wi>yh6P(4UtLYQQJJs0Z}0UIF+4eppun@)3T3AGV_(${&jMGSTr>>G#YdG5Xv} z%qpz<1ng3MR|j%G^RD^5-o3Pwca4(*00#dm3*=wu!6kZt|7}?tt7q^J{xSZWJD$P+ z@IU+y|MLZqZ3N8!%*q4gzgc|Sy-k_FgMaXk@gL(q#(y)P_dxz5|B?U5f8;;%UnU{u z|7MK`82`=U+wLvq|EAvWou=@h_s!4))&CQ*sxkZFpXB&|W3e_dF8|4!luBldM&1tG zoL4w0A9Jsloc`Hnco&85_`-ue#pj;yzdl$i0}|SNtEXBNKD^jpyfAfWL1FN}Rsq-4 zBmO$?_xn8k{9oC$Wz||g52*eXP{UxVUckS*_zyho>Wqud8pZdqkKL=YwTU@}!MD5k zcJjIJqG&A=?K5v_U}=56kc&W}fpS#}%cWhoEuy1vKrmWX$alO(tmqyOL^`iK8@ zz9IjR{|1eJb+1I*@XIR+rT@Ki_oA^c=DdcWd9kbGM^(p)>VNe&EAe8$oa;Y&Mmu`Q zqp$aJXYNPmCb0~y^q}S-z*{pPEuj)(IjU{Dl)W;taT?h+Hc`AVS*-8wq`N;6$24w? z8v1;^Z&m$FZ=c>#)@91_t9r+&@rkdouUz4D^B?{sT8Bl8)>}nfK0T77ak|_8-`}4v zmjdOxM%Ok~#!^4uF=eMITo+-?PE*+Vc_;QeY!ca|P5f;0qLlU{*Cui{)4uo8#+$x$ zE2BdG#=rgkY|56)qJ>`3UX-#(<@1Z2)O7Lgx6?R{Ozh=|2C5vq57{eG{$E4@VLOjpa@YjVlG zwEf9LQVy!HUc9oWKgEe~j_upe)c6lo1c)LkIzk2aJah8!$g& zJYYOvJcJOyc(^k0aJQScdHGj&BfeJ#Utn;o;G4@8zn)e6Mi%I^W#WL2yb7wj^H8RQTXrF@XnM(c%+H2HhP zKeG788lGvS=v=n5Di{2pMVj6lIo_fJIo9+=eIm=pJ9xgzL_;3@opX^E2Xu-6c|#YU z=wQgVPf$;uu&6I2QSl}3QzmyM*-_v69lQdjk{0k4Y^TpyGaEMO(dGP;@ z&F!MwB|HwY+U?i6eaqht?;oESBkz!T-yh)r&EH`E$T$LcsGcu}hmyu?m%R`6rjvx0 zlf`egfvm@RQKA6gp*B7wEBePxCj;$dz#*?EP6EutryKlE`VIh@SpcAa!XY4IiF{_)uH^yOcfG&-}bSpWayn z`;GgxwarBTbojQL`^dpFJw-Mv;BhJZ)b@Sy)VEcBbLB3uKkm1V5^s~(3$ohmRobId z%%2&ACWq>3`LW*A!>pe8s7EV!te^eWe!*&&^TX!34Z@&H{8B6SuT}6N{cPan-PRq4 z!2TqS)l(@7JWN~>ee6B-ngnG$p&Ud2_=0%+Gai{-CdaWC4F*543R~U)Z*x1h%1`?) ziEM#Uv{5i2rP~^p|sjN^Pg99 z5?)NV>G>TpO-+{>wgv^P#t*vlhi}>G0sStQW^pfBw=SV3{oVf!oI!du>U!F!*T!YS k&y;(=;}mMG+Sqw!cyDM}9nGk0X*G`yQotEtn4q?Q0xmTZ$N&HU literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind8.paa b/TO_MERGE/cse/sys_ballistics/advancedballistics/data/wind8.paa new file mode 100644 index 0000000000000000000000000000000000000000..e51ad530c5348a0ed13ec379da905ec6fbd2c9cf GIT binary patch literal 22016 zcmeHPZD?Cn7(SbA8Z7D3iA&eC(z3d(l+oc>plr~jgT$)Ek8V~rDm1mWYTEo02aa^Q zt@uMTg(*m95%xn+vHS4+kikavhuXE<5HVfKs$08{4z{e3Ni?^|_vG%qU-+Z_Gs(?+ zA>=;y-X!-t=Xu`q-rV=xVi5`jcJ2th7${ zeAW-^gYX)Hl@Fd{?8r{WhIcV`6<$kU2IY77wd3UvY5-OU6Cb1podNO#`9W6$#Ygf3 z`GNePGeCYIKj>S43Hnl54su(XMCu<$@`Oo6X!_(g`xjdr+H6<@0BF> z_tQU%v{0h6h#S5e+8l>xi(Q5Fjh>@n!WKPF}bY{K@nTyD&c zh!F|Z`xDcwhHXgoYWTh&2-_oGSp8jo@`&h*NG^DfHlDnl7JrGXo^PzVdSc&L?4CS4r-#yuppVgN z$~W%wfgVAA@*UTIVa_*#e~9=Z4{Q3Uz1@7bS)9@GjSj&#CF_R|VEdaW-^fV-`N(%Y zSkJ%qGjqOCa~txFmj~X(_SP%4*e^Wne+8&sJ3$ZM%Pq*Ad?%cre3bU_{%w4q8~d*(BU8=zR>asU#Qu4+9yZQGeArLdugDL2 zB46=CkDKFzcOl&Eg_Hr?Q#L0WeY{JEnZ6 zJ_Eq5eUfBEGSb8VE2Ia~!++_asvquQ@ajaN=)>K{O}A~T7tWvF?uhQu+W$A(%)YrW zg!s_{DKb^!P(pt5D>o95f1m3Q_!7P&qxWa|~)nP~o8E7NrCFRXauI%qCaY`GAhK4X{` zvGzCLSH*_1cTWQN8MSXbuH41Dwm}ooFAt|OGucD0YS?+LG3%LlqYw8NcjWlc_S-$) zQ2SH{u>Xk<;zKe(dRW@^OAXAbWAZ_R>O!=sv?U;o-`@1GHanzZP7W*o-)!X{ndj3A z!|W&5W!^be+O-+`tEd;w?*U$x)mYNpz@#g3%#h~Zlhtcis#oIqwLIXD}yixBM$mK5NvxdAZoJk9Vyz(7fV3nAANU(PZjfrVN}GnUx&c6p?k6 zD68@zD4IR4XNSu@U+eKs=9GVndUik?)f#5+Ztsn^T4|r%;=k0c8c5|sl+N|;|EZN8G?!5Wt`^{{^ zWVf2hWITH;nUDL4s9vvcv*I)H6C9gj<2V^Vp5S4*(uxL-}(u8UcouzwL@*-g?cf>9|&VBrHca=L+Y^;xTwTu&=`edK}Y|a@pCRyD5eK6rCjf z@3sCyKDGkrA30M)4^{wvfFEoUzyo-|c!2Q`;~~aFtpIoc584fwAHV~601sLL@BkjP z8!$hB2k-zMv;yD(JZLvye%L4;V*Cz(fKqy+s*x4o{=iy#fj{8~_yK;<3V;W1^3atN zYp|*%?jCztV^s86`fJb2Q=1o)>we%GkIwVK9AhHY2q zm)B>SY@4~p<()xUJ~+j3Z&k*j$dK#XMx@Dhk#TaB@49f4>r;Q4`P=+EsDpnN?GIbc oQ1pcdIG%nZ)9mg^xYFnerd( 2) then { + _opticsName = (primaryWeaponItems player) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); +}; +if (_opticType != 2 && !(currentWeapon player in ["Binocular", "Rangefinder", "Laserdesignator"])) exitWith { false }; + +_parallax = player getVariable [format["cse_AB_Parallax:%1", _opticsName], 0]; + +switch (_direction) do +{ + case 0: + { + if (_parallax > 0) then { + _parallax = _parallax + 100; + }; + if (_parallax > 1000) then { + _parallax = 0; + }; + }; + case 1: + { + if (_parallax > 100) then { + _parallax = _parallax - 100; + }; + if (_parallax == 0) then { + _parallax = 1000; + }; + }; +}; + +cse_AB_WindInfo = false; +0 cutText ["", "PLAIN"]; +cse_AB_Protractor = false; +1 cutText ["", "PLAIN"]; + +2 cutRsc ["RscTurretDial", "PLAIN"]; + +if (_parallax > 0) then { + __ctrl ctrlSetText format["%1 m", round(_parallax)]; +} else { + __ctrl ctrlSetText "infinity"; +}; +__ctrl ctrlSetTextColor [0.8, 0.0, 0.0, 1.0]; + +if (_parallax != player getVariable [format["cse_AB_Parallax:%1", _opticsName], 0]) then { + player setVariable [format["cse_AB_Parallax:%1", _opticsName], _parallax, false]; + PlaySound "cse_AB_scope_click"; +}; + +true diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_adjust_turret.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_adjust_turret.sqf new file mode 100644 index 0000000000..613a266f72 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_adjust_turret.sqf @@ -0,0 +1,91 @@ +#include "defines.h" + +#define __dsp (uiNamespace getVariable "RscTurretDial") +#define __ctrl (__dsp displayCtrl 132949) + +private ["_opticsName", "_opticType", "_scopeStep", "_turretAndDirection", "_majorStep", "_elevation", "_windage", "_zero"]; +_turretAndDirection = _this select 0; +_majorStep = _this select 1; + +if (!cse_AB_MilTurretsEnabled) exitWith { false }; +if (weaponLowered player) exitWith { false }; +if (vehicle player != player) exitWith { false }; +if (currentWeapon player != primaryWeapon player) exitWith { false }; +if (count primaryWeaponItems player < 3) exitWith { false }; + +_opticsName = (primaryWeaponItems player) select 2; +_opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); + +if (_opticType != 2) exitWith { false }; + +_elevation = player getVariable [format["cse_AB_Elevation:%1", _opticsName], 0]; +_windage = player getVariable [format["cse_AB_Windage:%1", _opticsName], 0]; +_zero = player getVariable [format["cse_AB_Zero:%1", _opticsName], profileNamespace getVariable [format["cse_AB_Zero:%1", _opticsName], 0]]; + +_scopeStep = 0.1; + +switch (_turretAndDirection) do +{ + case 0: { _elevation = _elevation + _scopeStep }; + case 1: { _elevation = _elevation - _scopeStep }; + case 2: { _windage = _windage - _scopeStep }; + case 3: { _windage = _windage + _scopeStep }; + case 4: { _zero = _zero + _scopeStep }; + case 5: { _zero = _zero - _scopeStep }; +}; + +if (_majorStep) then { + switch (_turretAndDirection) do + { + case 0: { _elevation = ceil(_elevation) }; + case 1: { _elevation = floor(_elevation) }; + case 2: { _windage = floor(_windage) }; + case 3: { _windage = ceil(_windage) }; + }; +}; + +_zero = -4 max _zero min 30; +_elevation = (-4 - _zero) max _elevation min (30 - _zero); +_windage = -20 max _windage min 20; + +cse_AB_WindInfo = false; +0 cutText ["", "PLAIN"]; +cse_AB_Protractor = false; +1 cutText ["", "PLAIN"]; + +2 cutRsc ["RscTurretDial", "PLAIN"]; + +switch (_turretAndDirection) do +{ + case 0; + case 1: { + __ctrl ctrlSetText format["%1 Mil", round(_elevation * 10) / 10]; + __ctrl ctrlSetTextColor [1.0, 1.0, 0.5, 1.0]; + }; + case 2; + case 3: { + __ctrl ctrlSetText format["%1 Mil", round(_windage * 10) / 10]; + __ctrl ctrlSetTextColor [0.8, 0.8, 1.0, 1.0]; + }; + case 4; + case 5: { + __ctrl ctrlSetText format["%1 Mil", round(_zero * 10) / 10]; + __ctrl ctrlSetTextColor [0, 0.5, 0.0, 1.0]; + }; +}; + +if (_elevation != player getVariable [format["cse_AB_Elevation:%1", _opticsName], 0]) then { + player setVariable [format["cse_AB_Elevation:%1", _opticsName], _elevation, true]; + PlaySound "cse_AB_scope_click"; +}; +if (_windage != player getVariable [format["cse_AB_Windage:%1", _opticsName], 0]) then { + player setVariable [format["cse_AB_Windage:%1", _opticsName], _windage, true]; + PlaySound "cse_AB_scope_click"; +}; +if (_zero != player getVariable [format["cse_AB_Zero:%1", _opticsName], 0]) then { + profileNamespace setVariable [format["cse_AB_Zero:%1", _opticsName], _zero]; + player setVariable [format["cse_AB_Zero:%1", _opticsName], _zero, true]; + PlaySound "cse_AB_scope_click"; +}; + +true diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics.sqf new file mode 100644 index 0000000000..701e22eb5d --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics.sqf @@ -0,0 +1,345 @@ +#include "defines.h" + +private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_cse_AB_Elevation", "_cse_AB_Windage", "_ID"]; +_unit = _this select 0; +_weapon = _this select 1; +_mode = _this select 3; +_ammo = _this select 4; +_bullet = _this select 5; +_magazine = _this select 6; + +if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { + _bullet = _this select 6; + _magazine = _this select 5; +}; + +if (isDedicated) exitWith {}; +if (!alive _bullet) exitWith {}; +if (!(isPlayer _unit)) exitWith {}; +if (underwater _unit) exitWith {}; +if (!(_ammo isKindOf "BulletBase")) exitWith {}; +if (_unit distanceSqr player > 9000000) exitWith {}; +if (cse_AB_OnlyActiveForLocalPlayer && !(local _unit)) exitWith {}; +if (cse_AB_OnlyActiveForPlayerGroup && (group _unit != group player)) exitWith {}; +if (!cse_AB_VehicleGunnerEnabled && !(_unit isKindOf "Man")) exitWith {}; +if (cse_AB_DisabledInFullAutoMode && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) exitWith {}; +if (!isServer && !((gunner _unit) getVariable ["cse_enabled_AdvancedBallistics", false])) exitWith {}; + +_airFriction = getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction"); +_muzzleVelocity = getNumber(configFile >> "cfgMagazines" >> _magazine >> "initSpeed"); + +_muzzleAccessory = (primaryWeaponItems _unit) select 0; +if (_muzzleAccessory != "" && isNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed")) then { + _initSpeedCoef = getNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed"); + _muzzleVelocity = _muzzleVelocity * _initSpeedCoef; +}; + +if (cse_AB_BarrelLengthInfluenceEnabled) then { + _muzzleVelocityShift = [_ammo, _weapon, _muzzleVelocity] call cse_ab_ballistics_fnc_barrel_length_muzzle_velocity; + if (_muzzleVelocityShift != 0) then { + _bulletVelocity = velocity _bullet; + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bullet setVelocity _bulletVelocity; + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; + }; +}; + +if (cse_AB_AmmoTemperatureEnabled) then { + _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2); + _muzzleVelocityShift = [_ammo, _temperature] call cse_ab_ballistics_fnc_ammo_temperature_muzzle_velocity; + if (_muzzleVelocityShift != 0) then { + _bulletVelocity = velocity _bullet; + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bullet setVelocity _bulletVelocity; + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; + }; +}; + +_bulletTraceVisible = false; +if (cse_AB_BulletTraceEnabled && currentWeapon player == primaryWeapon player && count primaryWeaponItems player > 2) then { + _opticsName = (primaryWeaponItems player) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); + _bulletTraceVisible = (_opticType == 2 || currentWeapon player in ["Binocular", "Rangefinder", "Laserdesignator"]) && cameraView == "GUNNER"; +}; + +if (cse_AB_MilTurretsEnabled) then { + [_bullet, _unit] call cse_ab_ballistics_fnc_apply_turret_adjustments; +}; + +_caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_caliber"); +_bulletLength = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_bulletLength"); +_bulletMass = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_bulletMass"); +_barrelTwist = getNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_barrelTwist"); +_stabilityFactor = 1.5; + +if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then { + _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2); + _barometricPressure = 1013.25 * exp(-(cse_AB_Altitude + ((getPosASL _bullet) select 2)) / 7990) - 10 * overcast; + _stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call cse_ab_ballistics_fnc_calculate_stability_factor; +}; + +_twistDirection = 1; +if (isNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_twistDirection")) then { + _twistDirection = getNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_twistDirection"); + if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then { + _twistDirection = 1; + }; +}; + +_transonicStabilityCoef = 0.5; +if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_transonicStabilityCoef")) then { + _transonicStabilityCoef = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_transonicStabilityCoef"); +}; + +_dragModel = 1; +_ballisticCoefficients = []; +_velocityBoundaries = []; +_atmosphereModel = "ICAO"; +if (cse_AB_AdvancedAirDragEnabled) then { + if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_dragModel")) then { + _dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_dragModel"); + if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then { + _dragModel = 1; + }; + }; + if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ballisticCoefficients")) then { + _ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ballisticCoefficients"); + }; + if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_velocityBoundaries")) then { + _velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_velocityBoundaries"); + }; + if (isText(configFile >> "cfgAmmo" >> _ammo >> "AB_standardAtmosphere")) then { + _atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "AB_standardAtmosphere"); + }; +}; + +_index = count cse_AB_bulletDatabase; +if (count cse_AB_bulletDatabaseFreeIndices > 0) then { + _index = cse_AB_bulletDatabaseFreeIndices select 0; + cse_AB_bulletDatabaseFreeIndices = cse_AB_bulletDatabaseFreeIndices - [_index]; +}; + +cse_AB_bulletDatabase set[_index, [_bullet, _caliber, _airFriction, _muzzleVelocity, _stabilityFactor, _transonicStabilityCoef, _twistDirection, _unit, _bulletTraceVisible, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _index]]; +cse_AB_bulletDatabaseStartTime set[_index, time]; +cse_AB_bulletDatabaseSpeed set[_index, 0]; +cse_AB_bulletDatabaseFrames set[_index, 1]; +cse_AB_bulletDatabaseLastFrame set[_index, time]; +cse_AB_bulletDatabaseHDeflect set[_index, 0]; +cse_AB_bulletDatabaseSpinDrift set[_index, 0]; + +if ((cse_AB_bulletDatabaseOccupiedIndices pushBack _index) == 0) then { + ["AdvancedBallistics", "onEachFrame", { + private ["_bulletDatabaseEntry", "_bullet", "_caliber", "_muzzleVelocity", "_frames", "_speed", "_airFriction", "_airFrictionRef", "_dragModel", "_atmosphereModel", "_ballisticCoefficient", "_ballisticCoefficients", "_velocityBoundaries", "_airDensity", "_stabilityFactor", "_transonicStabilityCoef", "_twistDirection", "_unit", "_bulletTraceVisible", "_index", "_temperature", "_humidity", "_deltaT", "_TOF", "_bulletPosition", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_bulletSpeedAvg", "_wind", "_drag", "_dragRef", "_vect", "_accel", "_accelRef", "_centripetalAccel", "_pressure", "_pressureDeviation", "_windSourceObstacle", "_windSourceTerrain", "_height", "_roughnessLength"]; + + { + _bullet = (cse_AB_bulletDatabase select _x) select 0; + _index = (cse_AB_bulletDatabase select _x) select 13; + if (!alive _bullet) then { + cse_AB_bulletDatabaseOccupiedIndices = cse_AB_bulletDatabaseOccupiedIndices - [_index]; + cse_AB_bulletDatabaseFreeIndices pushBack _index; + }; + true + } count cse_AB_bulletDatabaseOccupiedIndices; + + if (count cse_AB_bulletDatabaseOccupiedIndices == 0) exitWith { + cse_AB_bulletDatabase = []; + cse_AB_bulletDatabaseStartTime = []; + cse_AB_bulletDatabaseSpeed = []; + cse_AB_bulletDatabaseFrames = []; + cse_AB_bulletDatabaseLastFrame = []; + cse_AB_bulletDatabaseHDeflect = []; + cse_AB_bulletDatabaseSpinDrift = []; + cse_AB_bulletDatabaseOccupiedIndices = []; + cse_AB_bulletDatabaseFreeIndices = []; + ["AdvancedBallistics", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; + }; + + { + _bulletDatabaseEntry = (cse_AB_bulletDatabase select _x); + _bullet = _bulletDatabaseEntry select 0; + _caliber = _bulletDatabaseEntry select 1; + _airFriction = _bulletDatabaseEntry select 2; + _muzzleVelocity = _bulletDatabaseEntry select 3; + _stabilityFactor = _bulletDatabaseEntry select 4; + _transonicStabilityCoef = _bulletDatabaseEntry select 5; + _twistDirection = _bulletDatabaseEntry select 6; + _unit = _bulletDatabaseEntry select 7; + _bulletTraceVisible = _bulletDatabaseEntry select 8; + _ballisticCoefficients = _bulletDatabaseEntry select 9; + _velocityBoundaries = _bulletDatabaseEntry select 10; + _atmosphereModel = _bulletDatabaseEntry select 11; + _dragModel = _bulletDatabaseEntry select 12; + _index = _bulletDatabaseEntry select 13; + + _TOF = time - (cse_AB_bulletDatabaseStartTime select _index); + + _bulletVelocity = velocity _bullet; + _bulletPosition = getPosASL _bullet; + + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletDir = (_bulletVelocity select 0) atan2 (_bulletVelocity select 1); + + _speed = (cse_AB_bulletDatabaseSpeed select _index); + cse_AB_bulletDatabaseSpeed set[_index, _speed + _bulletSpeed]; + + _frames = (cse_AB_bulletDatabaseFrames select _index); + cse_AB_bulletDatabaseFrames set[_index, _frames + 1]; + + _bulletSpeedAvg = (_speed / _frames); + + if ((cse_AB_Precision < 2) || {_frames % cse_AB_Precision == _index % cse_AB_Precision}) then { + _deltaT = time - (cse_AB_bulletDatabaseLastFrame select _index); + cse_AB_bulletDatabaseLastFrame set[_index, time]; + + _trueVelocity = _bulletVelocity; + _trueSpeed = _bulletSpeed; + _wind = [0, 0, 0]; + if (cse_AB_WindEnabled && (vectorMagnitude wind) > 0) then { + _windSourceObstacle = _bulletPosition vectorDiff ((vectorNormalized wind) vectorMultiply 10); + _windSourceTerrain = _bulletPosition vectorDiff ((vectorNormalized wind) vectorMultiply 100); + + if (!(lineIntersects [_bulletPosition, _windSourceObstacle]) && !(terrainIntersectASL [_bulletPosition, _windSourceTerrain])) then { + _wind = wind; + _height = ASLToATL(_bulletPosition) select 2; + _height = 0 max _height min 20; + if (_height < 20) then { + _roughnessLength = _bulletPosition call cse_ab_ballistics_fnc_calculate_roughness_length; + _wind = _wind vectorMultiply (ln(_height / _roughnessLength) / ln(20 / _roughnessLength)); + }; + + _trueVelocity = _bulletVelocity vectorDiff _wind; + _trueSpeed = vectorMagnitude _trueVelocity; + }; + }; + + _airFrictionRef = _airFriction; + if (cse_AB_AdvancedAirDragEnabled && (count _ballisticCoefficients) == (count _velocityBoundaries) + 1) then { + _dragRef = _deltaT * _airFrictionRef * _bulletSpeed * _bulletSpeed; + _accelRef = (vectorNormalized _bulletVelocity) vectorMultiply (_dragRef); + _bulletVelocity = _bulletVelocity vectorDiff _accelRef; + + _ballisticCoefficient = (_ballisticCoefficients select 0); + for "_i" from (count _velocityBoundaries) - 1 to 0 step -1 do { + if (_bulletSpeed < (_velocityBoundaries select _i)) exitWith { + _ballisticCoefficient = (_ballisticCoefficients select (_i + 1)); + }; + }; + + if (cse_AB_AtmosphericDensitySimulationEnabled) then { + _pressure = 1013.25 * exp(-(cse_AB_Altitude + (_bulletPosition select 2)) / 7990) - 10 * overcast; + _temperature = GET_TEMPERATURE_AT_HEIGHT(_bulletPosition select 2); + _humidity = cse_AB_Humidity; + if (cse_AB_Humidity < 1 && fog > 0) then { + private ["_fogValue", "_fogDecay", "_fogBase"]; + _fogValue = fogParams select 0; + _fogDecay = fogParams select 1; + _fogBase = fogParams select 2; + _fogDensity = 1 - 0.05 * (_fogDecay / _fogValue * (_height - _fogBase))^2; + if (_fogDensity > 0) then { + _humidity = 1; + } else { + _humidity = cse_AB_Humidity + (1 - cse_AB_Humidity) * (0 max (1 + _fogDensity)); + }; + }; + _airDensity = STD_AIR_DENSITY_ICAO; + if (_humidity > 0) then { + private ["_pSat", "_vaporPressure", "_partialPressure"]; + // Saturation vapor pressure calculated according to: http://wahiduddin.net/calc/density_algorithms.htm + _pSat = 6.1078 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3)); + _vaporPressure = _humidity * _pSat; + _partialPressure = (_pressure * 100)- _vaporPressure; + + _airDensity = (_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature)); + } else { + _airDensity = (_pressure * 100) / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature)); + }; + + if (_atmosphereModel == "ICAO") then { + _ballisticCoefficient = (STD_AIR_DENSITY_ICAO / _airDensity) * _ballisticCoefficient; + } else { + _ballisticCoefficient = (STD_AIR_DENSITY_ASM / _airDensity) * _ballisticCoefficient; + }; + }; + + _drag = _deltaT * ([_dragModel, _ballisticCoefficient, _trueSpeed] call cse_ab_ballistics_fnc_calculate_retardation); + _accel = (vectorNormalized _trueVelocity) vectorMultiply (_drag); + _bulletVelocity = _bulletVelocity vectorDiff _accel; + } else { + if (cse_AB_AtmosphericDensitySimulationEnabled) then { + _pressureDeviation = 1013.25 * exp(-(cse_AB_Altitude + (_bulletPosition select 2)) / 7990) - 1013.25 - 10 * overcast; + _temperature = GET_TEMPERATURE_AT_HEIGHT(_bulletPosition select 2); + _humidity = cse_AB_Humidity; + if (cse_AB_Humidity < 1 && fog > 0) then { + private ["_fogValue", "_fogDecay", "_fogBase"]; + + _fogValue = fogParams select 0; + _fogDecay = fogParams select 1; + _fogBase = fogParams select 2; + _fogDensity = 1 - 0.05 * (_fogDecay / _fogValue * (_height - _fogBase))^2; + if (_fogDensity > 0) then { + _humidity = 1; + } else { + _humidity = cse_AB_Humidity + (1 - cse_AB_Humidity) * (0 max (1 + _fogDensity)); + }; + }; + _airFriction = _airFriction + ((_temperature - 15) * 0.0000015 + _humidity * 0.0000040 + _pressureDeviation * -0.0000009); + }; + + if (_airFriction != _airFrictionRef || vectorMagnitude _wind > 0) then { + _dragRef = _deltaT * _airFrictionRef * _bulletSpeed * _bulletSpeed; + _accelRef = (vectorNormalized _bulletVelocity) vectorMultiply (_dragRef); + _bulletVelocity = _bulletVelocity vectorDiff _accelRef; + + _drag = _deltaT * _airFriction * _trueSpeed * _trueSpeed; + _accel = (vectorNormalized _trueVelocity) vectorMultiply (_drag); + _bulletVelocity = _bulletVelocity vectorAdd _accel; + }; + }; + + if (cse_AB_CoriolisEnabled && _bulletSpeedAvg > 0) then { + _horizontalDeflection = 0.0000729 * (_unit distanceSqr _bullet) * sin(cse_AB_Latitude) / _bulletSpeedAvg; + _horizontalDeflectionPartial = _horizontalDeflection - (cse_AB_bulletDatabaseHDeflect select _index); + cse_AB_bulletDatabaseHDeflect set[_index, _horizontalDeflection]; + _vect = [sin(_bulletDir + 90) * _horizontalDeflectionPartial, cos(_bulletDir + 90) * _horizontalDeflectionPartial, 0]; + + _bulletPosition = _bulletPosition vectorAdd _vect; + }; + + if (cse_AB_EoetvoesEnabled) then { + _centripetalAccel = 2 * 0.0000729 * (_muzzleVelocity / -32.2) * cos(cse_AB_Latitude) * sin(_bulletDir); + _accel = [0, 0, -(_centripetalAccel * _deltaT)]; + + _bulletVelocity = _bulletVelocity vectorAdd _accel; + }; + + if (cse_AB_SpinDriftEnabled) then { + _spinDrift = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; + _spinDriftPartial = _spinDrift - (cse_AB_bulletDatabaseSpinDrift select _index); + cse_AB_bulletDatabaseSpinDrift set[_index, _spinDrift]; + _vect = [sin(_bulletDir + 90) * _spinDriftPartial, cos(_bulletDir + 90) * _spinDriftPartial, 0]; + + _bulletPosition = _bulletPosition vectorAdd _vect; + }; + }; + + if (cse_AB_TransonicRegionEnabled && _transonicStabilityCoef < 1) then { + if (_bulletSpeed < 345 && _bulletSpeedAvg > 340 && _bulletSpeed > 335) then { + _accel = [(random 0.8) - 0.4, (random 0.8) - 0.4, (random 0.8) - 0.4]; + _accel = _accel vectorMultiply (1 - _transonicStabilityCoef); + _bulletVelocity = _bulletVelocity vectorAdd _accel; + }; + }; + + if (_bulletTraceVisible && _bulletSpeed > 600 && _bullet distanceSqr _unit > 400) then { + drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.4*_caliber,0.2*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""]; + }; + + _bullet setVelocity _bulletVelocity; + _bullet setPosASL _bulletPosition; + true + } count cse_AB_bulletDatabaseOccupiedIndices; + + }] call BIS_fnc_addStackedEventHandler; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics_extension.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics_extension.sqf new file mode 100644 index 0000000000..7d544d15e0 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_advanced_ballistics_extension.sqf @@ -0,0 +1,171 @@ +#include "defines.h" + +private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_cse_AB_Elevation", "_cse_AB_Windage", "_ID"]; +_unit = _this select 0; +_weapon = _this select 1; +_mode = _this select 3; +_ammo = _this select 4; +_bullet = _this select 5; +_magazine = _this select 6; + +if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { + _bullet = _this select 6; + _magazine = _this select 5; +}; + +if (isDedicated) exitWith {}; +if (!alive _bullet) exitWith {}; +if (!(isPlayer _unit)) exitWith {}; +if (underwater _unit) exitWith {}; +if (!(_ammo isKindOf "BulletBase")) exitWith {}; +if (_unit distanceSqr player > 9000000) exitWith {}; +if (cse_AB_OnlyActiveForLocalPlayer && !(local _unit)) exitWith {}; +if (cse_AB_OnlyActiveForPlayerGroup && (group _unit != group player)) exitWith {}; +if (!cse_AB_VehicleGunnerEnabled && !(_unit isKindOf "Man")) exitWith {}; +if (cse_AB_DisabledInFullAutoMode && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) exitWith {}; +if (!isServer && !((gunner _unit) getVariable ["cse_enabled_AdvancedBallistics", false])) exitWith {}; + +_airFriction = getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction"); +_muzzleVelocity = getNumber(configFile >> "cfgMagazines" >> _magazine >> "initSpeed"); + +_muzzleAccessory = (primaryWeaponItems _unit) select 0; +if (_muzzleAccessory != "" && isNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed")) then { + _initSpeedCoef = getNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed"); + _muzzleVelocity = _muzzleVelocity * _initSpeedCoef; +}; + +if (cse_AB_BarrelLengthInfluenceEnabled) then { + _muzzleVelocityShift = [_ammo, _weapon, _muzzleVelocity] call cse_ab_ballistics_fnc_barrel_length_muzzle_velocity; + if (_muzzleVelocityShift != 0) then { + _bulletVelocity = velocity _bullet; + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bullet setVelocity _bulletVelocity; + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; + }; +}; + +if (cse_AB_AmmoTemperatureEnabled) then { + _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2); + _muzzleVelocityShift = [_ammo, _temperature] call cse_ab_ballistics_fnc_ammo_temperature_muzzle_velocity; + if (_muzzleVelocityShift != 0) then { + _bulletVelocity = velocity _bullet; + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bullet setVelocity _bulletVelocity; + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; + }; +}; + +_opticsName = ""; +_opticType = 0; +if (currentWeapon player == primaryWeapon player && count primaryWeaponItems player > 2) then { + _opticsName = (primaryWeaponItems player) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); +}; + +_bulletTraceVisible = (_opticType == 2 || currentWeapon player in ["Binocular", "Rangefinder", "Laserdesignator"]) && cameraView == "GUNNER"; + +if (cse_AB_MilTurretsEnabled) then { + [_bullet, _unit] call cse_ab_ballistics_fnc_apply_turret_adjustments; +}; + +_caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_caliber"); +_bulletLength = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_bulletLength"); +_bulletMass = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_bulletMass"); +_barrelTwist = getNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_barrelTwist"); +_stabilityFactor = 1.5; + +if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then { + _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2); + _barometricPressure = 1013.25 * exp(-(cse_AB_Altitude + ((getPosASL _bullet) select 2)) / 7990) - 10 * overcast; + _stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call cse_ab_ballistics_fnc_calculate_stability_factor; +}; + +_twistDirection = 1; +if (isNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_twistDirection")) then { + _twistDirection = getNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_twistDirection"); + if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then { + _twistDirection = 1; + }; +}; + +_transonicStabilityCoef = 0.5; +if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_transonicStabilityCoef")) then { + _transonicStabilityCoef = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_transonicStabilityCoef"); +}; + +_dragModel = 1; +_ballisticCoefficients = []; +_velocityBoundaries = []; +_atmosphereModel = "ICAO"; +if (cse_AB_AdvancedAirDragEnabled) then { + if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_dragModel")) then { + _dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "AB_dragModel"); + if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then { + _dragModel = 1; + }; + }; + if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ballisticCoefficients")) then { + _ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ballisticCoefficients"); + }; + if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_velocityBoundaries")) then { + _velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_velocityBoundaries"); + }; + if (isText(configFile >> "cfgAmmo" >> _ammo >> "AB_standardAtmosphere")) then { + _atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "AB_standardAtmosphere"); + }; +}; + +_index = count cse_AB_bulletDatabase; +if (count cse_AB_bulletDatabaseFreeIndices > 0) then { + _index = cse_AB_bulletDatabaseFreeIndices select 0; + cse_AB_bulletDatabaseFreeIndices = cse_AB_bulletDatabaseFreeIndices - [_index]; +}; + +"AdvancedBallistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", _index, _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, cse_AB_Latitude, cse_AB_Temperature, cse_AB_Altitude, cse_AB_Humidity, overcast, floor(time), time - floor(time)]; +cse_AB_bulletDatabase set[_index, [_bullet, _caliber, _bulletTraceVisible, _index]]; + +if ((cse_AB_bulletDatabaseOccupiedIndices pushBack _index) == 0) then { + ["AdvancedBallistics", "onEachFrame", { + private ["_bulletDatabaseEntry", "_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition", "_bulletVelocityShift", "_bulletPositionShift"]; + + { + _bulletDatabaseEntry = (cse_AB_bulletDatabase select _x); + _bullet = _bulletDatabaseEntry select 0; + _index = _bulletDatabaseEntry select 3; + if (!alive _bullet) then { + cse_AB_bulletDatabaseOccupiedIndices = cse_AB_bulletDatabaseOccupiedIndices - [_index]; + cse_AB_bulletDatabaseFreeIndices pushBack _index; + }; + true + } count cse_AB_bulletDatabaseOccupiedIndices; + + if (count cse_AB_bulletDatabaseOccupiedIndices == 0) exitWith { + cse_AB_bulletDatabase = []; + cse_AB_bulletDatabaseOccupiedIndices = []; + cse_AB_bulletDatabaseFreeIndices = []; + ["AdvancedBallistics", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; + }; + + { + _bulletDatabaseEntry = (cse_AB_bulletDatabase select _x); + _bullet = _bulletDatabaseEntry select 0; + _caliber = _bulletDatabaseEntry select 1; + _bulletTraceVisible = _bulletDatabaseEntry select 2; + _index = _bulletDatabaseEntry select 3; + + _bulletVelocity = velocity _bullet; + _bulletPosition = getPosASL _bullet; + + if (_bulletTraceVisible && vectorMagnitude _bulletVelocity > 600) then { + drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.4*_caliber,0.2*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""]; + }; + + call compile ("AdvancedBallistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, wind, ASLToATL(_bulletPosition) select 2, floor(time), time - floor(time)]); + + true + } count cse_AB_bulletDatabaseOccupiedIndices; + + }] call BIS_fnc_addStackedEventHandler; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_ammo_temperature_muzzle_velocity.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_ammo_temperature_muzzle_velocity.sqf new file mode 100644 index 0000000000..3158c82526 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_ammo_temperature_muzzle_velocity.sqf @@ -0,0 +1,38 @@ +/** + * fn_ammo_temperature_muzzle_velocity.sqf + * @Descr: ? + * @Author: Ruthberg + * + * @Arguments: [Ammo Class Name, Temperature in C] + * @Return: [Muzzle Velocity Shift in m/s] + * @PublicAPI: true + */ + + +#include "defines.h" + +private ["_ammo", "_temperature", "_muzzleVelocityTable", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"]; +_ammo = _this select 0; +_temperature = _this select 1; + +_muzzleVelocityTable = []; + +if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ammoTempMuzzleVelocityShifts")) then { + _muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_ammoTempMuzzleVelocityShifts"); +}; + +if (count _muzzleVelocityTable != 11) exitWith { 0 }; + +_temperatureIndexA = floor((_temperature + 15) / 5); +_temperatureIndexA = 0 max _temperatureIndexA; +_temperatureIndexA = _temperatureIndexA min 10; + +_temperatureIndexB = ceil((_temperature + 15) / 5); +_temperatureIndexB = 0 max _temperatureIndexB; +_temperatureIndexB = _temperatureIndexB min 10; + +_temperatureRatio = ((_temperature + 15) / 5) - floor((_temperature + 15) / 5); + +_muzzleVelocityShift = (_muzzleVelocityTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityTable select _temperatureIndexB) * _temperatureRatio; + +_muzzleVelocityShift diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_apply_turret_adjustments.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_apply_turret_adjustments.sqf new file mode 100644 index 0000000000..147e5668e7 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_apply_turret_adjustments.sqf @@ -0,0 +1,37 @@ +#include "defines.h" + +private ["_bullet", "_unit", "_opticsName", "_opticType", "_windage", "_elevation", "_zero", "_bulletVelocity", "_dir", "_elev", "_mag3D", "_mag2D"]; +_bullet = _this select 0; +_unit = _this select 1; + +_opticsName = ""; +_opticType = 0; +if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then { + _opticsName = (primaryWeaponItems _unit) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); +}; + +if (_opticType == 2) then { + _windage = _unit getVariable [format["cse_AB_Windage:%1", _opticsName], 0]; + _elevation = _unit getVariable [format["cse_AB_Elevation:%1", _opticsName], 0]; + _zero = _unit getVariable [format["cse_AB_Zero:%1", _opticsName], 0]; + + _elevation = _elevation + _zero; + + if (_windage != 0 || _elevation != 0) then { + _windage = _windage * 3.47 / 60; + _elevation = _elevation * 3.47 / 60; + + _bulletVelocity = (velocity _bullet); + _mag3D = vectorMagnitude _bulletVelocity; + _dir = (_bulletVelocity select 0) atan2 (_bulletVelocity select 1); + _elev = asin((_bulletVelocity select 2) / _mag3D); + + _dir = _dir + _windage; + _elev = _elev + _elevation; + + _mag2D = _mag3D * cos(_elev); + + _bullet setVelocity [_mag2D * sin(_dir), _mag2D * cos(_dir), _mag3D * sin(_elev)]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_barrel_length_muzzle_velocity.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_barrel_length_muzzle_velocity.sqf new file mode 100644 index 0000000000..54ad0b1e31 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_barrel_length_muzzle_velocity.sqf @@ -0,0 +1,61 @@ +/** + * fn_barrel_length_muzzle_velocity.sqf + * @Descr: ? + * @Author: Ruthberg + * + * @Arguments: [Ammo Class Name, Weapon Class Name, Muzzle Velocity in m/s] + * @Return: [Muzzle Velocity in m/s] + * @PublicAPI: true + */ + + +#include "defines.h" + +private ["_ammo", "_weapon", "_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity", "_lowerIndex", "_upperIndex", "_barrelLengthRatio", "_muzzleVelocityNew"]; +_ammo = _this select 0; +_weapon = _this select 1; +_muzzleVelocity = _this select 2; + +_barrelLength = getNumber(configFile >> "cfgWeapons" >> _weapon >> "AB_barrelLength"); + +if (_barrelLength == 0) exitWith { 0 }; + +_muzzleVelocityTable = []; +_barrelLengthTable = []; + +if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_muzzleVelocities")) then { + _muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_muzzleVelocities"); +}; +if (isArray(configFile >> "cfgAmmo" >> _ammo >> "AB_barrelLengths")) then { + _barrelLengthTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "AB_barrelLengths"); +}; + +if (count _muzzleVelocityTable != count _barrelLengthTable) exitWith { 0 }; +if (count _muzzleVelocityTable == 0 || count _barrelLengthTable == 0) exitWith { 0 }; +if (count _muzzleVelocityTable == 1) exitWith { (_muzzleVelocityTable select 0) - _muzzleVelocity }; + +_lowerIndex = 0; +_upperIndex = (count _barrelLengthTable) - 1; + +if (_barrelLength <= (_barrelLengthTable select _lowerIndex)) exitWith { (_muzzleVelocityTable select _lowerIndex) - _muzzleVelocity }; +if (_barrelLength >= (_barrelLengthTable select _upperIndex)) exitWith { (_muzzleVelocityTable select _upperIndex) - _muzzleVelocity }; + +for "_i" from 0 to (count _barrelLengthTable) - 1 do { + if (_barrelLength >= _barrelLengthTable select _i) then { + _lowerIndex = _i; + }; +}; +for "_i" from (count _barrelLengthTable) - 1 to 0 step -1 do { + if (_barrelLength <= _barrelLengthTable select _i) then { + _upperIndex = _i; + }; +}; + +_barrelLengthRatio = 0; +if ((_barrelLengthTable select _upperIndex) - (_barrelLengthTable select _lowerIndex) > 0) then { + _barrelLengthRatio = ((_barrelLengthTable select _upperIndex) - _barrelLength) / ((_barrelLengthTable select _upperIndex) - (_barrelLengthTable select _lowerIndex)); +}; + +_muzzleVelocityNew = (_muzzleVelocityTable select _lowerIndex) + ((_muzzleVelocityTable select _upperIndex) - (_muzzleVelocityTable select _lowerIndex)) * (1 - _barrelLengthRatio); + +_muzzleVelocityNew - _muzzleVelocity diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_air_density.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_air_density.sqf new file mode 100644 index 0000000000..5cc23ad6ab --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_air_density.sqf @@ -0,0 +1,31 @@ +/** + * fn_calculate_air_density.sqf + * @Descr: Calculates air density based on atmospheric pressure, temperature and rel.humidity + * @Author: Ruthberg + * + * @Arguments: [Temperature in C, Pressure in hPa, Relative Humidity as ratio 0.0-1.0] + * @Return: [Air Density in kg/m^3] + * @PublicAPI: true + */ + + +#include "defines.h" + +private ["_temperature", "_pressure", "_relativeHumidity"]; +_temperature = _this select 0; // in C +_pressure = _this select 1; // in hPa +_relativeHumidity = _this select 2; // as ratio 0-1 + +_pressure = _pressure * 100; + +if (_relativeHumidity > 0) then { + private ["_pSat", "_vaporPressure", "_partialPressure"]; + // Saturation vapor pressure calculated according to: http://wahiduddin.net/calc/density_algorithms.htm + _pSat = 6.1078 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3)); + _vaporPressure = _relativeHumidity * _pSat; + _partialPressure = _pressure - _vaporPressure; + + (_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature)) +} else { + _pressure / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature)) +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_atmospheric_correction.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_atmospheric_correction.sqf new file mode 100644 index 0000000000..bf47dec263 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_atmospheric_correction.sqf @@ -0,0 +1,27 @@ +/** + * fn_calculate_atmospheric_correction.sqf + * @Descr: ? + * @Author: Ruthberg + * + * @Arguments: [Ballistic Coefficient, Temperature in C, Pressure in hPa, Relative Humidity as ratio in 0.0-1.0, Atm.Model = "ICAO" || "ASM"] + * @Return: [Corrected Ballistic Coefficient] + * @PublicAPI: true + */ + + +#include "defines.h" + +private ["_ballisticCoefficient", "_temperature", "_pressure", "_relativeHumidity", "_atmosphereModel", "_airDensity"]; +_ballisticCoefficient = _this select 0; +_temperature = _this select 1; // in C +_pressure = _this select 2; // in hPa +_relativeHumidity = _this select 3; // as ratio 0-1 +_atmosphereModel = _this select 4; // "ICAO" or "ASM" + +_airDensity = [_temperature, _pressure, _relativeHumidity] call cse_ab_ballistics_fnc_calculate_air_density; + +if (_atmosphereModel == "ICAO") then { + (STD_AIR_DENSITY_ICAO / _airDensity) * _ballisticCoefficient +} else { + (STD_AIR_DENSITY_ASM / _airDensity) * _ballisticCoefficient +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_hellmann_exponent.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_hellmann_exponent.sqf new file mode 100644 index 0000000000..371718089c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_hellmann_exponent.sqf @@ -0,0 +1,38 @@ +/** + * fn_calculate_hellmann_exponent.sqf + * @Descr: Wikipedia: The Hellmann exponent depends upon the coastal location and the shape of the terrain on the ground, and the stability of the air. + * @Author: Ruthberg + * + * @Arguments: [position in ASL format] + * @Return: [Hellmann Exponent] + * @PublicAPI: true + */ + +#include "defines.h" + +private ["_hellmann_exponents", "_hellmann_index", "_windSource", "_nearObjects", "_isWater"]; + +// Source: https://en.wikipedia.org/wiki/Wind_gradient +// Entries 0-2 -> open water surface; Entries 3-5 -> flat open coast; Entries 6-8 -> human inhabited areas +// Sorting: open water surface/flat open coast/human inhabited areas & stable air/neutral air/unstable air +_hellmann_exponents = [0.27, 0.10, 0.06, 0.40, 0.16, 0.11, 0.60, 0.34, 0.27]; +_hellmann_exponent = 0.14; + +_windSource = _this vectorDiff ((vectorNormalized wind) vectorMultiply 25); + +_nearObjects = count (_windSource nearObjects ["Building", 50]); +_isWater = surfaceIsWater _this; + +_hellmann_index = 0 max floor(overcast * 3) min 2; + +if (_nearObjects >= 5) then { + _hellmann_exponent = _hellmann_exponents select (_hellmann_index + 6); +}; +if (_nearObjects < 5) then { + _hellmann_exponent = _hellmann_exponents select (_hellmann_index + 3); +}; +if (_nearObjects == 0 && _isWater) then { + _hellmann_exponent = _hellmann_exponents select (_hellmann_index + 0); +}; + +_hellmann_exponent diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_retardation.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_retardation.sqf new file mode 100644 index 0000000000..3fcb3bc856 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_retardation.sqf @@ -0,0 +1,129 @@ +#include "defines.h" + +// Source: GNU Exterior Ballistics + +private ["_dragModel", "_dragCoefficient", "_velocity", "_A", "_M", "_result"]; +_dragModel = _this select 0; +_dragCoefficient = _this select 1; +_velocity = (_this select 2) * 3.2808399; + +_A = -1; +_M = -1; +_result = 0; + +switch _dragModel do { + case 1: + { + switch true do { + case (_velocity > 4230) : { _A = 0.0001477404177730177; _M = 1.9565; }; + case (_velocity > 3680) : { _A = 0.0001920339268755614; _M = 1.925 ; }; + case (_velocity > 3450) : { _A = 0.0002894751026819746; _M = 1.875 ; }; + case (_velocity > 3295) : { _A = 0.0004349905111115636; _M = 1.825 ; }; + case (_velocity > 3130) : { _A = 0.0006520421871892662; _M = 1.775 ; }; + case (_velocity > 2960) : { _A = 0.0009748073694078696; _M = 1.725 ; }; + case (_velocity > 2830) : { _A = 0.001453721560187286; _M = 1.675 ; }; + case (_velocity > 2680) : { _A = 0.002162887202930376; _M = 1.625 ; }; + case (_velocity > 2460) : { _A = 0.003209559783129881; _M = 1.575 ; }; + case (_velocity > 2225) : { _A = 0.003904368218691249; _M = 1.55 ; }; + case (_velocity > 2015) : { _A = 0.003222942271262336; _M = 1.575 ; }; + case (_velocity > 1890) : { _A = 0.002203329542297809; _M = 1.625 ; }; + case (_velocity > 1810) : { _A = 0.001511001028891904; _M = 1.675 ; }; + case (_velocity > 1730) : { _A = 0.0008609957592468259; _M = 1.75 ; }; + case (_velocity > 1595) : { _A = 0.0004086146797305117; _M = 1.85 ; }; + case (_velocity > 1520) : { _A = 0.0001954473210037398; _M = 1.95 ; }; + case (_velocity > 1420) : { _A = 0.00005431896266462351; _M = 2.125 ; }; + case (_velocity > 1360) : { _A = 0.000008847742581674416; _M = 2.375 ; }; + case (_velocity > 1315) : { _A = 0.000001456922328720298; _M = 2.625 ; }; + case (_velocity > 1280) : { _A = 0.0000002419485191895565; _M = 2.875 ; }; + case (_velocity > 1220) : { _A = 0.00000001657956321067612; _M = 3.25 ; }; + case (_velocity > 1185) : { _A = 0.0000000004745469537157371; _M = 3.75 ; }; + case (_velocity > 1150) : { _A = 0.00000000001379746590025088; _M = 4.25 ; }; + case (_velocity > 1100) : { _A = 0.0000000000004070157961147882; _M = 4.75 ; }; + case (_velocity > 1060) : { _A = 0.00000000000002938236954847331; _M = 5.125 ; }; + case (_velocity > 1025) : { _A = 0.00000000000001228597370774746; _M = 5.25 ; }; + case (_velocity > 980) : { _A = 0.00000000000002916938264100495; _M = 5.125 ; }; + case (_velocity > 945) : { _A = 0.0000000000003855099424807451; _M = 4.75 ; }; + case (_velocity > 905) : { _A = 0.00000000001185097045689854; _M = 4.25 ; }; + case (_velocity > 860) : { _A = 0.0000000003566129470974951; _M = 3.75 ; }; + case (_velocity > 810) : { _A = 0.00000001045513263966272; _M = 3.25 ; }; + case (_velocity > 780) : { _A = 0.0000001291159200846216; _M = 2.875 ; }; + case (_velocity > 750) : { _A = 0.0000006824429329105383; _M = 2.625 ; }; + case (_velocity > 700) : { _A = 0.000003569169672385163; _M = 2.375 ; }; + case (_velocity > 640) : { _A = 0.00001839015095899579; _M = 2.125 ; }; + case (_velocity > 600) : { _A = 0.00005711174688734240; _M = 1.950 ; }; + case (_velocity > 550) : { _A = 0.00009226557091973427; _M = 1.875 ; }; + case (_velocity > 250) : { _A = 0.00009337991957131389; _M = 1.875 ; }; + case (_velocity > 100) : { _A = 0.00007225247327590413; _M = 1.925 ; }; + case (_velocity > 65) : { _A = 0.00005792684957074546; _M = 1.975 ; }; + case (_velocity > 0) : { _A = 0.00005206214107320588; _M = 2.000 ; }; + }; + }; + case 2: + { + switch true do { + case (_velocity > 1674) : { _A = 0.0079470052136733; _M = 1.36999902851493; }; + case (_velocity > 1172) : { _A = 0.00100419763721974; _M = 1.65392237010294; }; + case (_velocity > 1060) : { _A = 0.0000000000000000000000715571228255369; _M = 7.91913562392361; }; + case (_velocity > 949) : { _A = 0.000000000139589807205091; _M = 3.81439537623717; }; + case (_velocity > 670) : { _A = 0.000234364342818625; _M = 1.71869536324748; }; + case (_velocity > 335) : { _A = 0.000177962438921838; _M = 1.76877550388679; }; + case (_velocity > 0) : { _A = 0.0000518033561289704; _M = 1.98160270524632; }; + }; + }; + case 5: + { + switch true do { + case (_velocity > 1730) : { _A = 0.00724854775171929; _M = 1.41538574492812; }; + case (_velocity > 1228) : { _A = 0.0000350563361516117; _M = 2.13077307854948; }; + case (_velocity > 1116) : { _A = 0.000000000000184029481181151; _M = 4.81927320350395; }; + case (_velocity > 1004) : { _A = 0.000000000000000000000134713064017409; _M = 7.8100555281422 ; }; + case (_velocity > 837) : { _A = 0.000000103965974081168; _M = 2.84204791809926; }; + case (_velocity > 335) : { _A = 0.0001093015938698234; _M = 1.81096361579504; }; + case (_velocity > 0) : { _A = 0.0000351963178524273; _M = 2.00477856801111; }; + }; + }; + case 6: + { + switch true do { + case (_velocity > 3236) : { _A = 0.0455384883480781; _M = 1.15997674041274; }; + case (_velocity > 2065) : { _A = 0.07167261849653769; _M = 1.10704436538885; }; + case (_velocity > 1311) : { _A = 0.00166676386084348; _M = 1.60085100195952; }; + case (_velocity > 1144) : { _A = 0.000000101482730119215; _M = 2.9569674731838 ; }; + case (_velocity > 1004) : { _A = 0.00000000000000000431542773103552; _M = 6.34106317069757; }; + case (_velocity > 670) : { _A = 0.0000204835650496866; _M = 2.11688446325998; }; + case (_velocity > 0) : { _A = 0.0000750912466084823; _M = 1.92031057847052; }; + }; + }; + case 7: + { + switch true do { + case (_velocity > 4200) : { _A = 0.00000000129081656775919; _M = 3.24121295355962; }; + case (_velocity > 3000) : { _A = 0.0171422231434847; _M = 1.27907168025204; }; + case (_velocity > 1470) : { _A = 0.00233355948302505; _M = 1.52693913274526; }; + case (_velocity > 1260) : { _A = 0.000797592111627665; _M = 1.67688974440324; }; + case (_velocity > 1110) : { _A = 0.00000000000571086414289273; _M = 4.3212826264889 ; }; + case (_velocity > 960) : { _A = 0.0000000000000000302865108244904; _M = 5.99074203776707; }; + case (_velocity > 670) : { _A = 0.00000752285155782535; _M = 2.1738019851075 ; }; + case (_velocity > 540) : { _A = 0.0000131766281225189; _M = 2.08774690257991; }; + case (_velocity > 0) : { _A = 0.0000134504843776525; _M = 2.08702306738884; }; + }; + }; + case 8: + { + switch true do { + case (_velocity > 3571) : { _A = 0.0112263766252305; _M = 1.33207346655961; }; + case (_velocity > 1841) : { _A = 0.0167252613732636; _M = 1.28662041261785; }; + case (_velocity > 1120) : { _A = 0.00220172456619625; _M = 1.55636358091189; }; + case (_velocity > 1088) : { _A = 0.00000000000000020538037167098; _M = 5.80410776994789; }; + case (_velocity > 976) : { _A = 0.00000000000592182174254121; _M = 4.29275576134191; }; + case (_velocity > 0) : { _A = 0.000043917343795117; _M = 1.99978116283334; }; + }; + }; +}; + +if (_A != -1 && _M != -1 && _velocity > 0 && _velocity < 10000) then { + _result = _A * (_velocity ^ _M) / _dragCoefficient; + _result = _result / 3.2808399; +}; + +_result diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_roughness_length.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_roughness_length.sqf new file mode 100644 index 0000000000..285f8e4dea --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_roughness_length.sqf @@ -0,0 +1,21 @@ +#include "defines.h" + +private ["_roughness_lengths", "_windSource", "_nearBuildings", "_isWater"]; + +// Source: http://es.ucsc.edu/~jnoble/wind/extrap/index.html +_roughness_lengths = [0.0002, 0.0005, 0.0024, 0.03, 0.055, 0.1, 0.2, 0.4, 0.8, 1.6]; + +_windSource = _this vectorDiff ((vectorNormalized wind) vectorMultiply 25); + +_nearBuildings = count (_windSource nearObjects ["Building", 50]); +_isWater = surfaceIsWater _windSource; + +if (_nearBuildings == 0 && _isWater) exitWith { + 0.0005 +}; + +if (_nearBuildings >= 10) exitWith { + 1.6 +}; + +_roughness_lengths select (2 + (_nearBuildings min 6)) diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_stability_factor.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_stability_factor.sqf new file mode 100644 index 0000000000..c1a9f66bbd --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_stability_factor.sqf @@ -0,0 +1,27 @@ +#include "defines.h" + +private ["_caliber", "_bulletLength", "_bulletMass", "_barrelTwist", "_muzzleVelocity", "_temperature", "_barometricPressure", "_l", "_t", "_stabilityFactor"]; +_caliber = _this select 0; +_bulletLength = _this select 1; +_bulletMass = _this select 2; +_barrelTwist = _this select 3; +_muzzleVelocity = _this select 4; +_temperature = _this select 5; +_barometricPressure = _this select 6; + +// Source: http://www.jbmballistics.com/ballistics/bibliography/articles/miller_stability_1.pdf +_t = _barrelTwist / _caliber; +_l = _bulletLength / _caliber; + +_stabilityFactor = 30 * _bulletMass / (_t^2 * _caliber^3 * _l * (1 + _l^2)); + +_muzzleVelocity = _muzzleVelocity * 3.2808399; +if (_muzzleVelocity > 1120) then { + _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 2800) ^ (1/3); +} else { + _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 1120) ^ (1/3); +}; + +_stabilityFactor = _stabilityFactor * (_temperature + 273) / (15 + 273) * 1013.25 / _barometricPressure; + +_stabilityFactor diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_wind_speed.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_wind_speed.sqf new file mode 100644 index 0000000000..51221f9057 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_calculate_wind_speed.sqf @@ -0,0 +1,65 @@ +#include "defines.h" + +private ["_windSpeed", "_windDir", "_height", "_newWindSpeed", "_windSource", "_roughnessLength"]; + +fnc_polar2vect = { + private ["_mag2D"]; + _mag2D = (_this select 0) * cos((_this select 2)); + [_mag2D * sin((_this select 1)), _mag2D * cos((_this select 1)), (_this select 0) * sin((_this select 2))]; +}; + +_windSpeed = vectorMagnitude wind; +_windDir = (wind select 0) atan2 (wind select 1); + +// Wind gradient +if (_windSpeed > 0.05) then { + _height = (ASLToATL _this) select 2; + _height = 0 max _height min 20; + if (_height < 20) then { + _roughnessLength = _this call cse_ab_ballistics_fnc_calculate_roughness_length; + _windSpeed = _windSpeed * ln(_height / _roughnessLength) / ln(20 / _roughnessLength); + }; +}; + +// Terrain effect on wind +if (_windSpeed > 0.05) then { + _newWindSpeed = 0; + { + _windSource = [100, _windDir + 180, _x] call fnc_polar2vect; + if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 9) * _windSpeed; + }; + _windSource = [100, _windDir + 180 + _x, 0] call fnc_polar2vect; + if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 9) * _windSpeed; + }; + _windSource = [100, _windDir + 180 - _x, 0] call fnc_polar2vect; + if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 9) * _windSpeed; + }; + } forEach [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + _windSpeed = _newWindSpeed; +}; + +// Obstacle effect on wind +if (_windSpeed > 0.05) then { + _newWindSpeed = 0; + { + _windSource = [20, _windDir + 180, _x] call fnc_polar2vect; + if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 2) * _windSpeed; + }; + _windSource = [20, _windDir + 180 + _x, 0] call fnc_polar2vect; + if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 2) * _windSpeed; + }; + _windSource = [20, _windDir + 180 - _x, 0] call fnc_polar2vect; + if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith { + _newWindSpeed = cos(_x * 2) * _windSpeed; + }; + } forEach [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]; + _windSpeed = _newWindSpeed; +}; +_windSpeed = 0 max _windSpeed; + +_windSpeed diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_climate_simulation.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_climate_simulation.sqf new file mode 100644 index 0000000000..4e13f01706 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_climate_simulation.sqf @@ -0,0 +1,117 @@ +#include "defines.h" + +private ["_time", "_timeRatio", "_month", "_avgTemperature", "_pS1", "_pS2", "_cse_AB_Day_Temperature", "_cse_AB_Night_Temperature", "_cse_AB_Humidity"]; +_cse_AB_Day_Temperature = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; +_cse_AB_Night_Temperature = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; +_cse_AB_Humidity = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; + +// Climate graphs +if (toLower worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"]) then { + // Source: http://www.iten-online.ch/klima/europa/tschechien/prag.htm + _cse_AB_Day_Temperature = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; + _cse_AB_Night_Temperature = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Prague,Czech-Republic + _cse_AB_Humidity = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; +}; + +if (toLower worldName in ["altis", "stratis"]) then { + // Source: http://www.iten-online.ch/klima/europa/griechenland/limnos.htm + _cse_AB_Day_Temperature = [10, 10, 12, 16, 21, 26, 29, 28, 25, 20, 15, 11]; + _cse_AB_Night_Temperature = [4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece + _cse_AB_Humidity = [78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80]; +}; + +if (toLower worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf", "provinggrounds_pmc"]) then { + // Source: http://www.iten-online.ch/klima/asien/afghanistan/kabul.htm + _cse_AB_Day_Temperature = [4.5, 5.5, 12.5, 19.2, 24.4, 30.2, 32.1, 32, 28.5, 22.4, 15, 8.3]; + _cse_AB_Night_Temperature = [-7.1, -5.7, 0.7, 6, 8.8, 12.4, 15.3, 14.3, 9.4, 3.9, -1.2, -4.7]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan + _cse_AB_Humidity = [68, 69, 62, 60, 49, 37, 38, 39, 40, 41, 56, 61]; +}; + +if (toLower worldName in ["fallujah"]) then { + // Source: http://www.iten-online.ch/klima/asien/irak/bagdad.htm + _cse_AB_Day_Temperature = [16, 19, 23, 29, 36, 41, 43, 43, 40, 33, 24, 17]; + _cse_AB_Night_Temperature = [4, 6, 10, 15, 20, 23, 25, 25, 21, 16, 10, 5]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bagdad,Iraq + _cse_AB_Humidity = [69, 60, 55, 50, 36, 23, 21, 22, 29, 38, 58, 68]; +}; + +if (toLower worldName in ["fata", "Abbottabad"]) then { + // Source: http://www.iten-online.ch/klima/asien/pakistan/zhob.htm + _cse_AB_Day_Temperature = [12.4, 15.8, 20.8, 26.9, 32.8, 37, 36.8, 35.9, 33.8, 28.2, 22.2, 16.2]; + _cse_AB_Night_Temperature = [-0.6, 2.4, 7.4, 13.1, 18.2, 22.8, 23.8, 22.9, 19.2, 12, 5.6, 1.2]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Zhob,Pakistan + _cse_AB_Humidity = [50, 40, 42, 40, 30, 30, 50, 49, 40, 32, 38, 41]; +}; + +if (worldName in ["sfp_wamako"]) then { + // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm + _cse_AB_Day_Temperature = [33.4, 35, 38.4, 41.5, 41.4, 40, 35.6, 32.9, 35.8, 38.2, 36.4, 33.1]; + _cse_AB_Night_Temperature = [14.9, 16.3, 20.4, 23.7, 25.8, 24.8, 23.1, 22, 22.6, 21.6, 18.6, 15.3]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Tahoua,Niger + _cse_AB_Humidity = [68, 60, 57, 50, 32, 22, 20, 21, 25, 38, 58, 69]; +}; + +if (worldName in ["sfp_sturko"]) then { + // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm + _cse_AB_Day_Temperature = [2.2, 2.4, 5.1, 10.2, 16.1, 20.1, 21.1, 20.9, 17.2, 12.7, 7.4, 3.9]; + _cse_AB_Night_Temperature = [-2, -2.3, -0.7, 2.6, 7.1, 11.4, 13.1, 12.7, 10, 6.9, 3.1, -0.1]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,karlskrona,Sweden + _cse_AB_Humidity = [86, 85, 80, 72, 68, 69, 74, 77, 79, 81, 86, 88]; +}; + +if (worldName in ["Bornholm"]) then { + // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm + _cse_AB_Day_Temperature = [1.9, 1.7, 3.8, 8.1, 14, 18.1, 19.6, 19.8, 16.2, 11.9, 7.3, 3.9]; + _cse_AB_Night_Temperature = [-1.6, -2.1, -0.7, 1.7, 6.2, 10.7, 13, 13.1, 10.6, 7.2, 3.5, 0.1]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,allinge,Denmark + _cse_AB_Humidity = [85, 84, 80, 76, 69, 69, 76, 77, 79, 81, 86, 86]; +}; +if (worldName in ["Imrali"]) then { + // Source: http://www.iten-online.ch/klima/europa/tuerkei/bursa.htm + _cse_AB_Day_Temperature = [9.3, 10.7, 13.6, 18.8, 23.5, 28.2, 30.3, 30.2, 27, 21.4, 16.5, 11.8]; + _cse_AB_Night_Temperature = [1.4, 2.4, 3.7, 7.1, 10.9, 14.3, 16.5, 16.3, 13, 9.5, 6, 3.8]; + + // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bursa,Turkey + _cse_AB_Humidity = [78, 75, 70, 70, 71, 61, 58, 59, 63, 69, 77, 76]; +}; + +while {true} do +{ + _time = daytime; + _month = date select 1; + + // Temperature + _timeRatio = abs(_time - 12) / 12; + + cse_AB_Temperature = (_cse_AB_Day_Temperature select (_month - 1)) * (1 - _timeRatio) + (_cse_AB_Night_Temperature select (_month - 1)) * _timeRatio; + cse_AB_Temperature = cse_AB_Temperature + cse_AB_temperatureShift - cse_AB_badWeatherShift * overcast; + cse_AB_Temperature = round(cse_AB_Temperature * 10) / 10; + + // Humidity + cse_AB_Humidity = (_cse_AB_Humidity select _month) / 100; + cse_AB_Humidity = cse_AB_Humidity + cse_AB_humidityShift; + + if (rain > 0 && overcast > 0.7) then { + cse_AB_Humidity = 1; + } else { + _avgTemperature = ((_cse_AB_Day_Temperature select (_month - 1)) + (_cse_AB_Night_Temperature select (_month - 1))) / 2; + _pS1 = 6.112 * exp((17.62 * _avgTemperature) / (243.12 + _avgTemperature)); + _PS2 = 6.112 * exp((17.62 * cse_AB_Temperature) / (243.12 + cse_AB_Temperature)); + cse_AB_Humidity = cse_AB_Humidity * _PS1 / _PS2; + }; + + cse_AB_Humidity = 0 max cse_AB_Humidity min 1; + + sleep 60; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_protractor.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_protractor.sqf new file mode 100644 index 0000000000..e8212cf6ba --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_protractor.sqf @@ -0,0 +1,50 @@ +#include "defines.h" + +#define __dsp (uiNamespace getVariable "RscProtractor") +#define __ctrl1 (__dsp displayCtrl 132950) +#define __ctrl2 (__dsp displayCtrl 132951) + +private ["_inclinationAngle", "_refPosition"]; + +if (cse_AB_Protractor) exitWith { + cse_AB_Protractor = false; + 1 cutText ["", "PLAIN"]; + true +}; +if (weaponLowered player) exitWith { true }; +if (vehicle player != player) exitWith { true }; +if (currentWeapon player != primaryWeapon player) exitWith { true }; + +[] spawn { + 2 cutText ["", "PLAIN"]; + cse_AB_WindInfo = false; + 0 cutText ["", "PLAIN"]; + cse_AB_Protractor = true; + + while {cse_AB_Protractor && !(weaponLowered player) && currentWeapon player == primaryWeapon player} do { + _refPosition = [SafeZoneX + 0.001, SafeZoneY + 0.001, 0.2, 0.2 * 4/3]; + + _inclinationAngle = asin((player weaponDirection currentWeapon player) select 2); + _inclinationAngle = -58 max _inclinationAngle min 58; + + 1 cutRsc ["RscProtractor", "PLAIN", 1, false]; + + __ctrl1 ctrlSetScale 0.75; + __ctrl1 ctrlCommit 0; + __ctrl1 ctrlSetText "cse\cse_sys_ballistics\advancedballistics\data\protractor.paa"; + __ctrl1 ctrlSetTextColor [1, 1, 1, 1]; + + __ctrl2 ctrlSetScale 0.75; + __ctrl2 ctrlSetPosition [(_refPosition select 0), (_refPosition select 1) - 0.0012 * _inclinationAngle, (_refPosition select 2), (_refPosition select 3)]; + __ctrl2 ctrlCommit 0; + __ctrl2 ctrlSetText "cse\cse_sys_ballistics\advancedballistics\data\protractor_marker.paa"; + __ctrl2 ctrlSetTextColor [1, 1, 1, 1]; + + sleep 0.1; + }; + + cse_AB_Protractor = false; + 1 cutText ["", "PLAIN"]; +}; + +true diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_wind_info.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_wind_info.sqf new file mode 100644 index 0000000000..373621fde7 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_display_wind_info.sqf @@ -0,0 +1,64 @@ +#include "defines.h" + +#define __dsp (uiNamespace getVariable "RscWindIntuitive") +#define __ctrl (__dsp displayCtrl 132948) + +private ["_windSpeed", "_windDir", "_playerDir", "_windIndex", "_windColor", "_newWindSpeed", "_windSource", "_height"]; + +if (cse_AB_WindInfo) exitWith { + cse_AB_WindInfo = false; + 0 cutText ["", "PLAIN"]; + true +}; +if (underwater player) exitWith { true }; +if (vehicle player != player) exitWith { true }; + +[] spawn { + 2 cutText ["", "PLAIN"]; + cse_AB_Protractor = false; + 1 cutText ["", "PLAIN"]; + cse_AB_WindInfo = true; + + while {cse_AB_WindInfo && !(underwater player) && vehicle player == player} do { + _windIndex = 12; + _windColor = [1, 1, 1, 1]; + + _windSpeed = (eyePos player) call cse_ab_ballistics_fnc_calculate_wind_speed; + + if (_windSpeed > 0.2) then { + _playerDir = getDir player; + _windDir = (wind select 0) atan2 (wind select 1); + _windIndex = round(((_playerDir - _windDir + 360) % 360) / 30); + _windIndex = _windIndex % 12; + }; + + // Color Codes from https://en.wikipedia.org/wiki/Beaufort_scale#Modern_scale + if (_windSpeed > 0.3) then { _windColor = [0.796, 1, 1, 1]; }; + if (_windSpeed > 1.5) then { _windColor = [0.596, 0.996, 0.796, 1]; }; + if (_windSpeed > 3.3) then { _windColor = [0.596, 0.996, 0.596, 1]; }; + if (_windSpeed > 5.4) then { _windColor = [0.6, 0.996, 0.4, 1]; }; + if (_windSpeed > 7.9) then { _windColor = [0.6, 0.996, 0.047, 1]; }; + if (_windSpeed > 10.7) then { _windColor = [0.8, 0.996, 0.059, 1]; }; + if (_windSpeed > 13.8) then { _windColor = [1, 0.996, 0.067, 1]; }; + if (_windSpeed > 17.1) then { _windColor = [1, 0.796, 0.051, 1]; }; + if (_windSpeed > 20.7) then { _windColor = [1, 0.596, 0.039, 1]; }; + if (_windSpeed > 24.4) then { _windColor = [1, 0.404, 0.031, 1]; }; + if (_windSpeed > 28.4) then { _windColor = [1, 0.22, 0.027, 1]; }; + if (_windSpeed > 32.6) then { _windColor = [1, 0.078, 0.027, 1]; }; + + 0 cutRsc ["RscWindIntuitive", "PLAIN", 1, false]; + + __ctrl ctrlSetScale 0.75; + __ctrl ctrlCommit 0; + + __ctrl ctrlSetText format["cse\cse_sys_ballistics\advancedballistics\data\wind%1.paa", _windIndex]; + __ctrl ctrlSetTextColor _windColor; + + sleep 0.5; + }; + + cse_AB_WindInfo = false; + 0 cutText ["", "PLAIN"]; +}; + +true diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_humidity_at_height.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_humidity_at_height.sqf new file mode 100644 index 0000000000..76d6903cdf --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_humidity_at_height.sqf @@ -0,0 +1,17 @@ +#include "defines.h" + +private ["_fogValue", "_fogDecay", "_fogBase"]; + +if (cse_AB_Humidity < 1 && fog > 0) then { + _fogValue = fogParams select 0; + _fogDecay = fogParams select 1; + _fogBase = fogParams select 2; + _fogDensity = 1 - 0.05 * (_fogDecay / _fogValue * (_this - _fogBase))^2; + if (_fogDensity > 0) then { + 1 + } else { + cse_AB_Humidity + (1 - cse_AB_Humidity) * (0 max (1 + _fogDensity)) + }; +} else { + cse_AB_Humidity +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_temperature_at_height.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_temperature_at_height.sqf new file mode 100644 index 0000000000..b9c3207518 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_get_temperature_at_height.sqf @@ -0,0 +1,3 @@ +#include "defines.h" + +GET_TEMPERATURE_AT_HEIGHT(_this) diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_initialize_terrain_extension.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_initialize_terrain_extension.sqf new file mode 100644 index 0000000000..014de5c4ac --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_initialize_terrain_extension.sqf @@ -0,0 +1,31 @@ +if (!cse_AB_UseDLL) exitWith {}; + +[] spawn { + private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"]; + + _initStartTime = time; + _mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"); + + if (("AdvancedBallistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith { + if (cse_AB_InitMessageEnabled) then { + systemChat "AdvancedBallistics: Terrain already initialized"; + }; + }; + + _mapGrids = ceil(_mapSize / 50); + + for "_x" from 0 to _mapGrids * 50 step 50 do { + for "_y" from 0 to _mapGrids * 50 step 50 do { + _gridCenter = [_x + 25, _y + 25]; + _gridHeight = round(getTerrainHeightASL _gridCenter); + _gridNumObjects = count (_gridCenter nearObjects ["Building", 50]); + _gridSurfaceIsWater = if (surfaceIsWater _gridCenter) then {1} else {0}; + "AdvancedBallistics" callExtension format["set:%1:%2:%3", _gridHeight, _gridNumObjects, _gridSurfaceIsWater]; + }; + sleep 0.001; + }; + + if (cse_AB_InitMessageEnabled) then { + systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(time - _initStartTime)]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_mirage_simulation.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_mirage_simulation.sqf new file mode 100644 index 0000000000..3c7c01464d --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_mirage_simulation.sqf @@ -0,0 +1,45 @@ +#include "defines.h" + +private ["_opticsName", "_parallax", "_playerDirection", "_vectorToFocalPoint", "_focusLength", "_focalPoint", "_roughnessLength", "_distCoef", "_focalPlaneAngle", "_windSpeedRef", "_windSpeed", + "_particleSize", "_particleMoveVelocityRef", "_particleMoveVelocity", "_pASL", "_pATL", "_height"]; + +while {cse_AB_MirageEnabled} do { + _opticsName = currentWeapon player; + if (currentWeapon player == primaryWeapon player && count primaryWeaponItems player > 2) then { + _opticsName = (primaryWeaponItems player) select 2; + }; + _parallax = player getVariable [format["cse_AB_Parallax:%1", _opticsName], 0]; + + while {sunOrMoon == 1 && cameraView == "GUNNER" && _parallax > 0} do { + _vectorToFocalPoint = (ATLToASL(screenToWorld [0.5,0.5])) vectorDiff (getPosASL player); + _focusLength = vectorMagnitude _vectorToFocalPoint; + if (_focusLength > 0) then { + _vectorToFocalPoint = _vectorToFocalPoint vectorMultiply (_parallax / _focusLength); + }; + _focusLength = vectorMagnitude _vectorToFocalPoint; + _focalPoint = (getPosASL player) vectorAdd _vectorToFocalPoint; + + _roughnessLength = _focalPoint call cse_ab_ballistics_fnc_calculate_roughness_length; + _distCoef = (1 max (_focusLength / 100)) ^ 0.5; + _focalPlaneAngle = (getDir player) + 90; + _windSpeedRef = vectorMagnitude wind; + _particleSize = 0.5 * _distCoef; + _particleMoveVelocityRef = [0, 0, 0.01] vectorAdd ((vectorNormalized wind) vectorMultiply (0.1)); + for "_j" from -10 to 10 do { + for "_i" from -10 to 10 do { + _pASL = [(_focalPoint select 0) + _j / 2 * _distCoef * sin(_focalPlaneAngle), (_focalPoint select 1) + _j / 2 * _distCoef * cos(_focalPlaneAngle), (_focalPoint select 2) + _i / 2 * _distCoef]; + _pATL = ASLToATL _pASL; + _windSpeed = _windSpeedRef; + _height = _pATL select 2; + if (_height < 20) then { + _windSpeed = _windSpeed * ln(_height / _roughnessLength) / ln(20 / _roughnessLength); + }; + _particleMoveVelocity = _particleMoveVelocityRef vectorMultiply _windSpeed; + drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,8,_pATL,_particleMoveVelocity,0,1.275,1,0,[_particleSize,_particleSize],[[0,0,0,0.3],[0,0,0,0.15]],[1,0],0,0,"","",""]; + }; + }; + _parallax = player getVariable [format["cse_AB_Parallax:%1", _opticsName], 0]; + sleep 1; + }; + sleep 1; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_synchronize_scope_zero.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_synchronize_scope_zero.sqf new file mode 100644 index 0000000000..13a8fb950a --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/functions/fn_synchronize_scope_zero.sqf @@ -0,0 +1,14 @@ +#include "defines.h" + +private ["_opticsName", "_zeroPlayer", "_zeroProfileNamespace"]; + +if (count primaryWeaponItems player > 2) then +{ + _opticsName = (primaryWeaponItems player) select 2; + _zeroPlayer = player getVariable [format["cse_AB_Zero:%1", _opticsName], 0]; + _zeroProfileNamespace = profileNamespace getVariable [format["cse_AB_Zero:%1", _opticsName], 0]; + + if (_zeroProfileNamespace != 0 && _zeroPlayer != _zeroProfileNamespace) then { + player setVariable [format["cse_AB_Zero:%1", _opticsName], _zeroProfileNamespace, true]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/init.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/init.sqf new file mode 100644 index 0000000000..9fd1de801f --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/init.sqf @@ -0,0 +1,36 @@ +private ["_args"]; +_args = _this; +{ + _varName = "cse_ab_"+(_x select 0); + missionNamespace setvariable[_varName, _x select 1]; +}foreach _args; + +cse_ab_AdvancedBallistics = true; + +if (isNil "cse_AB_WindEnabled") then { cse_AB_WindEnabled = cse_AB_WIND_ENABLED }; +if (isNil "cse_AB_SpinDriftEnabled") then { cse_AB_SpinDriftEnabled = cse_AB_SPIN_DRIFT_ENABLED }; +if (isNil "cse_AB_CoriolisEnabled") then { cse_AB_CoriolisEnabled = cse_AB_CORIOLIS_ENABLED }; +if (isNil "cse_AB_EoetvoesEnabled") then { cse_AB_EoetvoesEnabled = cse_AB_EOETVOES_ENABLED }; +if (isNil "cse_AB_AdvancedAirDragEnabled") then { cse_AB_AdvancedAirDragEnabled = cse_AB_ADVANCED_AIR_DRAG_ENABLED }; +if (isNil "cse_AB_TransonicRegionEnabled") then { cse_AB_TransonicRegionEnabled = cse_AB_TRANSONIC_REGION_ENABLED }; +if (isNil "cse_AB_MilTurretsEnabled") then { cse_AB_MilTurretsEnabled = cse_AB_MIL_TURRETS_ENABLED }; +if (isNil "cse_AB_AmmoTemperatureEnabled") then { cse_AB_AmmoTemperatureEnabled = cse_AB_AMMO_TEMPERATURE_ENABLED }; +if (isNil "cse_AB_BulletTraceEnabled") then { cse_AB_BulletTraceEnabled = cse_AB_BULLET_TRACE_ENABLED }; +if (isNil "cse_AB_MirageEnabled") then { cse_AB_MirageEnabled = cse_AB_MIRAGE_ENABLED }; +if (isNil "cse_AB_AtmosphericDensitySimulationEnabled") then { cse_AB_AtmosphericDensitySimulationEnabled = cse_AB_ATMOSPHERIC_DENSITY_SIMULATION_ENABLED }; +if (isNil "cse_AB_BarrelLengthInfluenceEnabled") then { cse_AB_BarrelLengthInfluenceEnabled = cse_AB_BARREL_LENGTH_INFLUENCE }; +if (isNil "cse_AB_VehicleGunnerEnabled") then { cse_AB_VehicleGunnerEnabled = cse_AB_VEHICLE_GUNNER_ENABLED }; +if (isNil "cse_AB_ExtensionsEnabled") then { cse_AB_ExtensionsEnabled = cse_AB_EXTENSIONS_ENABLED }; +if (isNil "cse_AB_InitMessageEnabled") then { cse_AB_InitMessageEnabled = cse_AB_INIT_MESSAGE_ENABLED }; +if (isNil "cse_AB_OnlyActiveForLocalPlayer") then { cse_AB_OnlyActiveForLocalPlayer = cse_AB_ONLY_ACTIVE_FOR_LOCAL_PLAYER }; +if (isNil "cse_AB_OnlyActiveForPlayerGroup") then { cse_AB_OnlyActiveForPlayerGroup = cse_AB_ONLY_ACTIVE_FOR_PLAYER_GROUP }; +if (isNil "cse_AB_Precision") then { cse_AB_Precision = cse_AB_PRECISION }; +if (isNil "cse_AB_DisabledByDefault") then { cse_AB_DisabledByDefault = cse_AB_DISABLED_BY_DEFAULT in [true, 1] }; + +if (isNil "cse_AB_temperatureShift") then { cse_AB_temperatureShift = (random 3) - (random 3); publicVariable "cse_AB_temperatureShift"; }; +if (isNil "cse_AB_badWeatherShift") then { cse_AB_badWeatherShift = (random 1)^2 * 10; publicVariable "cse_AB_badWeatherShift"; }; +if (isNil "cse_AB_humidityShift") then { cse_AB_humidityShift = ((random 5) - (random 5)) / 100; publicVariable "cse_AB_humidityShift"; }; + +if (hasInterface) then { + call compile preprocessFileLineNumbers "cse\cse_sys_ballistics\advancedballistics\initClient.sqf"; +}; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/initClient.sqf b/TO_MERGE/cse/sys_ballistics/advancedballistics/initClient.sqf new file mode 100644 index 0000000000..b2f41b8a16 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/initClient.sqf @@ -0,0 +1,169 @@ +if (isNil "cse_AB_OnlyActiveForLocalPlayer") then { cse_AB_OnlyActiveForLocalPlayer = false; }; +if (isNil "cse_AB_DisabledInFullAutoMode") then { cse_AB_DisabledInFullAutoMode = false; }; +if (isNil "cse_AB_UseDLL") then { cse_AB_UseDLL = false; }; + +if (cse_AB_ExtensionsEnabled && ("AdvancedBallistics" callExtension "version") == "1.0") then { + cse_AB_UseDLL = true; + cse_ab_ballistics_fnc_advanced_ballistics = cse_ab_ballistics_fnc_advanced_ballistics_extension; +}; + +cse_AB_bulletDatabase = []; +cse_AB_bulletDatabaseStartTime = []; +cse_AB_bulletDatabaseSpeed = []; +cse_AB_bulletDatabaseFrames = []; +cse_AB_bulletDatabaseLastFrame = []; +cse_AB_bulletDatabaseHDeflect = []; +cse_AB_bulletDatabaseSpinDrift = []; +cse_AB_bulletDatabaseOccupiedIndices = []; +cse_AB_bulletDatabaseFreeIndices = []; + +cse_AB_WindInfo = false; +cse_AB_WindInfoStart = time; + +cse_AB_Protractor = false; +cse_AB_ProtractorStart = time; + +cse_AB_Altitude = 0; +cse_AB_Latitude = 50; + +cse_AB_Temperature = 15; +cse_AB_Humidity = 50; + +if (worldName in ["Chernarus", "Bootcamp_ACR", "Woodland_ACR", "utes"]) then { cse_AB_Latitude = 50; cse_AB_Altitude = 0; }; +if (worldName in ["Altis", "Stratis"]) then { cse_AB_Latitude = 40; cse_AB_Altitude = 0; }; +if (worldName in ["Takistan", "Zargabad", "Mountains_ACR"]) then { cse_AB_Latitude = 35; cse_AB_Altitude = 2000; }; +if (worldName in ["Shapur_BAF", "ProvingGrounds_PMC"]) then { cse_AB_Latitude = 35; cse_AB_Altitude = 100; }; +if (worldName in ["fallujah"]) then { cse_AB_Latitude = 33; cse_AB_Altitude = 0; }; +if (worldName in ["fata", "Abbottabad"]) then { cse_AB_Latitude = 30; cse_AB_Altitude = 1000; }; +if (worldName in ["sfp_wamako"]) then { cse_AB_Latitude = 14; cse_AB_Altitude = 0; }; +if (worldName in ["sfp_sturko"]) then { cse_AB_Latitude = 56; cse_AB_Altitude = 0; }; +if (worldName in ["Bornholm"]) then { cse_AB_Latitude = 55; cse_AB_Altitude = 0; }; +if (worldName in ["Imrali"]) then { cse_AB_Latitude = 40; cse_AB_Altitude = 0; }; +if (worldName in ["Caribou"]) then { cse_AB_Latitude = 68; cse_AB_Altitude = 0; }; +if (worldName in ["Namalsk"]) then { cse_AB_Latitude = 65; cse_AB_Altitude = 0; }; +if (worldName in ["MCN_Aliabad"]) then { cse_AB_Latitude = 36; cse_AB_Altitude = 0; }; +if (worldName in ["Clafghan"]) then { cse_AB_Latitude = 34; cse_AB_Altitude = 640; }; +if (worldName in ["Sangin", "hellskitchen"]) then { cse_AB_Latitude = 32; cse_AB_Altitude = 0; }; +if (worldName in ["Sara"]) then { cse_AB_Latitude = 40; cse_AB_Altitude = 0; }; +if (worldName in ["reshmaan"]) then { cse_AB_Latitude = 35; cse_AB_Altitude = 2000; }; +if (worldName in ["Thirsk"]) then { cse_AB_Latitude = 65; cse_AB_Altitude = 0; }; +if (worldName in ["lingor"]) then { cse_AB_Latitude = -4; cse_AB_Altitude = 0; }; + +waitUntil {!isNil "cse_gui"}; +waitUntil {!isNull player}; + +if (isNil {player getVariable "cse_enabled_AdvancedBallistics"}) then { + player setVariable ["cse_enabled_AdvancedBallistics", !cse_AB_DisabledByDefault, true]; +}; + +if (cse_AB_MilTurretsEnabled) then { + // Elevation minor step up + ["cse_sys_ballistics_AB_Adjustment_Up", (["cse_sys_ballistics_AB_Adjustment_Up","action",[200, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [0, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Up","action", "Minor adjustment up", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Elevation minor step down + ["cse_sys_ballistics_AB_Adjustment_Down", (["cse_sys_ballistics_AB_Adjustment_Down","action",[208, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [1, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Down","action", "Minor adjustment Down", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Windage minor step left + ["cse_sys_ballistics_AB_Adjustment_Left", (["cse_sys_ballistics_AB_Adjustment_Left","action",[203, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [2, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Left","action", "Minor adjustment Left", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Windage minor step right + ["cse_sys_ballistics_AB_Adjustment_Right", (["cse_sys_ballistics_AB_Adjustment_Right","action",[205, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [3, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Right","action", "Minor adjustment Right", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Elevation major step up + ["cse_sys_ballistics_AB_Adjustment_Up_major", (["cse_sys_ballistics_AB_Adjustment_Up_major","action",[200, 1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [0, true] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Up_major","action", "Major adjustment up", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Elevation major step down + ["cse_sys_ballistics_AB_Adjustment_Down_major", (["cse_sys_ballistics_AB_Adjustment_Down_major","action",[208, 1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [1, true] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Down_major","action", "Major adjustment Down", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Windage major step left + ["cse_sys_ballistics_AB_Adjustment_Left_major", (["cse_sys_ballistics_AB_Adjustment_Left_major","action",[203, 1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [2, true] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Left_major","action", "Major adjustment Left_major", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Windage major step right + ["cse_sys_ballistics_AB_Adjustment_Right_major", (["cse_sys_ballistics_AB_Adjustment_Right_major","action",[205, 1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [3, true] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + + ["cse_sys_ballistics_AB_Adjustment_Right_major","action", "Major adjustment Right", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + // Scope zero adjustment + ["cse_sys_ballistics_AB_Adjustment_Zero_Up", (["cse_sys_ballistics_AB_Adjustment_Zero_Up","action",[200, 1,1,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [4, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + ["cse_sys_ballistics_AB_Adjustment_Zero_Up","action", "Zero adjustment up", "Zero adjustment up"] call cse_fnc_settingsDefineDetails_F; + + ["cse_sys_ballistics_AB_Adjustment_Zero_Down", (["cse_sys_ballistics_AB_Adjustment_Zero_Down","action",[208, 1,1,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + [5, false] call cse_ab_ballistics_fnc_adjust_turret; + }] call cse_fnc_addKeyBindingForAction_F; + ["cse_sys_ballistics_AB_Adjustment_Zero_Down","action", "Zero adjustment down", "Zero adjustment down"] call cse_fnc_settingsDefineDetails_F; +}; + +// Parallax Adjustment +if (cse_AB_MirageEnabled) then { + ["cse_sys_ballistics_AB_Adjustment_Parallax_Up", (["cse_sys_ballistics_AB_Adjustment_Parallax_Up","action",[200, 0,1,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + 0 call cse_ab_ballistics_fnc_adjust_parallax; + }] call cse_fnc_addKeyBindingForAction_F; + ["cse_sys_ballistics_AB_Adjustment_Parallax_Up","action", "Parallax adjustment up", "Parallax adjustment up"] call cse_fnc_settingsDefineDetails_F; + + ["cse_sys_ballistics_AB_Adjustment_Parallax_Down", (["cse_sys_ballistics_AB_Adjustment_Parallax_Down","action",[208, 0,1,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + 1 call cse_ab_ballistics_fnc_adjust_parallax; + }] call cse_fnc_addKeyBindingForAction_F; + ["cse_sys_ballistics_AB_Adjustment_Parallax_Down","action", "Parallax adjustment down", "Parallax adjustment down"] call cse_fnc_settingsDefineDetails_F; +}; + +// Show wind Info +["cse_sys_ballistics_AB_Display_Wind_Info", (["cse_sys_ballistics_AB_Display_Wind_Info","action",[37,1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + _this call cse_ab_ballistics_fnc_display_wind_info; + }] call cse_fnc_addKeyBindingForAction_F; +["cse_sys_ballistics_AB_Display_Wind_Info","action", "Show wind info", "Show wind info"] call cse_fnc_settingsDefineDetails_F; + +// Show protractor +["cse_sys_ballistics_AB_Display_Protractor", (["cse_sys_ballistics_AB_Display_Protractor","action",[37,1,1,0]] call cse_fnc_getKeyBindingFromProfile_F), + { + _this call cse_ab_ballistics_fnc_display_protractor; + }] call cse_fnc_addKeyBindingForAction_F; +["cse_sys_ballistics_AB_Display_Protractor","action", "Show protractor", "Show protractor"] call cse_fnc_settingsDefineDetails_F; + +_handle = _this spawn cse_ab_ballistics_fnc_climate_simulation; +_handle = _this spawn cse_ab_ballistics_fnc_mirage_simulation; +_handle = _this spawn cse_ab_ballistics_fnc_initialize_terrain_extension; diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/license.txt b/TO_MERGE/cse/sys_ballistics/advancedballistics/license.txt new file mode 100644 index 0000000000..eb925e129b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/advancedballistics/license.txt @@ -0,0 +1,19 @@ +Copyright (c) <2014> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/advancedballistics/sound/scope_click.wav b/TO_MERGE/cse/sys_ballistics/advancedballistics/sound/scope_click.wav new file mode 100644 index 0000000000000000000000000000000000000000..fada5770453865c7586dba060ef15834617984b1 GIT binary patch literal 22152 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

rbr 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 0) then { + cse_ab_ATragMX_gunList = profileNamespace getVariable "cse_ab_ATragMX_gunList"; +} else { + // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Elevation Scope Step, Windage Scope Step, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Ammo Class Name, Magazine Class Name, BC, Drag Model, Atmosphere Model + cse_ab_ATragMX_gunList = [["12.7x108mm" , 820, 500, 0.255, -0.0005600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.700, 1, "ASM" ], + ["12.7x99mm" , 880, 500, 0.202, -0.0005600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ], + ["10.4x77mm" , 910, 500, 0.200, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], + ["7.62x51mm" , 850, 500, 0.280, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], + ["6.5x39mm" , 800, 500, 0.304, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless", "30Rnd_65x39_caseless_mag", 0.263, 1, "ICAO"], + ["5.56x45mm" , 920, 500, 0.259, -0.0012000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ], + ["5.56x45mm Mk262" , 850, 500, 0.294, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "RH_556x45_Mk262" , "RH_30Rnd_556x45_Mk262" , 0.361, 1, "ASM" ]]; + + profileNamespace setVariable ["cse_ab_ATragMX_gunList", cse_ab_ATragMX_gunList]; +}; + +call compile preprocessFile ("cse\cse_sys_ballistics\atragmx\init.sqf"); +//call compile preprocessFile ("\atragmx\fnc_sord.sqf"); + + +[] spawn { + waituntil {!isnil "cse_gui"}; + // TODO seperate config entry for this, outside module space. + ["cse_sys_ballistics_ATragMX_open", (["cse_sys_ballistics_ATragMX_open","menu",[197, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), { _this call cse_ab_ATragMX_fnc_create_dialog; }, 0] call cse_fnc_addKeyBindingForMenu_F; + ["cse_sys_ballistics_ATragMX_open","menu", "Open ATragMX", "Opens the ATragMX dialog"] call cse_fnc_settingsDefineDetails_F; + + _entries = [ + ["ATragMX", {([player, 'cse_ab_ATragMX'] call cse_fnc_hasItem_CC)}, "cse\cse_sys_ballistics\atragmx\data\ATRAG_Icon.paa", { closeDialog 0; call cse_ab_ATragMX_fnc_create_dialog; }, "Use ATragMX"] + ]; + ["ActionMenu", "equipment", _entries] call cse_fnc_addMultipleEntriesToRadialCategory_F; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/config.cpp b/TO_MERGE/cse/sys_ballistics/atragmx/config.cpp new file mode 100644 index 0000000000..e17c52e8db --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/config.cpp @@ -0,0 +1,35 @@ +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 + +class CfgPatches +{ + class cse_ab_atragmx + { + units[]={}; + weapons[]= {"cse_ab_ATragMX"}; + requiredVersion=1.26; + requiredAddons[]= {"cse_f_modules", "cse_main", "cse_f_configuration"}; + version="1.0"; + author[]= {"Ruthberg"}; + }; +}; +class CfgAddons +{ + class PreloadAddons + { + class cse_ab_atragmx + { + list[]= + { + "cse_ab_atragmx" + }; + }; + }; +}; + +#include "Combat_Space_Enhancement.h" +#include "CfgFunctions.h" +#include "CfgWeapons.h" +#include "CfgVehicles.h" +#include "UI.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/data/ATRAG.paa b/TO_MERGE/cse/sys_ballistics/atragmx/data/ATRAG.paa new file mode 100644 index 0000000000000000000000000000000000000000..5708a35786c19a56e939e195c3bd857a95cb40e9 GIT binary patch literal 227386 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%0DFznFy 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

4KD` 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 X;kn`!+nXbPIR`+tnP}LEKr90Q1i5|$ literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_add_new_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_add_new_gun.sqf new file mode 100644 index 0000000000..7c4d01c261 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_add_new_gun.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +private ["_gunName", "_gunProfileEntry"]; + +_gunName = ctrlText 11001; +if (_gunName != "") then { + _gunProfileEntry = [_gunName, 850, 500, 0.280, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "", "", 0.393, 1, "ICAO"]; + + cse_ab_ATragMX_gunList = cse_ab_ATragMX_gunList + [_gunProfileEntry]; + + lbAdd [6000, _gunProfileEntry select 0]; + + profileNamespace setVariable ["cse_ab_ATragMX_gunList", cse_ab_ATragMX_gunList]; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_range_card.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_range_card.sqf new file mode 100644 index 0000000000..2ad0cd836a --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_range_card.sqf @@ -0,0 +1,48 @@ +#include "script_component.hpp" + +call cse_ab_ATragMX_fnc_parse_input; + +private ["_scopeBaseAngle"]; +_scopeBaseAngle = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 3); + +private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; +_bulletMass = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 12; +_boreHeight = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 5; +_airFriction = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 4; +_muzzleVelocity = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 1; +_bc = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 15; +_dragModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 16; +_atmosphereModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 17; + +private ["_temperature", "_barometricPressure", "_relativeHumidity"]; +_temperature = (cse_ab_ATragMX_temperature select cse_ab_ATragMX_currentTarget); +_barometricPressure = (cse_ab_ATragMX_barometricPressure select cse_ab_ATragMX_currentTarget); +_relativeHumidity = (cse_ab_ATragMX_relativeHumidity select cse_ab_ATragMX_currentTarget); +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _temperature = (_temperature - 32) / 1.8; + _barometricPressure = _barometricPressure * 33.8638866667; +}; + +private ["_windSpeed", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange"]; +_windSpeed = (cse_ab_ATragMX_windSpeed select cse_ab_ATragMX_currentTarget); +_windDirection = (cse_ab_ATragMX_windDirection select cse_ab_ATragMX_currentTarget); +_inclinationAngle = (cse_ab_ATragMX_inclinationAngle select cse_ab_ATragMX_currentTarget); +_targetSpeed = (cse_ab_ATragMX_targetSpeed select cse_ab_ATragMX_currentTarget); +_targetRange = cse_ab_ATragMX_rangeCardEndRange; +if (cse_ab_ATragMX_currentUnit != 2) then +{ + _targetRange = _targetRange / 1.0936133; +}; +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _windSpeed = _windSpeed / 2.23693629; + _targetSpeed = _targetSpeed / 2.23693629; +}; + +cse_ab_ATragMX_rangeCardData = []; + +private ["_result"]; +_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, + _windSpeed, _windDirection, _inclinationAngle, _targetSpeed, _targetRange, _bc, _dragModel, _atmosphereModel, true] call cse_ab_ATragMX_fnc_calculate_solution; + diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_scope_base_angle.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_scope_base_angle.sqf new file mode 100644 index 0000000000..3e39d9a478 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_scope_base_angle.sqf @@ -0,0 +1,20 @@ +#include "script_component.hpp" + +private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_zeroRange"]; +_bulletMass = _this select 0; +_boreHeight = _this select 1; +_airFriction = _this select 2; +_muzzleVelocity = _this select 3; +_zeroRange = _this select 4; + +private ["_scopeBaseAngle"]; +_scopeBaseAngle = 0; + +private ["_temperature", "_barometricPressure", "_relativeHumidity"]; +_temperature = 15; +_barometricPressure = 1013.25; +_relativeHumidity = 0; + +_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _airFriction, 1, "ICAO", false] call cse_ab_ATragMX_fnc_calculate_solution; + +_scopeBaseAngle + (_result select 0) / 60 diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_solution.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_solution.sqf new file mode 100644 index 0000000000..89b380cc17 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_solution.sqf @@ -0,0 +1,123 @@ +#include "script_component.hpp" + +private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData"]; +_scopeBaseAngle = _this select 0; +_bulletMass = _this select 1; +_boreHeight = _this select 2; +_airFriction = _this select 3; +_muzzleVelocity = _this select 4; +_temperature = _this select 5; +_barometricPressure = _this select 6; +_relativeHumidity = _this select 7; +_simSteps = _this select 8; +_windSpeed = _this select 9; +_windDirection = _this select 10; +_inclinationAngle = _this select 11; +_targetSpeed = _this select 12; +_targetRange = _this select 13; +_bc = _this select 14; +_dragModel = _this select 15; +_atmosphereModel = _this select 16; +_storeRangeCardData = _this select 17; + +private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_gravity", "_deltaT"]; +_bulletPos = [0, 0, 0]; +_bulletVelocity = [0, 0, 0]; +_bulletAccel = [0, 0, 0]; +_gravity = [0, sin(_scopeBaseAngle + _inclinationAngle) * -9.80665, cos(_scopeBaseAngle + _inclinationAngle) * -9.80665]; +_deltaT = 1 / _simSteps; + +private ["_elevation", "_windage", "_lead", "_TOF", "_bulletSpeed", "_kineticEnergy"]; +_elevation = 0; +_windage = 0; +_lead = 0; +_TOF = 0; +_bulletSpeed = 0; + +private ["_n", "_range", "_rangeFactor"]; +_n = 0; +_range = 0; +_rangeFactor = 1; +if (_storeRangeCardData) then { + if (cse_ab_ATragMX_currentUnit != 2) then { + _rangeFactor = 1.0936133; + }; + cse_ab_ATragMX_rangeCardData = []; +}; + +private ["_wind"]; +if (["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_F) then { + _wind = [cos(270 - _windDirection * 30) * _windSpeed, sin(270 - _windDirection * 30) * _windSpeed, 0]; + if (cse_AB_AdvancedAirDragEnabled) then { + _bc = [_bc, _temperature, _barometricPressure, _relativeHumidity, _atmosphereModel] call cse_ab_ballistics_fnc_calculate_Atmospheric_Correction; + }; +}; + +_TOF = 0; + +_bulletPos set [0, 0]; +_bulletPos set [1, 0]; +_bulletPos set [2, -(_boreHeight / 100)]; + +_bulletVelocity set [0, 0]; +_bulletVelocity set [1, Cos(_scopeBaseAngle) * _muzzleVelocity]; +_bulletVelocity set [2, Sin(_scopeBaseAngle) * _muzzleVelocity]; + +while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do +{ + _bulletSpeed = vectorMagnitude _bulletVelocity; + + if (["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_F) then { + private ["_trueVelocity", "_trueSpeed", "_drag"]; + _trueVelocity = _bulletVelocity vectorDiff _wind; + _trueSpeed = vectorMagnitude _trueVelocity; + + if (cse_AB_AdvancedAirDragEnabled) then { + _drag = -1 * ([_dragModel, _bc, _trueSpeed] call cse_ab_ballistics_fnc_calculate_Retardation); + } else { + _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction); + }; + _bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (_drag); + } else { + _bulletAccel = _bulletVelocity vectorMultiply (_bulletSpeed * _airFriction); + }; + + _bulletAccel = _bulletAccel vectorAdd _gravity; + + _bulletVelocity = _bulletVelocity vectorAdd (_bulletAccel vectorMultiply _deltaT); + _bulletPos = _bulletPos vectorAdd (_bulletVelocity vectorMultiply _deltaT); + + _TOF = _TOF + _deltaT; + + if (_storeRangeCardData) then { + _range = cse_ab_ATragMX_rangeCardStartRange + _n * cse_ab_ATragMX_rangeCardIncrement; + if ((_bulletPos select 1) * _rangeFactor >= _range && _range <= cse_ab_ATragMX_rangeCardEndRange) then { + if ((_bulletPos select 1) > 0) then { + _elevation = - atan((_bulletPos select 2) / (_bulletPos select 1)); + _windage = - atan((_bulletPos select 0) / (_bulletPos select 1)); + }; + if (_range != 0) then { + _lead = (_targetSpeed * _TOF) / (Tan(3.38 / 60) * _range); + }; + _kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2)); + _kineticEnergy = _kineticEnergy * 0.737562149; + + cse_ab_ATragMX_rangeCardData set [_n, [_range, _elevation * 60, _windage * 60, _lead, _TOF, _bulletSpeed, _kineticEnergy]]; + _n = _n + 1; + }; + }; +}; + +if ((_bulletPos select 1) > 0) then { + _elevation = - atan((_bulletPos select 2) / (_bulletPos select 1)); + _windage = - atan((_bulletPos select 0) / (_bulletPos select 1)); +}; + +if (_targetRange != 0) then { + _lead = (_targetSpeed * _TOF) / (Tan(3.38 / 60) * _targetRange); +}; + +_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2)); +_kineticEnergy = _kineticEnergy * 0.737562149; + +[_elevation * 60, _windage * 60, _lead, _TOF, _bulletSpeed, _kineticEnergy] diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_range_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_range_assist.sqf new file mode 100644 index 0000000000..76adcc77da --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_range_assist.sqf @@ -0,0 +1,105 @@ +#include "script_component.hpp" + +private ["_targetSize", "_imageSize", "_angle", "_estRange"]; + +_angle = parseNumber(ctrlText 7012); +_targetSize = parseNumber(ctrlText 7010); +if (cse_ab_ATragMX_rangeAssistUseTargetHeight) then +{ + _targetSize = _targetSize * cos(_angle); +}; +switch (cse_ab_ATragMX_rangeAssistTargetSizeUnit) do +{ + case 0: + { + _targetSize = _targetSize * 0.0254; + }; + case 1: + { + _targetSize = _targetSize * 0.3048; + }; + case 2: + { + _targetSize = _targetSize * 0.01; + }; +}; +_imageSize = parseNumber(ctrlText 7011); +switch (cse_ab_ATragMX_rangeAssistImageSizeUnit) do +{ + case 0: + { + _imageSize = _imageSize / 6400 * 360; + }; + case 1: + { + _imageSize = _imageSize / 60; + }; + case 2: + { + _imageSize = _imageSize / 60 / 1.047; + }; +}; +_estRange = parseNumber(ctrlText 7013); +if (cse_ab_ATragMX_currentUnit != 2) then +{ + _estRange = _estRange / 1.0936133; +}; + +switch (_this) do +{ + case 0: + { + _targetSize = tan(_imageSize) * _estRange; + + if (cse_ab_ATragMX_rangeAssistUseTargetHeight) then + { + _targetSize = _targetSize / cos(_angle); + }; + + switch (cse_ab_ATragMX_rangeAssistTargetSizeUnit) do + { + case 0: + { + _targetSize = _targetSize / 0.0254; + }; + case 1: + { + _targetSize = _targetSize / 0.3048; + }; + case 2: + { + _targetSize = _targetSize / 0.01; + }; + }; + + ctrlSetText [7010, Str(Round(_targetSize * 100) / 100)]; + }; + case 1: + { + _imageSize = atan(_targetSize / _estRange); + + switch (cse_ab_ATragMX_rangeAssistImageSizeUnit) do + { + case 0: + { + _imageSize = _imageSize * 6400 / 360; + }; + case 1: + { + _imageSize = _imageSize * 60; + }; + case 2: + { + _imageSize = _imageSize * 60 * 1.047; + }; + }; + + ctrlSetText [7011, Str(Round(_imageSize * 100) / 100)]; + }; + case 2: + { + _estRange = _targetSize / tan(_imageSize); + + ctrlSetText [7013, Str(Round(_estRange))]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_solution.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_solution.sqf new file mode 100644 index 0000000000..2b30a882fd --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_solution.sqf @@ -0,0 +1,52 @@ +#include "script_component.hpp" + +call cse_ab_ATragMX_fnc_parse_input; + +private ["_scopeBaseAngle"]; +_scopeBaseAngle = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 3); + +private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; +_bulletMass = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 12; +_boreHeight = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 5; +_airFriction = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 4; +_muzzleVelocity = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 1; +_bc = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 15; +_dragModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 16; +_atmosphereModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 17; + +private ["_temperature", "_barometricPressure", "_relativeHumidity"]; +_temperature = (cse_ab_ATragMX_temperature select cse_ab_ATragMX_currentTarget); +_barometricPressure = (cse_ab_ATragMX_barometricPressure select cse_ab_ATragMX_currentTarget); +_relativeHumidity = (cse_ab_ATragMX_relativeHumidity select cse_ab_ATragMX_currentTarget); +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _temperature = (_temperature - 32) / 1.8; + _barometricPressure = _barometricPressure * 33.8638866667; +}; + +private ["_windSpeed", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange"]; +_windSpeed = (cse_ab_ATragMX_windSpeed select cse_ab_ATragMX_currentTarget); +_windDirection = (cse_ab_ATragMX_windDirection select cse_ab_ATragMX_currentTarget); +_inclinationAngle = (cse_ab_ATragMX_inclinationAngle select cse_ab_ATragMX_currentTarget); +_targetSpeed = (cse_ab_ATragMX_targetSpeed select cse_ab_ATragMX_currentTarget); +_targetRange = (cse_ab_ATragMX_targetRange select cse_ab_ATragMX_currentTarget); +if (cse_ab_ATragMX_currentUnit != 2) then +{ + _targetRange = _targetRange / 1.0936133; +}; +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _windSpeed = _windSpeed / 2.23693629; + _targetSpeed = _targetSpeed / 2.23693629; +}; + +_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, + _windSpeed, _windDirection, _inclinationAngle, _targetSpeed, _targetRange, _bc, _dragModel, _atmosphereModel, false] call cse_ab_ATragMX_fnc_calculate_solution; + +cse_ab_ATragMX_elevationOutput set [cse_ab_ATragMX_currentTarget, _result select 0]; +cse_ab_ATragMX_windageOutput set [cse_ab_ATragMX_currentTarget, _result select 1]; +cse_ab_ATragMX_leadOutput set [cse_ab_ATragMX_currentTarget, _result select 2]; +cse_ab_ATragMX_tofOutput set [cse_ab_ATragMX_currentTarget, _result select 3]; +cse_ab_ATragMX_velocityOutput set [cse_ab_ATragMX_currentTarget, _result select 4]; + +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_speed_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_speed_assist.sqf new file mode 100644 index 0000000000..1228db754a --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_calculate_target_speed_assist.sqf @@ -0,0 +1,41 @@ +#include "script_component.hpp" + +private ["_targetRange", "_numTicks", "_timeSecs", "_estSpeed"]; + +_targetRange = parseNumber(ctrlText 8004); +_numTicks = parseNumber(ctrlText 8005); +_timeSecs = parseNumber(ctrlText 8006); +_estSpeed = 0; + +if (cse_ab_ATragMX_currentUnit != 2) then +{ + _targetRange = _targetRange / 1.0936133; +}; + +switch (cse_ab_ATragMX_rangeAssistImageSizeUnit) do +{ + case 0: + { + _numTicks = _numTicks / 6400 * 360; + }; + case 1: + { + _numTicks = _numTicks / 60; + }; + case 2: + { + _numTicks = _numTicks / 60 / 1.047; + }; +}; + +if (_timeSecs > 0) then +{ + _estSpeed = tan(_numTicks) * _targetRange / _timeSecs; +}; + +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _estSpeed = _estSpeed * 2.23693629; +}; + +ctrlSetText [8007, Str(Round(_estSpeed * 10) / 10)]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_change_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_change_gun.sqf new file mode 100644 index 0000000000..11c7403da9 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_change_gun.sqf @@ -0,0 +1,23 @@ +#include "script_component.hpp" + +if (_this < 0 || _this > (count cse_ab_ATragMX_gunList) - 1) exitWith {}; + +cse_ab_ATragMX_workingMemory set [cse_ab_ATragMX_currentTarget, +(cse_ab_ATragMX_gunList select _this)]; +cse_ab_ATragMX_currentGun set [cse_ab_ATragMX_currentTarget, _this]; + +lbSetCurSel [6000, (cse_ab_ATragMX_currentGun select cse_ab_ATragMX_currentTarget)]; + +if ((cse_ab_ATragMX_scopeUnits select (cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)) != "Clicks") then +{ + cse_ab_ATragMX_currentScopeUnit set [cse_ab_ATragMX_currentTarget, (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 6]; +}; + +call cse_ab_ATragMX_fnc_update_gun; + +cse_ab_ATragMX_elevationOutput set [cse_ab_ATragMX_currentTarget, 0]; +cse_ab_ATragMX_windageOutput set [cse_ab_ATragMX_currentTarget, 0]; +cse_ab_ATragMX_leadOutput set [cse_ab_ATragMX_currentTarget, 0]; +cse_ab_ATragMX_tofOutput set [cse_ab_ATragMX_currentTarget, 0]; +cse_ab_ATragMX_velocityOutput set [cse_ab_ATragMX_currentTarget, 0]; + +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_create_dialog.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_create_dialog.sqf new file mode 100644 index 0000000000..431c2d786f --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_create_dialog.sqf @@ -0,0 +1,24 @@ +#include "script_component.hpp" + +if (underwater player) exitWith { false }; +if (!([player, "cse_ab_ATragMX"] call cse_fnc_hasItem_CC)) exitWith { false }; + +execVM "cse\cse_sys_ballistics\atragmx\functions\fn_update_target_selection.sqf"; + +createDialog 'cse_ab_ATragMX_Display'; + +true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_add_new_gun.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_gun_list.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card_setup.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_range_assist.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist.sqf"; +false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist_timer.sqf"; + +{ + lbAdd [6000, _x select 0]; +} forEach cse_ab_ATragMX_gunList; + +true diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_range_card_columns.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_range_card_columns.sqf new file mode 100644 index 0000000000..88208ceeb0 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_range_card_columns.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +cse_ab_ATragMX_rangeCardCurrentColumn = (cse_ab_ATragMX_rangeCardCurrentColumn + 1) % (count cse_ab_ATragMX_rangeCardLastColumns); + +ctrlSetText [5006, (cse_ab_ATragMX_rangeCardLastColumns select cse_ab_ATragMX_rangeCardCurrentColumn)]; + +call cse_ab_ATragMX_fnc_update_range_card; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_scope_unit.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_scope_unit.sqf new file mode 100644 index 0000000000..ce1030e417 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_cycle_scope_unit.sqf @@ -0,0 +1,8 @@ +#include "script_component.hpp" + +call cse_ab_ATragMX_fnc_parse_input; + +cse_ab_ATragMX_currentScopeUnit set [cse_ab_ATragMX_currentTarget, ((cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget) + 1) % (count cse_ab_ATragMX_scopeUnits)]; + +call cse_ab_ATragMX_fnc_update_scope_unit; +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_delete_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_delete_gun.sqf new file mode 100644 index 0000000000..ba3c10a121 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_delete_gun.sqf @@ -0,0 +1,19 @@ +#include "script_component.hpp" + +private ["_index"]; +_index = lbCurSel 6000; + +if (_index == -1) exitWith {}; + +for "_i" from 0 to (count cse_ab_ATragMX_currentGun) - 1 do { + if ((cse_ab_ATragMX_currentGun select _i) > _index) then { + cse_ab_ATragMX_currentGun set [_i, (cse_ab_ATragMX_currentGun select _i) - 1]; + }; +}; + +cse_ab_ATragMX_gunList set [_index, 0]; +cse_ab_ATragMX_gunList = cse_ab_ATragMX_gunList - [0]; + +lbDelete [6000, _index]; + +profileNamespace setVariable ["cse_ab_ATragMX_gunList", cse_ab_ATragMX_gunList]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_parse_input.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_parse_input.sqf new file mode 100644 index 0000000000..eb8230f844 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_parse_input.sqf @@ -0,0 +1,74 @@ +#include "script_component.hpp" + +cse_ab_ATragMX_temperature set [cse_ab_ATragMX_currentTarget, parseNumber(ctrlText 200)]; +cse_ab_ATragMX_barometricPressure set [cse_ab_ATragMX_currentTarget, 0 max parseNumber(ctrlText 210)]; +cse_ab_ATragMX_relativeHumidity set [cse_ab_ATragMX_currentTarget, (0 max parseNumber(ctrlText 220) min 100) / 100]; + +cse_ab_ATragMX_windSpeed set [cse_ab_ATragMX_currentTarget, 0 max abs(parseNumber(ctrlText 300)) min 50]; +cse_ab_ATragMX_windDirection set [cse_ab_ATragMX_currentTarget, 1 max Round(parseNumber(ctrlText 310)) min 12]; +cse_ab_ATragMX_inclinationAngle set [cse_ab_ATragMX_currentTarget, -60 max parseNumber(ctrlText 320) min 60]; +cse_ab_ATragMX_targetSpeed set [cse_ab_ATragMX_currentTarget, 0 max abs(parseNumber(ctrlText 330)) min 50]; +cse_ab_ATragMX_targetRange set [cse_ab_ATragMX_currentTarget, 0 max abs(parseNumber(ctrlText 340)) min 4000]; + +private ["_boreHeight", "_bulletMass", "_airFriction", "_muzzleVelocity"]; +_boreHeight = parseNumber(ctrlText 100); +_bulletMass = parseNumber(ctrlText 110); +if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_F) && cse_AB_AdvancedAirDragEnabled) then { + _airFriction = 0.1 max parseNumber(ctrlText 120) min 2; +} else { + _airFriction = parseNumber(ctrlText 120) / -1000; +}; +_muzzleVelocity = parseNumber(ctrlText 130); +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _boreHeight = _boreHeight * 2.54; + _bulletMass = _bulletMass * 0.06479891; + _muzzleVelocity = _muzzleVelocity / 3.2808399; +}; +_boreHeight = 0.1 max _boreHeight min 10; +_bulletMass = 1 max _bulletMass min 100; +_muzzleVelocity = 100 max _muzzleVelocity min 1400; + +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [5, _boreHeight]; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [12, _bulletMass]; +if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_F) && cse_AB_AdvancedAirDragEnabled) then { + (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [15, _airFriction]; +} else { + (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [4, _airFriction]; +}; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [1, _muzzleVelocity]; + +private ["_elevationCur", "_elevationCur", "_elevationScopeStep", "_windageScopeStep"]; +_elevationCur = parseNumber(ctrlText 402); +_windageCur = parseNumber(ctrlText 412); + +switch ((cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)) do +{ + case 0: + { + _elevationCur = _elevationCur * 3.38; + _windageCur = _windageCur * 3.38; + }; + + case 2: + { + _elevationCur = _elevationCur / 1.047; + _windageCur = _windageCur / 1.047; + }; + + case 3: + { + _elevationScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 7); + _windageScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 8); + + _elevationCur = _elevationCur * _elevationScopeStep; + _windageCur = _windageCur * _windageScopeStep; + }; +}; + +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [10, _elevationCur]; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [11, _windageCur]; + +call cse_ab_ATragMX_fnc_update_gun; +call cse_ab_ATragMX_fnc_update_atmosphere; +call cse_ab_ATragMX_fnc_update_target; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_reset_relative_click_memory.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_reset_relative_click_memory.sqf new file mode 100644 index 0000000000..ac2f5d8120 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_reset_relative_click_memory.sqf @@ -0,0 +1,6 @@ +#include "script_component.hpp" + +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [10, 0]; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [11, 0]; + +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_save_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_save_gun.sqf new file mode 100644 index 0000000000..7db8f0dc1e --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_save_gun.sqf @@ -0,0 +1,13 @@ +#include "script_component.hpp" + +private ["_index"]; +_index = 0 max (lbCurSel 6000); + +cse_ab_ATragMX_gunList set [_index, +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget)]; + +lbClear 6000; +{ + lbAdd [6000, _x select 0]; +} forEach cse_ab_ATragMX_gunList; + +profileNamespace setVariable ["cse_ab_ATragMX_gunList", cse_ab_ATragMX_gunList]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_add_new_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_add_new_gun.sqf new file mode 100644 index 0000000000..a3172e3b30 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_add_new_gun.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [11000, 11001, 11002, 11003]; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_gun_list.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_gun_list.sqf new file mode 100644 index 0000000000..c44cbe03fe --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_gun_list.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007]; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_main_page.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_main_page.sqf new file mode 100644 index 0000000000..d1f15db484 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_main_page.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [10, 100, 11, 110, 12, 120, 13, 130, 14, 140, 20, 200, 21, 210, 22, 220, 30, 300, 31, 310, 32, 320, 33, 330, 34, 340, 40, 400, 401, 402, 403, 41, 410, 411, 412, 42, 420, + 500, 501, 502, 503, 600, 601, 602, 603, 1000, 2000, 3000, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card.sqf new file mode 100644 index 0000000000..a49d9a04c1 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card_setup.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card_setup.sqf new file mode 100644 index 0000000000..8325418451 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_range_card_setup.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_range_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_range_assist.sqf new file mode 100644 index 0000000000..72a88b953a --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_range_assist.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist.sqf new file mode 100644 index 0000000000..37911e8a7f --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist_timer.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist_timer.sqf new file mode 100644 index 0000000000..bddaf3ddb6 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_show_target_speed_assist_timer.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +{ctrlShow [_x, _this]} forEach [9000, 9001, 9002]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_sord.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_sord.sqf new file mode 100644 index 0000000000..d888076798 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_sord.sqf @@ -0,0 +1,22 @@ +#include "script_component.hpp" + +cse_ab_ATragMX_COMPAT_LRF = ["Rangefinder", "Laserdesignator"]; + +private ["_fnc_atragmx"]; + +_fnc_atragmx = { + private ["_target", "_position", "_range", "_inclinationAngle"]; + + if ((local player) && (currentWeapon player) in cse_ab_ATragMX_COMPAT_LRF && (!isNull (_this select 0))) then { + _target = getPosATL (_this select 0); + _position = getPosATL player; + + _inclinationAngle = asin((player weaponDirection currentWeapon player) select 2); + _range = _position distance _target; + + cse_ab_ATragMX_inclinationAngle set [cse_ab_ATragMX_currentTarget, _inclinationAngle]; + cse_ab_ATragMX_targetRange set [cse_ab_ATragMX_currentTarget, _range]; + }; +}; + +//["ace_sys_rangefinder_Lazing", _fnc_atragmx] call CBA_fnc_addEventHandler; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_target_speed_assist_timer.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_target_speed_assist_timer.sqf new file mode 100644 index 0000000000..2e1311161b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_target_speed_assist_timer.sqf @@ -0,0 +1,30 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if !(ctrlVisible 9000) then +{ + private ["_startTime"]; + + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist_timer.sqf"; + + ctrlSetFocus (_dsp displayCtrl 9002); + + _startTime = time; + + while {cse_ab_ATragMX_speedAssistTimer} do + { + sleep 0.1; + ctrlSetText [9001, Str(Round((time - _startTime) * 10) / 10)]; + }; + + cse_ab_ATragMX_speedAssistTimer = true; + + ctrlSetText [8006, Str(Round((time - _startTime) * 10) / 10)]; + + call cse_ab_ATragMX_fnc_calculate_target_speed_assist; + + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist_timer.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist.sqf"; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_gun_list.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_gun_list.sqf new file mode 100644 index 0000000000..dcd777e978 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_gun_list.sqf @@ -0,0 +1,21 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if (ctrlVisible 6000) then +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_gun_list.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + + if (_this) then { + (lbCurSel 6000) call cse_ab_ATragMX_fnc_change_gun; + }; +} else +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_gun_list.sqf"; + + ctrlSetFocus (_dsp displayCtrl 6002); + + lbSetCurSel [6000, (cse_ab_ATragMX_currentGun select cse_ab_ATragMX_currentTarget)]; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card.sqf new file mode 100644 index 0000000000..8d66b43f4a --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card.sqf @@ -0,0 +1,18 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if (ctrlVisible 5006) then +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; +} else +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card.sqf"; + + ctrlSetFocus (_dsp displayCtrl 5001); + + call cse_ab_ATragMX_fnc_calculate_range_card; + call cse_ab_ATragMX_fnc_update_range_card; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card_setup.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card_setup.sqf new file mode 100644 index 0000000000..72787248a4 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_range_card_setup.sqf @@ -0,0 +1,29 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if (ctrlVisible 10000) then +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card_setup.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card.sqf"; + + if (_this == 1) then + { + cse_ab_ATragMX_rangeCardStartRange = 0 max Round(parseNumber(ctrlText 10003)) min 3000; + cse_ab_ATragMX_rangeCardEndRange = 0 max Round(parseNumber(ctrlText 10004)) min 3000; + cse_ab_ATragMX_rangeCardIncrement = 1 max Round(parseNumber(ctrlText 10005)) min 3000; + + call cse_ab_ATragMX_fnc_calculate_range_card; + call cse_ab_ATragMX_fnc_update_range_card; + }; +} else +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_range_card_setup.sqf"; + + ctrlSetFocus (_dsp displayCtrl 10006); + + ctrlSetText [10003, Str(Round(cse_ab_ATragMX_rangeCardStartRange))]; + ctrlSetText [10004, Str(Round(cse_ab_ATragMX_rangeCardEndRange))]; + ctrlSetText [10005, Str(Round(cse_ab_ATragMX_rangeCardIncrement))]; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_range_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_range_assist.sqf new file mode 100644 index 0000000000..fdaaadea2c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_range_assist.sqf @@ -0,0 +1,32 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if (ctrlVisible 7000) then +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_range_assist.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + + if (_this == 1) then + { + ctrlSetText [320, Str(parseNumber(ctrlText 7012))]; + ctrlSetText [340, Str(parseNumber(ctrlText 7013))]; + }; +} else +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_range_assist.sqf"; + + ctrlSetFocus (_dsp displayCtrl 7018); + + ctrlSetText [7012, Str(parseNumber(ctrlText 320))]; + ctrlSetText [7013, Str(parseNumber(ctrlText 340))]; + + if (cse_ab_ATragMX_currentUnit != 2) then + { + ctrlSetText [7016, "Yards"]; + } else + { + ctrlSetText [7016, "Meters"]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_speed_assist.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_speed_assist.sqf new file mode 100644 index 0000000000..f9efe70e40 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_toggle_target_speed_assist.sqf @@ -0,0 +1,39 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +if (ctrlVisible 8000) then +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + + if (_this == 1) then + { + call cse_ab_ATragMX_fnc_calculate_target_speed_assist; + ctrlSetText [330, Str(parseNumber(ctrlText 8007))]; + }; +} else +{ + false execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_main_page.sqf"; + true execVM "cse\cse_sys_ballistics\atragmx\functions\fn_show_target_speed_assist.sqf"; + + ctrlSetFocus (_dsp displayCtrl 8012); + + ctrlSetText [8004, Str(Round((cse_ab_ATragMX_targetRange select cse_ab_ATragMX_currentTarget)))]; + + if (cse_ab_ATragMX_currentUnit != 2) then + { + ctrlSetText [8008, "Yards"]; + } else + { + ctrlSetText [8008, "Meters"]; + }; + + if (cse_ab_ATragMX_currentUnit != 1) then + { + ctrlSetText [8011, "m/s"]; + } else + { + ctrlSetText [8011, "mph"]; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_atmosphere.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_atmosphere.sqf new file mode 100644 index 0000000000..32672abc7b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_atmosphere.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ctrlSetText [200, Str(Round((cse_ab_ATragMX_temperature select cse_ab_ATragMX_currentTarget) * 10) / 10)]; +if (cse_ab_ATragMX_currentUnit == 1) then { + ctrlSetText [210, Str(Round((cse_ab_ATragMX_barometricPressure select cse_ab_ATragMX_currentTarget) * 100) / 100)]; +} else { + ctrlSetText [210, Str(Round(cse_ab_ATragMX_barometricPressure select cse_ab_ATragMX_currentTarget))]; +}; +ctrlSetText [220, Str(Round((cse_ab_ATragMX_relativeHumidity select cse_ab_ATragMX_currentTarget) * 100 * 10) / 10)]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_gun.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_gun.sqf new file mode 100644 index 0000000000..8d8dc295b9 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_gun.sqf @@ -0,0 +1,38 @@ +#include "script_component.hpp" + +ctrlSetText [1000, (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 0]; +if (cse_ab_ATragMX_currentUnit == 1) then +{ + ctrlSetText [ 100, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 5) / 2.54 * 100) / 100)]; +} else +{ + ctrlSetText [ 100, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 5) * 100) / 100)]; +}; +if (cse_ab_ATragMX_currentUnit == 1) then +{ + ctrlSetText [ 110, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 12) * 15.4323584))]; +} else +{ + ctrlSetText [ 110, Str(Round((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 12))]; +}; +if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_F) && cse_AB_AdvancedAirDragEnabled) then { + ctrlSetText [ 120, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 15) * 1000) / 1000)]; +} else { + ctrlSetText [ 120, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 4) * -1000 * 1000) / 1000)]; +}; +if (cse_ab_ATragMX_currentUnit == 1) then +{ + ctrlSetText [130, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 1) * 3.2808399))]; +} else +{ + ctrlSetText [130, Str(Round((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 1))]; +}; +if (cse_ab_ATragMX_currentUnit == 2) then +{ + ctrlSetText [140, Str(Round((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 2))]; +} else +{ + ctrlSetText [140, Str(Round(((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 2) * 1.0936133))]; +}; + +call cse_ab_ATragMX_fnc_update_scope_unit; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_range_card.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_range_card.sqf new file mode 100644 index 0000000000..13a0ddb1bf --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_range_card.sqf @@ -0,0 +1,89 @@ +#include "script_component.hpp" + +private ["_range", "_elevation", "_windage", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"]; +_lastColumnOutput = ""; + +ctrlSetText [5006, (cse_ab_ATragMX_rangeCardLastColumns select cse_ab_ATragMX_rangeCardCurrentColumn)]; + +if (cse_ab_ATragMX_currentUnit != 2) then +{ + ctrlSetText [5003, "Yards"]; +} else +{ + ctrlSetText [5003, "Meters"]; +}; + +lnbClear 5007; + +{ + _range = _x select 0; + _elevation = _x select 1; + _windage = _x select 2; + _lead = _x select 3; + _TOF = _x select 4; + _velocity = _x select 5; + _kineticEnergy = _x select 6; + + switch ((cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)) do + { + case 0: + { + _elevation = _elevation / 3.38; + _windage = _windage / 3.38; + }; + + case 2: + { + _elevation = _elevation * 1.047; + _windage = _windage * 1.047; + }; + + case 3: + { + _elevationScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 7); + _windageScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 8); + + _elevation = Round(_elevation / _elevationScopeStep); + _windage = Round(_windage / _windageScopeStep); + }; + }; + + _elevationOutput = Str(Round(_elevation * 100) / 100); + _windageOutput = Str(Round(_windage * 100) / 100); + + _rangeOutput = Str(_range); + if (_velocity < 340.29) then + { + _rangeOutput = _rangeOutput + "*"; + }; + + if (cse_ab_ATragMX_currentUnit == 1) then + { + _velocity = _velocity * 3.2808399; + }; + + switch (cse_ab_ATragMX_rangeCardCurrentColumn) do + { + case 0: + { + _lastColumnOutput = Str(Round(_lead * 100) / 100); + }; + + case 1: + { + _lastColumnOutput = Str(Round(_velocity)); + }; + + case 2: + { + _lastColumnOutput = Str(Round(_kineticEnergy)); + }; + + case 3: + { + _lastColumnOutput = Str(Round(_TOF * 100) / 100); + } + }; + + lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]]; +} forEach cse_ab_ATragMX_rangeCardData; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_relative_click_memory.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_relative_click_memory.sqf new file mode 100644 index 0000000000..ece99704d5 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_relative_click_memory.sqf @@ -0,0 +1,6 @@ +#include "script_component.hpp" + +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [10, (cse_ab_ATragMX_elevationOutput select cse_ab_ATragMX_currentTarget)]; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [11, (cse_ab_ATragMX_windageOutput select cse_ab_ATragMX_currentTarget)]; + +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_result.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_result.sqf new file mode 100644 index 0000000000..df130e90ad --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_result.sqf @@ -0,0 +1,65 @@ +#include "script_component.hpp" + +private ["_elevationAbs", "_elevationRel", "_elevationCur", "_windageAbs", "_windageRel", "_windageCur", "_lead", "_elevationScopeStep", "_windageScopeStep"]; +_elevationAbs = (cse_ab_ATragMX_elevationOutput select cse_ab_ATragMX_currentTarget); +_windageAbs = (cse_ab_ATragMX_windageOutput select cse_ab_ATragMX_currentTarget); + +_elevationCur = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 10; +_windageCur = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 11; + +_elevationRel = _elevationAbs - _elevationCur; +_windageRel = _windageAbs - _windageCur; + +_lead = (cse_ab_ATragMX_leadOutput select cse_ab_ATragMX_currentTarget); + +switch ((cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)) do +{ + case 0: + { + _elevationAbs = _elevationAbs / 3.38; + _windageAbs = _windageAbs / 3.38; + + _elevationRel = _elevationRel / 3.38; + _windageRel = _windageRel / 3.38; + + _elevationCur = _elevationCur / 3.38; + _windageCur = _windageCur / 3.38; + }; + + case 2: + { + _elevationAbs = _elevationAbs * 1.047; + _windageAbs = _windageAbs * 1.047; + + _elevationRel = _elevationRel * 1.047; + _windageRel = _windageRel * 1.047; + + _elevationCur = _elevationCur * 1.047; + _windageCur = _windageCur * 1.047; + }; + + case 3: + { + _elevationScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 7); + _windageScopeStep = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 8); + + _elevationAbs = Round(_elevationAbs / _elevationScopeStep); + _windageAbs = Round(_windageAbs / _windageScopeStep); + + _elevationRel = Round(_elevationRel / _elevationScopeStep); + _windageRel = Round(_windageRel / _windageScopeStep); + + _elevationCur = Round(_elevationCur / _elevationScopeStep); + _windageCur = Round(_windageCur / _windageScopeStep); + }; +}; + +ctrlSetText [400, Str(Round(_elevationAbs * 100) / 100)]; +ctrlSetText [401, Str(Round(_elevationRel * 100) / 100)]; +ctrlSetText [402, Str(Round(_elevationCur * 100) / 100)]; + +ctrlSetText [410, Str(Round(_windageAbs * 100) / 100)]; +ctrlSetText [411, Str(Round(_windageRel * 100) / 100)]; +ctrlSetText [412, Str(Round(_windageCur * 100) / 100)]; + +ctrlSetText [420, Str(Round(_lead * 100) / 100)]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_scope_unit.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_scope_unit.sqf new file mode 100644 index 0000000000..563d646a21 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_scope_unit.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" + +ctrlSetText [2000, cse_ab_ATragMX_scopeUnits select (cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)]; +ctrlSetText [5000, cse_ab_ATragMX_scopeUnits select (cse_ab_ATragMX_currentScopeUnit select cse_ab_ATragMX_currentTarget)]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target.sqf new file mode 100644 index 0000000000..945599bcb8 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target.sqf @@ -0,0 +1,22 @@ +#include "script_component.hpp" + +if (!isNil ("cse_ab_ATragMX_windSpeed")) then +{ + ctrlSetText [300, Str(Round((cse_ab_ATragMX_windSpeed select cse_ab_ATragMX_currentTarget) * 100) / 100)]; +}; +if (!isNil ("cse_ab_ATragMX_windDirection")) then +{ + ctrlSetText [310, Str(Round((cse_ab_ATragMX_windDirection select cse_ab_ATragMX_currentTarget)))]; +}; +if (!isNil ("cse_ab_ATragMX_inclinationAngle")) then +{ + ctrlSetText [320, Str(Round((cse_ab_ATragMX_inclinationAngle select cse_ab_ATragMX_currentTarget)))]; +}; +if (!isNil ("cse_ab_ATragMX_targetSpeed")) then +{ + ctrlSetText [330, Str(Round((cse_ab_ATragMX_targetSpeed select cse_ab_ATragMX_currentTarget) * 100) / 100)]; +}; +if (!isNil ("cse_ab_ATragMX_targetRange")) then +{ + ctrlSetText [340, Str(Round((cse_ab_ATragMX_targetRange select cse_ab_ATragMX_currentTarget)))]; +}; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target_selection.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target_selection.sqf new file mode 100644 index 0000000000..7f477f6281 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_target_selection.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +(_dsp displayCtrl 500) ctrlEnable true; +(_dsp displayCtrl 501) ctrlEnable true; +(_dsp displayCtrl 502) ctrlEnable true; +(_dsp displayCtrl 503) ctrlEnable true; + +(_dsp displayCtrl 500 + cse_ab_ATragMX_currentTarget) ctrlEnable false; + +ctrlSetFocus (_dsp displayCtrl 3000); + +call cse_ab_ATragMX_fnc_update_unit_selection; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_unit_selection.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_unit_selection.sqf new file mode 100644 index 0000000000..cfb2ed6758 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_unit_selection.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +#define _dsp (uiNamespace getVariable "cse_ab_ATragMX_Display") + +(_dsp displayCtrl 600) ctrlEnable true; +(_dsp displayCtrl 601) ctrlEnable true; +(_dsp displayCtrl 602) ctrlEnable true; + +(_dsp displayCtrl 600 + cse_ab_ATragMX_currentUnit) ctrlEnable false; + +call cse_ab_ATragMX_fnc_update_gun; +call cse_ab_ATragMX_fnc_update_atmosphere; +call cse_ab_ATragMX_fnc_update_target; +call cse_ab_ATragMX_fnc_update_result; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_zero_range.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_zero_range.sqf new file mode 100644 index 0000000000..bdeffbc3f2 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/functions/fn_update_zero_range.sqf @@ -0,0 +1,36 @@ +#include "script_component.hpp" + +private ["_scopeBaseAngle"]; +_scopeBaseAngle = ((cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 3); + +private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; +_bulletMass = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 12; +_boreHeight = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 5; +_airFriction = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 4; +_muzzleVelocity = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 1; +_bc = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 15; +_dragModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 16; +_atmosphereModel = (cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) select 17; + +private ["_zeroRange"]; +_zeroRange = Round(parseNumber(ctrlText 140)); +if (cse_ab_ATragMX_currentUnit != 2) then +{ + _zeroRange = _zeroRange / 1.0936133; +}; + +private ["_temperature", "_barometricPressure", "_relativeHumidity"]; +_temperature = (cse_ab_ATragMX_temperature select cse_ab_ATragMX_currentTarget); +_barometricPressure = (cse_ab_ATragMX_barometricPressure select cse_ab_ATragMX_currentTarget); +_relativeHumidity = (cse_ab_ATragMX_relativeHumidity select cse_ab_ATragMX_currentTarget); +if (cse_ab_ATragMX_currentUnit == 1) then +{ + _temperature = (_temperature - 32) / 1.8; + _barometricPressure = _barometricPressure * 33.8638866667; +}; + +private ["_result"]; +_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false] call cse_ab_ATragMX_fnc_calculate_solution; + +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [2, _zeroRange]; +(cse_ab_ATragMX_workingMemory select cse_ab_ATragMX_currentTarget) set [3, _scopeBaseAngle + (_result select 0) / 60]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/functions/script_component.hpp b/TO_MERGE/cse/sys_ballistics/atragmx/functions/script_component.hpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/init.sqf b/TO_MERGE/cse/sys_ballistics/atragmx/init.sqf new file mode 100644 index 0000000000..0e5b2060e8 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/init.sqf @@ -0,0 +1,41 @@ +cse_ab_ATragMX_workingMemory = [+(cse_ab_ATragMX_gunList select 0), +(cse_ab_ATragMX_gunList select 0), +(cse_ab_ATragMX_gunList select 0), +(cse_ab_ATragMX_gunList select 0)]; + +cse_ab_ATragMX_scopeUnits = ["MILs", "TMOA", "SMOA", "Clicks"]; + +cse_ab_ATragMX_rangeCardStartRange = 200; +cse_ab_ATragMX_rangeCardEndRange = 2000; +cse_ab_ATragMX_rangeCardIncrement = 50; +cse_ab_ATragMX_rangeCardLastColumns = ["Lead", "RemV", "RemE", "TmFlt"]; +cse_ab_ATragMX_rangeCardCurrentColumn = 3; +cse_ab_ATragMX_rangeCardData = []; + +cse_ab_ATragMX_rangeAssistTargetSizeUnits = ["in", "ft", "cm", "m"]; +cse_ab_ATragMX_rangeAssistTargetSizeUnit = 2; +cse_ab_ATragMX_rangeAssistImageSizeUnits = ["MIL", "TMOA", "IOA"]; +cse_ab_ATragMX_rangeAssistImageSizeUnit = 0; +cse_ab_ATragMX_rangeAssistUseTargetHeight = true; + +cse_ab_ATragMX_speedAssistNumTicksUnits = ["MIL", "TMOA", "IOA"]; +cse_ab_ATragMX_speedAssistNumTicksUnit = 0; +cse_ab_ATragMX_speedAssistTimer = true; + +cse_ab_ATragMX_currentUnit = 2; +cse_ab_ATragMX_currentGun = [0, 0, 0, 0]; +cse_ab_ATragMX_currentTarget = 0; +cse_ab_ATragMX_currentScopeUnit = [0, 0, 0, 0]; + +cse_ab_ATragMX_temperature = [15, 15, 15, 15]; +cse_ab_ATragMX_barometricPressure = [1013.25, 1013.25, 1013.25, 1013.25]; +cse_ab_ATragMX_relativeHumidity = [0.5, 0.5, 0.5, 0.5]; + +cse_ab_ATragMX_windSpeed = [0, 0, 0, 0]; +cse_ab_ATragMX_windDirection = [12, 12, 12, 12]; +cse_ab_ATragMX_inclinationAngle = [0, 0, 0, 0]; +cse_ab_ATragMX_targetSpeed = [0, 0, 0, 0]; +cse_ab_ATragMX_targetRange = [0, 0, 0, 0]; + +cse_ab_ATragMX_elevationOutput = [0, 0, 0, 0]; +cse_ab_ATragMX_windageOutput = [0, 0, 0, 0]; +cse_ab_ATragMX_leadOutput = [0, 0, 0, 0]; +cse_ab_ATragMX_tofOutput = [0, 0, 0, 0]; +cse_ab_ATragMX_velocityOutput = [0, 0, 0, 0]; diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/license.txt b/TO_MERGE/cse/sys_ballistics/atragmx/license.txt new file mode 100644 index 0000000000..eb925e129b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/license.txt @@ -0,0 +1,19 @@ +Copyright (c) <2014> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/ui/defines.h b/TO_MERGE/cse/sys_ballistics/atragmx/ui/defines.h new file mode 100644 index 0000000000..6a457f68bf --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/ui/defines.h @@ -0,0 +1,182 @@ +class cse_ab_ATragMX_RscText +{ + idc=-1; + type=0; + style=256; + colorDisabled[]={0,0,0,0.0}; + colorBackground[]={0,0,0,0}; + colorText[]={0,0,0,1}; + text=""; + x=0; + y=0; + h=0.037; + w=0.30; + font="TahomaB"; + SizeEx=0.03; + shadow=0; +}; +class cse_ab_ATragMX_RscButton +{ + text=""; + colorText[]={0,0,0,1}; + colorDisabled[]={0,0,0,0.0}; + colorBackground[]={0,0,0,0}; + colorBackgroundDisabled[]={0,0,0,0}; + colorBackgroundActive[]={0,0,0,0}; + colorFocused[]={0,0,0,0}; + colorShadow[]={0,0,0,0}; + colorBorder[]={0,0,0,1}; + soundEnter[]={"",0,1}; + soundPush[]={"",0,1}; + soundClick[]={"",0,1}; + soundEscape[]={"",0,1}; + type=1; + style="0x02+0x100"; + x=0; + y=0; + w=0.03; + h=0.03; + font="TahomaB"; + SizeEx=0.025; + offsetX=0.003; + offsetY=0.003; + offsetPressedX=0.0020; + offsetPressedY=0.0020; + borderSize=0; + shadow=0; +}; +class cse_ab_ATragMX_RscEdit +{ + access=0; + type=2; + style=ST_RIGHT; + x=0; + y=0; + w=0.05; + h=0.03; + colorDisabled[]={0,0,0,0.0}; + colorBackground[]={0,0,0,0}; + colorText[]={0,0,0,1}; + colorSelection[]={0,0,0,0.25}; + font="TahomaB"; + sizeEx=0.025; + text=""; + size=0.2; + autocomplete=""; + shadow=0; +}; +class cse_ab_ATragMX_RscToolbox +{ + type=6; + style=ST_LEFT; + x=0; + y=0; + w=0.2; + h=0.03; + colorDisabled[]={0,0,0,0.0}; + colorBackground[]={1,1,1,1}; + colorText[]={0,0,0,1}; + color[]={0,0,0,0}; + colorTextSelect[]={0.8,0.8,0.8,1}; + colorSelect[]={0,0,0,1}; + colorSelectedBg[]={0,0,0,1}; + colorTextDisable[]={0.4,0.4,0.4,1}; + colorDisable[]={0.4,0.4,0.4,1}; + font="TahomaB"; + sizeEx=0.027; + rows=1; + columns=2; + strings[]={"Entry 1","Entry 2"}; + values[]={1,0}; + onToolBoxSelChanged=""; +}; +class cse_ab_ATragMX_RscListBox +{ + idc=-1; + type=5; + style=0; + font="TahomaB"; + sizeEx=0.028; + rowHeight=0.03; + colorDisabled[]={0,0,0,0.0}; + colorBackground[]={1,1,1,1}; + colorText[]={0,0,0,1}; + colorScrollbar[]={0.95,0.95,0.95,1}; + colorSelect[]={0,0,0,1}; + colorSelect2[]={0,0,0,1}; + colorSelectBackground[]={0.925,0.925,0.925,1}; + colorSelectBackground2[]={0.925,0.925,0.925,1}; + period=0; + maxHistoryDelay=1.0; + autoScrollSpeed=-1; + autoScrollDelay=5; + autoScrollRewind=0; + soundSelect[]={"",0.09,1}; + + class ScrollBar { + color[]={1,1,1,0.6}; + colorActive[]={1,1,1,1}; + colorDisabled[]={1,1,1,0.3}; + thumb="\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull="\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty="\ca\ui\data\igui_arrow_top_ca.paa"; + border="\ca\ui\data\igui_border_scroll_ca.paa"; + }; + + class ListScrollBar : ScrollBar { + }; +}; +class cse_ab_ATragMX_RscListNBox: cse_ab_ATragMX_RscListBox +{ + idc=-1; + type=102; + columns[]={0.0, 0.225, 0.475, 0.725}; + drawSideArrows=0; + idcLeft=-1; + idcRight=-1; +}; +class cse_ab_ATragMX_RscControlsGroup +{ + type=15; + idc=-1; + style=16; + x=0; + y=0; + w=1; + h=1; + shadow=0; + class VScrollbar + { + color[]={1,1,1,0.6}; + width=0.021; + autoScrollSpeed=-1; + autoScrollDelay=5; + autoScrollRewind=0; + shadow=0; + }; + class HScrollbar + { + color[]={1,1,1,0.6}; + height=0.028; + shadow=0; + }; + class ScrollBar + { + color[]={1,1,1,0.6}; + colorActive[]={1,1,1,1}; + colorDisabled[]={1,1,1,0.3}; + thumb="#(argb,8,8,3)color(1,1,1,1)"; + arrowEmpty="#(argb,8,8,3)color(1,1,1,1)"; + arrowFull="#(argb,8,8,3)color(1,1,1,1)"; + border="#(argb,8,8,3)color(1,1,1,1)"; + }; + class Controls + { + }; +}; +class cse_ab_ATragMX_RscLineBreak +{ + idc=-1; + type=98; + shadow=0; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/atragmx/ui/display.h b/TO_MERGE/cse/sys_ballistics/atragmx/ui/display.h new file mode 100644 index 0000000000..d82e6fb514 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/atragmx/ui/display.h @@ -0,0 +1,1015 @@ +class cse_ab_ATragMX_Display +{ + name="cse_ab_ATragMX_Display"; + idd=-1; + onLoad="uiNamespace setVariable ['cse_ab_ATragMX_Display', (_this select 0)]"; + movingEnable=1; + controlsBackground[]={}; + objects[]={}; + class controls + { + class BACKGROUND + { + moving=1; + type=0; + font="TahomaB"; + SizeEX=0.025; + idc=-1; + style=48; + x=0.55*safezoneW+safezoneX-0.256; + y=0.265*safezoneH+safezoneY-0.1; + w=1.024; + h=1.024*4/3; + colorBackground[]={1,1,1,1}; + colorText[]={1,1,1,1}; + text="cse\cse_sys_ballistics\atragmx\data\atrag.paa"; + }; + class POWER: cse_ab_ATragMX_RscButton + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.145; + y=0.265*safezoneH+safezoneY+0.94; + w=0.045; + h=0.045*4/3; + colorBackground[]={0,0,0,0.0}; + action="closeDialog 0"; + }; + class BACK: POWER + { + idc=-1; + w=0.06; + x=0.55*safezoneW+safezoneX+0.3122; + action="call compile preprocessFile 'cse\cse_sys_ballistics\atragmx\init.sqf'; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class WINDOWS: cse_ab_ATragMX_RscButton + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.130; + y=0.265*safezoneH+safezoneY+0.88; + w=0.035; + h=0.035*4/3; + colorBackground[]={0,0,0,0.0}; + }; + class OK: WINDOWS + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.347; + y=0.265*safezoneH+safezoneY+0.878; + }; + class TOP: cse_ab_ATragMX_RscButton + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.242; + y=0.265*safezoneH+safezoneY+0.85; + w=0.03; + h=0.03; + colorBackground[]={0,0,0,0.0}; + action="((cse_ab_ATragMX_currentGun select cse_ab_ATragMX_currentTarget) + (count cse_ab_ATragMX_gunList) - 1) % (count cse_ab_ATragMX_gunList) call cse_ab_ATragMX_fnc_change_gun"; + }; + class BOTTOM: TOP + { + idc=-1; + y=0.265*safezoneH+safezoneY+0.955; + action="((cse_ab_ATragMX_currentGun select cse_ab_ATragMX_currentTarget) + (count cse_ab_ATragMX_gunList) + 1) % (count cse_ab_ATragMX_gunList) call cse_ab_ATragMX_fnc_change_gun"; + }; + class LEFT: cse_ab_ATragMX_RscButton + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.1925; + y=0.265*safezoneH+safezoneY+0.9; + w=0.05; + h=0.03; + colorBackground[]={0,0,0,0}; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget = (4 + cse_ab_ATragMX_currentTarget - 1) % 4; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class RIGHT: LEFT + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.2725; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget = (4 + cse_ab_ATragMX_currentTarget + 1) % 4; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class TOP_LEFT: cse_ab_ATragMX_RscButton + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.162; + y=0.265*safezoneH+safezoneY+0.82; + w=0.031; + h=0.031*4/3; + colorBackground[]={0,0,0,0.0}; + }; + class TOP_RIGHT: TOP_LEFT + { + idc=-1; + x=0.55*safezoneW+safezoneX+0.315; + }; + + class TEXT_GUN_PROFILE: cse_ab_ATragMX_RscText + { + idc=1000; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.20; + w=0.18; + h=0.03; + style=ST_LEFT; + sizeEx=0.025; + text=""; + }; + class TEXT_D: cse_ab_ATragMX_RscButton + { + idc=600; + w=0.0231; + x=0.550*safezoneW+safezoneX+0.29; + y=0.265*safezoneH+safezoneY+0.20; + colorText[]={0,0,0,1}; + colorDisabled[]={0.8,0.8,0.8,1}; + colorBackgroundDisabled[]={0,0,0,1}; + colorBackgroundActive[]={0,0,0,0}; + text="D"; + action="cse_ab_ATragMX_currentUnit=0; call cse_ab_ATragMX_fnc_update_unit_selection"; + }; + class TEXT_E: TEXT_D + { + idc=601; + x=0.550*safezoneW+safezoneX+0.3131; + text="E"; + action="cse_ab_ATragMX_currentUnit=1; call cse_ab_ATragMX_fnc_update_unit_selection"; + }; + class TEXT_M: TEXT_E + { + idc=602; + x=0.550*safezoneW+safezoneX+0.3362; + text="M"; + action="cse_ab_ATragMX_currentUnit=2; call cse_ab_ATragMX_fnc_update_unit_selection"; + }; + class TEXT_RANGE_CARD: TEXT_D + { + idc=603; + w=0.03; + x=0.550*safezoneW+safezoneX+0.36; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="RC"; + action="call cse_ab_ATragMX_fnc_toggle_range_card"; + }; + + class TEXT_GUN: cse_ab_ATragMX_RscButton + { + idc=4000; + w=0.0925; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.25; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="Gun"; + }; + class TEXT_BORE_HEIGHT: TEXT_GUN_PROFILE + { + idc=10; + style=ST_LEFT; + y=0.265*safezoneH+safezoneY+0.285; + text="BH"; + }; + class TEXT_BORE_HEIGHT_INPUT: cse_ab_ATragMX_RscEdit + { + idc=100; + w=0.058; + x=0.550*safezoneW+safezoneX+0.145; + y=0.265*safezoneH+safezoneY+0.285; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_solution}"; + }; + class TEXT_BULLET_MASS: TEXT_BORE_HEIGHT + { + idc=11; + style=ST_LEFT; + y=0.265*safezoneH+safezoneY+0.320; + text="BW"; + }; + class TEXT_BULLET_MASS_INPUT: TEXT_BORE_HEIGHT_INPUT + { + idc=110; + y=0.265*safezoneH+safezoneY+0.320; + }; + class TEXT_AIR_FRICTION: TEXT_BORE_HEIGHT + { + idc=12; + y=0.265*safezoneH+safezoneY+0.355; + text="C1"; + }; + class TEXT_AIR_FRICTION_INPUT: TEXT_BORE_HEIGHT_INPUT + { + idc=120; + y=0.265*safezoneH+safezoneY+0.355; + }; + class TEXT_MUZZLE_VELOCITY: cse_ab_ATragMX_RscButton + { + idc=13; + style=0; + w=0.03; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.390; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="MV"; + }; + class TEXT_MUZZLE_VELOCITY_INPUT: TEXT_BORE_HEIGHT_INPUT + { + idc=130; + y=0.265*safezoneH+safezoneY+0.390; + }; + class TEXT_ZERO_RANGE: TEXT_BORE_HEIGHT + { + idc=14; + y=0.265*safezoneH+safezoneY+0.425; + text="ZR"; + }; + class TEXT_ZERO_RANGE_INPUT: TEXT_BORE_HEIGHT_INPUT + { + idc=140; + y=0.265*safezoneH+safezoneY+0.425; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_update_zero_range}"; + }; + class TEXT_ATMOSPHERE: TEXT_GUN + { + idc=4001; + x=0.550*safezoneW+safezoneX+0.205; + text="Atmsphr"; + }; + class TEXT_TEMPERATURE: TEXT_BULLET_MASS + { + idc=20; + x=0.550*safezoneW+safezoneX+0.20; + text="Tmp"; + }; + class TEXT_TEMPERATURE_INPUT: cse_ab_ATragMX_RscEdit + { + idc=200; + w=0.050; + x=0.550*safezoneW+safezoneX+0.245; + y=0.265*safezoneH+safezoneY+0.320; + text=""; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_solution}"; + }; + class TEXT_BAROMETRIC_PRESSURE: TEXT_AIR_FRICTION + { + idc=21; + x=0.550*safezoneW+safezoneX+0.20; + text="BP"; + }; + class TEXT_BAROMETRIC_PRESSURE_INPUT: TEXT_TEMPERATURE_INPUT + { + idc=210; + y=0.265*safezoneH+safezoneY+0.355; + }; + class TEXT_RELATIVE_HUMIDITY: TEXT_AIR_FRICTION + { + idc=22; + x=0.550*safezoneW+safezoneX+0.20; + y=0.265*safezoneH+safezoneY+0.390; + text="RH"; + }; + class TEXT_RELATIVE_HUMIDITY_INPUT: TEXT_TEMPERATURE_INPUT + { + idc=220; + y=0.265*safezoneH+safezoneY+0.390; + }; + class TEXT_TARGET_A: cse_ab_ATragMX_RscButton + { + idc=500; + w=0.0231; + x=0.550*safezoneW+safezoneX+0.205; + y=0.265*safezoneH+safezoneY+0.425; + colorText[]={0,0,0,1}; + colorDisabled[]={0.8,0.8,0.8,1}; + colorBackgroundDisabled[]={0,0,0,1}; + colorBackgroundActive[]={0,0,0,0}; + text="A"; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget=0; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class TEXT_TARGET_B: TEXT_TARGET_A + { + idc=501; + x=0.550*safezoneW+safezoneX+0.2281; + text="B"; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget=1; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class TEXT_TARGET_C: TEXT_TARGET_B + { + idc=502; + x=0.550*safezoneW+safezoneX+0.2512; + text="C"; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget=2; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + class TEXT_TARGET_D: TEXT_TARGET_B + { + idc=503; + x=0.550*safezoneW+safezoneX+0.2743; + text="D"; + action="call cse_ab_ATragMX_fnc_parse_input; cse_ab_ATragMX_currentTarget=3; call cse_ab_ATragMX_fnc_update_target_selection"; + }; + + class TEXT_TARGET: TEXT_GUN + { + idc=4002; + x=0.550*safezoneW+safezoneX+0.3; + text="Target"; + }; + class TEXT_WIND_SPEED: TEXT_BORE_HEIGHT + { + idc=30; + x=0.550*safezoneW+safezoneX+0.3; + text="WS"; + }; + class TEXT_WIND_SPEED_INPUT: cse_ab_ATragMX_RscEdit + { + idc=300; + w=0.058; + x=0.550*safezoneW+safezoneX+0.335; + y=0.265*safezoneH+safezoneY+0.285; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_solution}"; + text="0"; + }; + class TEXT_WIND_DIRECTION: TEXT_BULLET_MASS + { + idc=31; + x=0.550*safezoneW+safezoneX+0.3; + text="WD"; + }; + class TEXT_WIND_DIRECTION_INPUT: TEXT_WIND_SPEED_INPUT + { + idc=310; + y=0.265*safezoneH+safezoneY+0.32; + }; + class TEXT_INCLINATION_ANGLE: TEXT_AIR_FRICTION + { + idc=32; + x=0.550*safezoneW+safezoneX+0.3; + text="IA"; + }; + class TEXT_INCLINATION_ANGLE_INPUT: TEXT_WIND_SPEED_INPUT + { + idc=320; + y=0.265*safezoneH+safezoneY+0.355; + }; + class TEXT_TARGET_SPEED: TEXT_MUZZLE_VELOCITY + { + idc=33; + x=0.550*safezoneW+safezoneX+0.3; + text="TS"; + action="call cse_ab_ATragMX_fnc_toggle_target_speed_assist"; + }; + class TEXT_TARGET_SPEED_INPUT: TEXT_WIND_SPEED_INPUT + { + idc=330; + y=0.265*safezoneH+safezoneY+0.39; + }; + class TEXT_TARGET_RANGE: TEXT_TARGET_SPEED + { + idc=34; + y=0.265*safezoneH+safezoneY+0.425; + text="TR"; + action="0 call cse_ab_ATragMX_fnc_toggle_target_range_assist"; + }; + class TEXT_TARGET_RANGE_INPUT: TEXT_WIND_SPEED_INPUT + { + idc=340; + y=0.265*safezoneH+safezoneY+0.425; + }; + + class TEXT_ELEVATION: TEXT_GUN_PROFILE + { + idc=40; + w=0.05; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.50; + text="Elev"; + }; + class TEXT_ABSOLUTE: TEXT_GUN_PROFILE + { + idc=4003; + w=0.07; + style=ST_CENTER; + x=0.550*safezoneW+safezoneX+0.17; + y=0.265*safezoneH+safezoneY+0.47; + text="Abs"; + }; + class TEXT_RELATIVE: TEXT_ABSOLUTE + { + idc=4004; + x=0.550*safezoneW+safezoneX+0.245; + text="Rel"; + }; + class TEXT_CURRENT: TEXT_ABSOLUTE + { + idc=4005; + x=0.550*safezoneW+safezoneX+0.32; + text="Cur"; + }; + class TEXT_ELEVATION_OUTPUT_ABSOLUTE: cse_ab_ATragMX_RscEdit + { + idc=400; + w=0.07; + x=0.550*safezoneW+safezoneX+0.17; + y=0.265*safezoneH+safezoneY+0.50; + text=""; + }; + class TEXT_ELEVATION_OUTPUT_RELATIVE: TEXT_ELEVATION_OUTPUT_ABSOLUTE + { + idc=401; + x=0.550*safezoneW+safezoneX+0.2465; + }; + class TEXT_ELEVATION_INPUT_CURRENT: TEXT_ELEVATION_OUTPUT_ABSOLUTE + { + idc=402; + x=0.550*safezoneW+safezoneX+0.323; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_parse_input; call cse_ab_ATragMX_fnc_update_result}"; + }; + class TEXT_WINDAGE: TEXT_ELEVATION + { + idc=41; + y=0.265*safezoneH+safezoneY+0.535; + text="Wind"; + }; + class TEXT_WINDAGE_OUTPUT_ABSOLUTE: TEXT_ELEVATION_OUTPUT_ABSOLUTE + { + idc=410; + y=0.265*safezoneH+safezoneY+0.535; + }; + class TEXT_WINDAGE_OUTPUT_RELATIVE: TEXT_WINDAGE_OUTPUT_ABSOLUTE + { + idc=411; + x=0.550*safezoneW+safezoneX+0.2465; + }; + class TEXT_WINDAGE_INPUT_CURRENT: TEXT_WINDAGE_OUTPUT_ABSOLUTE + { + idc=412; + x=0.550*safezoneW+safezoneX+0.323; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_parse_input; call cse_ab_ATragMX_fnc_update_result}"; + }; + class TEXT_LEAD: TEXT_GUN + { + idc=42; + w=0.05; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.57; + text="Lead"; + }; + class TEXT_LEAD_OUTPUT: TEXT_ELEVATION_OUTPUT_ABSOLUTE + { + idc=420; + y=0.265*safezoneH+safezoneY+0.57; + }; + class TEXT_RESET_SCOPE_ZERO: TEXT_GUN + { + idc=4006; + w=0.07; + style=ST_CENTER; + colorBackground[]={0,0,0,0}; + x=0.550*safezoneW+safezoneX+0.2465; + y=0.265*safezoneH+safezoneY+0.57; + text="Reset"; + action="call cse_ab_ATragMX_fnc_reset_relative_click_memory"; + }; + class TEXT_UPDATE_SCOPE_ZERO: TEXT_RESET_SCOPE_ZERO + { + idc=4007; + x=0.550*safezoneW+safezoneX+0.323; + text="Update"; + action="call cse_ab_ATragMX_fnc_update_relative_click_memory"; + }; + class TEXT_GUN_LIST: TEXT_GUN + { + idc=4008; + style=ST_LEFT; + y=0.265*safezoneH+safezoneY+0.65; + text="GunList"; + action="call cse_ab_ATragMX_fnc_toggle_gun_list"; + }; + class TEXT_SCOPE_UNIT: TEXT_GUN_LIST + { + idc=2000; + style=ST_CENTER; + x=0.550*safezoneW+safezoneX+0.205; + colorBackground[]={0,0,0,0}; + text="TMOA"; + action="call cse_ab_ATragMX_fnc_cycle_scope_unit"; + }; + class TEXT_CALCULATE: TEXT_SCOPE_UNIT + { + idc=3000; + style=ST_RIGHT; + x=0.550*safezoneW+safezoneX+0.3; + text="Calc"; + action="call cse_ab_ATragMX_fnc_calculate_target_solution"; + }; + + class TEXT_RANGE_CARD_SCOPE_UNIT: TEXT_GUN_PROFILE + { + idc=5000; + text=""; + }; + class TEXT_RANGE_CARD_SETUP: cse_ab_ATragMX_RscButton + { + idc=5001; + w=0.055675; + x=0.550*safezoneW+safezoneX+0.28; + y=0.265*safezoneH+safezoneY+0.20; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="Setup"; + action="call cse_ab_ATragMX_fnc_toggle_range_card_setup"; + }; + class TEXT_RANGE_CARD_DONE: TEXT_RANGE_CARD_SETUP + { + idc=5002; + x=0.550*safezoneW+safezoneX+0.3362; + text="Done"; + action="call cse_ab_ATragMX_fnc_toggle_range_card"; + }; + class TEXT_RANGE_CARD_COLUMN_1_CAPTION: cse_ab_ATragMX_RscButton + { + idc=5003; + style=ST_LEFT; + w=0.07; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.24; + colorBackground[]={0.15,0.21,0.23,0.3}; + text="Meters"; + }; + class TEXT_RANGE_CARD_COLUMN_2_CAPTION: TEXT_RANGE_CARD_COLUMN_1_CAPTION + { + idc=5004; + x=0.550*safezoneW+safezoneX+0.180625; + text="Elev"; + }; + class TEXT_RANGE_CARD_COLUMN_3_CAPTION: TEXT_RANGE_CARD_COLUMN_1_CAPTION + { + idc=5005; + x=0.550*safezoneW+safezoneX+0.25125; + text="Wind"; + }; + class TEXT_RANGE_CARD_COLUMN_4_CAPTION: TEXT_RANGE_CARD_COLUMN_1_CAPTION + { + idc=5006; + x=0.550*safezoneW+safezoneX+0.321875; + text="TmFlt"; + action="call cse_ab_ATragMX_fnc_cycle_range_card_columns"; + }; + class TEXT_RANGE_CARD_OUTPUT: cse_ab_ATragMX_RscListNBox + { + idc=5007; + idcLeft=50061; + idcRight=50062; + w=0.285; + h=0.42; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.27; + }; + + class TEXT_GUN_LIST_OUTPUT: cse_ab_ATragMX_RscListBox + { + idc=6000; + w=0.16; + h=0.45; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.24; + colorSelectBackground[]={0.15,0.21,0.23,0.3}; + colorSelectBackground2[]={0.15,0.21,0.23,0.3}; + onMouseButtonDblClick="true call cse_ab_ATragMX_fnc_toggle_gun_list"; + }; + class TEXT_GUN_LIST_COLUMN_CAPTION: TEXT_GUN_PROFILE + { + idc=6001; + w=0.16; + colorBackground[]={0.15,0.21,0.23,0.3}; + text="AtragGun.gun"; + }; + class TEXT_GUN_LIST_OPEN_GUN: cse_ab_ATragMX_RscButton + { + idc=6002; + style=ST_RIGHT; + w=0.115; + x=0.550*safezoneW+safezoneX+0.28; + y=0.265*safezoneH+safezoneY+0.20; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + sizeEx=0.024; + text="Open Gun"; + action="true call cse_ab_ATragMX_fnc_toggle_gun_list"; + }; + class TEXT_GUN_LIST_SAVE_GUN: TEXT_GUN_LIST_OPEN_GUN + { + idc=6003; + y=0.265*safezoneH+safezoneY+0.24; + text="Save Gun"; + action="call cse_ab_ATragMX_fnc_save_gun"; + }; + class TEXT_GUN_LIST_ADD_NEW_GUN: TEXT_GUN_LIST_OPEN_GUN + { + idc=6004; + y=0.265*safezoneH+safezoneY+0.28; + text="Add New Gun"; + action="false call cse_ab_ATragMX_fnc_show_gun_list; true call cse_ab_ATragMX_fnc_show_add_new_gun"; + }; + class TEXT_GUN_LIST_DELETE_GUN: TEXT_GUN_LIST_OPEN_GUN + { + idc=6005; + y=0.265*safezoneH+safezoneY+0.34; + text="Delete Gun"; + action="call cse_ab_ATragMX_fnc_delete_gun"; + }; + class TEXT_GUN_LIST_NOTE: TEXT_GUN_LIST_OPEN_GUN + { + idc=6006; + y=0.265*safezoneH+safezoneY+0.40; + text="Note"; + }; + class TEXT_GUN_LIST_DONE: TEXT_GUN_LIST_OPEN_GUN + { + idc=6007; + y=0.265*safezoneH+safezoneY+0.65; + text="Done"; + action="false call cse_ab_ATragMX_fnc_toggle_gun_list"; + }; + + class TEXT_TARGET_RANGE_ASSIST_CAPTION: cse_ab_ATragMX_RscText + { + idc=7000; + style=16+0x200; + lineSpacing=1.0; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.24; + w=0.29; + h=0.10; + sizeEx=0.022; + text="When using WIDTH to size a target, UP/Down Angle does not effect range calculation but will effect bullet drop."; + }; + class TEXT_TARGET_RANGE_ASSIST_MEASUREMENT_METHOD: TEXT_TARGET_RANGE_ASSIST_CAPTION + { + idc=7001; + style=ST_LEFT; + x=0.550*safezoneW+safezoneX+0.115; + y=0.265*safezoneH+safezoneY+0.35; + w=0.12; + h=0.03; + sizeEx=0.027; + text="Using Target:"; + }; + class TEXT_TARGET_RANGE_ASSIST_WIDTH_HEIGHT: cse_ab_ATragMX_RscToolbox + { + idc=7002; + w=0.14; + x=0.550*safezoneW+safezoneX+0.24; + y=0.265*safezoneH+safezoneY+0.35; + strings[]={"Height","Width"}; + values[]={1,0}; + onToolBoxSelChanged="cse_ab_ATragMX_rangeAssistUseTargetHeight=((_this select 1)==0)"; + }; + class TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE: TEXT_TARGET_RANGE_ASSIST_MEASUREMENT_METHOD + { + idc=7003; + style=ST_RIGHT; + x=0.550*safezoneW+safezoneX+0.10; + y=0.265*safezoneH+safezoneY+0.4; + text="Target Size"; + }; + class TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE + { + idc=7004; + y=0.265*safezoneH+safezoneY+0.45; + text="Image Size"; + }; + class TEXT_TARGET_RANGE_ASSIST_ANGLE: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE + { + idc=7005; + y=0.265*safezoneH+safezoneY+0.5; + text="Angle"; + }; + class TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE + { + idc=7006; + y=0.265*safezoneH+safezoneY+0.55; + text="Est Range"; + }; + class TEXT_TARGET_RANGE_ASSIST_CALC_1: TEXT_MUZZLE_VELOCITY + { + idc=7007; + w=0.0231; + x=0.550*safezoneW+safezoneX+0.22; + y=0.265*safezoneH+safezoneY+0.4; + sizeEx=0.03; + text="!"; + action="0 call cse_ab_ATragMX_fnc_calculate_target_range_assist"; + }; + class TEXT_TARGET_RANGE_ASSIST_CALC_2: TEXT_TARGET_RANGE_ASSIST_CALC_1 + { + idc=7008; + y=0.265*safezoneH+safezoneY+0.45; + action="1 call cse_ab_ATragMX_fnc_calculate_target_range_assist"; + }; + class TEXT_TARGET_RANGE_ASSIST_CALC_3: TEXT_TARGET_RANGE_ASSIST_CALC_1 + { + idc=7009; + y=0.265*safezoneH+safezoneY+0.55; + action="2 call cse_ab_ATragMX_fnc_calculate_target_range_assist"; + }; + class TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT: cse_ab_ATragMX_RscEdit + { + idc=7010; + w=0.065; + x=0.550*safezoneW+safezoneX+0.2475; + y=0.265*safezoneH+safezoneY+0.4; + }; + class TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_INPUT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT + { + idc=7011; + y=0.265*safezoneH+safezoneY+0.45; + }; + class TEXT_TARGET_RANGE_ASSIST_ANGLE_INPUT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT + { + idc=7012; + y=0.265*safezoneH+safezoneY+0.5; + }; + class TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE_INPUT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT + { + idc=7013; + y=0.265*safezoneH+safezoneY+0.55; + }; + class TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_UNIT: TEXT_TARGET_RANGE_ASSIST_CALC_1 + { + idc=7014; + w=0.07; + x=0.550*safezoneW+safezoneX+0.32; + text="cm"; + action="cse_ab_ATragMX_rangeAssistTargetSizeUnit=(cse_ab_ATragMX_rangeAssistTargetSizeUnit+1) % (count cse_ab_ATragMX_rangeAssistTargetSizeUnits); ctrlSetText [7014, cse_ab_ATragMX_rangeAssistTargetSizeUnits select cse_ab_ATragMX_rangeAssistTargetSizeUnit]"; + }; + class TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_UNIT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_UNIT + { + idc=7015; + y=0.265*safezoneH+safezoneY+0.45; + text="MIL"; + action="cse_ab_ATragMX_rangeAssistImageSizeUnit=(cse_ab_ATragMX_rangeAssistImageSizeUnit+1) % (count cse_ab_ATragMX_rangeAssistImageSizeUnits); ctrlSetText [7015, cse_ab_ATragMX_rangeAssistImageSizeUnits select cse_ab_ATragMX_rangeAssistImageSizeUnit]"; + }; + class TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE_UNIT: TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE + { + idc=7016; + style=ST_LEFT; + w=0.07; + x=0.550*safezoneW+safezoneX+0.32; + text="Meters"; + }; + class TEXT_TARGET_RANGE_ASSIST_DONE: cse_ab_ATragMX_RscButton + { + idc=7017; + style=ST_CENTER; + w=0.07; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.60; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="Done"; + action="1 call cse_ab_ATragMX_fnc_toggle_target_range_assist"; + }; + class TEXT_TARGET_RANGE_ASSIST_CANCEL: TEXT_TARGET_RANGE_ASSIST_DONE + { + idc=7018; + x=0.550*safezoneW+safezoneX+0.180625; + text="Cancel"; + action="0 call cse_ab_ATragMX_fnc_toggle_target_range_assist"; + }; + class TEXT_TARGET_RANGE_ASSIST_PREV: TEXT_TARGET_RANGE_ASSIST_DONE + { + idc=7019; + x=0.550*safezoneW+safezoneX+0.25125; + text="Prev"; + action=""; + }; + class TEXT_TARGET_RANGE_ASSIST_NEXT: TEXT_TARGET_RANGE_ASSIST_DONE + { + idc=7020; + x=0.550*safezoneW+safezoneX+0.321875; + text="Next"; + action=""; + }; + + class TEXT_TARGET_SPEED_ASSIST_TARGET_RANGE: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE + { + idc=8000; + x=0.550*safezoneW+safezoneX+0.12; + text="Target Range"; + }; + class TEXT_TARGET_SPEED_ASSIST_NUM_TICKS: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE + { + idc=8001; + x=0.550*safezoneW+safezoneX+0.12; + text="Num Ticks"; + }; + class TEXT_TARGET_SPEED_ASSIST_TIME: TEXT_TARGET_RANGE_ASSIST_ANGLE + { + idc=8002; + x=0.550*safezoneW+safezoneX+0.12; + text="Time (secs)"; + }; + class TEXT_TARGET_SPEED_ASSIST_TARGET_ESTIMATED_SPEED: TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE + { + idc=8003; + x=0.550*safezoneW+safezoneX+0.12; + text="Est Speed"; + }; + class TEXT_TARGET_SPEED_ASSIST_TARGET_RANGE_INPUT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT + { + idc=8004; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_speed_assist}"; + }; + class TEXT_TARGET_SPEED_ASSIST_NUM_TICKS_INPUT: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_INPUT + { + idc=8005; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_speed_assist}"; + }; + class TEXT_TARGET_SPEED_ASSIST_TIME_INPUT: TEXT_TARGET_RANGE_ASSIST_ANGLE_INPUT + { + idc=8006; + onKeyUp="if (_this select 1 == 28) then {call cse_ab_ATragMX_fnc_calculate_target_speed_assist}"; + }; + class TEXT_TARGET_SPEED_ASSIST_TARGET_ESTIMATED_SPEED_OUTPUT: TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE + { + idc=8007; + w=0.065; + x=0.550*safezoneW+safezoneX+0.2475; + y=0.265*safezoneH+safezoneY+0.55; + colorBackground[]={0.15,0.21,0.23,0.3}; + text="0"; + }; + class TEXT_TARGET_SPEED_ASSIST_TARGET_RANGE_UNIT: TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE_UNIT + { + idc=8008; + y=0.265*safezoneH+safezoneY+0.4; + text="Meters"; + }; + class TEXT_TARGET_SPEED_ASSIST_NUM_TICKS_UNIT: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_UNIT + { + idc=8009; + text="MIL"; + action="cse_ab_ATragMX_speedAssistNumTicksUnit=(cse_ab_ATragMX_speedAssistNumTicksUnit+1) % (count cse_ab_ATragMX_speedAssistNumTicksUnits); ctrlSetText [8009, cse_ab_ATragMX_speedAssistNumTicksUnits select cse_ab_ATragMX_speedAssistNumTicksUnit]; call cse_ab_ATragMX_fnc_calculate_target_speed_assist"; + }; + class TEXT_TARGET_SPEED_ASSIST_TIMER_START: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_UNIT + { + idc=8010; + y=0.265*safezoneH+safezoneY+0.5; + text="Start"; + action="execVM '\atragmx\functions\fnc_target_speed_assist_timer.sqf'"; + }; + class TEXT_TARGET_SPEED_ASSIST_TARGET_ESTIMATED_SPEED_UNIT: TEXT_TARGET_RANGE_ASSIST_ESTIMATED_RANGE_UNIT + { + idc=8011; + text="m/s"; + }; + class TEXT_TARGET_SPEED_ASSIST_DONE: TEXT_TARGET_RANGE_ASSIST_DONE + { + idc=8012; + action="1 call cse_ab_ATragMX_fnc_toggle_target_speed_assist"; + }; + class TEXT_TARGET_SPEED_ASSIST_CANCEL: TEXT_TARGET_RANGE_ASSIST_CANCEL + { + idc=8013; + action="0 call cse_ab_ATragMX_fnc_toggle_target_speed_assist"; + }; + class TEXT_TARGET_SPEED_ASSIST_PREV: TEXT_TARGET_RANGE_ASSIST_PREV + { + idc=8014; + }; + class TEXT_TARGET_SPEED_ASSIST_NEXT: TEXT_TARGET_RANGE_ASSIST_NEXT + { + idc=8015; + }; + + class TEXT_TARGET_SPEED_ASSIST_TIMER_STOP_BACKGROUND: cse_ab_ATragMX_RscButton + { + idc=9000; + w=0.285; + h=0.49; + x=0.550*safezoneW+safezoneX+0.11; + y=0.265*safezoneH+safezoneY+0.2; + colorBackground[]={0,0,0,0}; + colorBackgroundActive[]={0,0,0,0}; + action="cse_ab_ATragMX_speedAssistTimer=false"; + } + class TEXT_TARGET_SPEED_ASSIST_TIME_OUTPUT: cse_ab_ATragMX_RscText + { + idc=9001; + x=0.550*safezoneW+safezoneX+0.22; + y=0.265*safezoneH+safezoneY+0.51; + w=0.08; + h=0.09; + style=ST_CENTER; + sizeEx=0.05; + text="0.0"; + }; + class TEXT_TARGET_SPEED_ASSIST_TIMER_STOP: cse_ab_ATragMX_RscButton + { + idc=9002; + style=ST_CENTER; + w=0.07; + h=0.04; + x=0.550*safezoneW+safezoneX+0.225; + y=0.265*safezoneH+safezoneY+0.60; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="Stop"; + action="cse_ab_ATragMX_speedAssistTimer=false"; + }; + + class TEXT_RANGE_CARD_SETUP_START_RANGE: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE + { + idc=10000; + x=0.550*safezoneW+safezoneX+0.12; + text="Start Range"; + }; + class TEXT_RANGE_CARD_SETUP_END_RANGE: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE + { + idc=10001; + x=0.550*safezoneW+safezoneX+0.12; + text="End Range"; + }; + class TEXT_RANGE_CARD_SETUP_INCREMENT: TEXT_TARGET_RANGE_ASSIST_ANGLE + { + idc=10002; + x=0.550*safezoneW+safezoneX+0.12; + text="Increment"; + }; + class TEXT_RANGE_CARD_SETUP_START_RANGE_INPUT: TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE_INPUT + { + idc=10003; + onKeyUp="if (_this select 1 == 28) then {1 call cse_ab_ATragMX_fnc_toggle_range_card_setup}"; + }; + class TEXT_RANGE_CARD_SETUP_END_RANGE_INPUT: TEXT_TARGET_RANGE_ASSIST_IMAGE_SIZE_INPUT + { + idc=10004; + onKeyUp="if (_this select 1 == 28) then {1 call cse_ab_ATragMX_fnc_toggle_range_card_setup}"; + }; + class TEXT_RANGE_CARD_SETUP_INCREMENT_INPUT: TEXT_TARGET_RANGE_ASSIST_ANGLE_INPUT + { + idc=10005; + onKeyUp="if (_this select 1 == 28) then {1 call cse_ab_ATragMX_fnc_toggle_range_card_setup}"; + }; + class TEXT_RANGE_CARD_SETUP_DONE: TEXT_TARGET_SPEED_ASSIST_DONE + { + idc=10006; + action="1 call cse_ab_ATragMX_fnc_toggle_range_card_setup"; + }; + class TEXT_RANGE_CARD_SETUP_CANCEL: TEXT_TARGET_SPEED_ASSIST_CANCEL + { + idc=10007; + action="0 call cse_ab_ATragMX_fnc_toggle_range_card_setup"; + }; + class TEXT_RANGE_CARD_SETUP_PREV: TEXT_TARGET_SPEED_ASSIST_PREV + { + idc=10008; + }; + class TEXT_RANGE_CARD_SETUP_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT + { + idc=10009; + }; + + class TEXT_ADD_NEW_GUN_CAPTION: cse_ab_ATragMX_RscText + { + idc=11000; + style=ST_LEFT; + w=0.25; + h=0.04; + x=0.550*safezoneW+safezoneX+0.12; + y=0.265*safezoneH+safezoneY+0.24; + sizeEx=0.025; + text="New Gun Name"; + }; + class TEXT_ADD_NEW_GUN_GUN_NAME_INPUT: cse_ab_ATragMX_RscEdit + { + idc=11001; + style=ST_LEFT; + w=0.225; + h=0.04; + x=0.550*safezoneW+safezoneX+0.12; + y=0.265*safezoneH+safezoneY+0.28; + text=""; + }; + class TEXT_ADD_NEW_GUN_OK: cse_ab_ATragMX_RscButton + { + idc=11002; + style=ST_CENTER; + w=0.1; + h=0.04; + x=0.550*safezoneW+safezoneX+0.12; + y=0.265*safezoneH+safezoneY+0.33; + colorBackground[]={0.15,0.21,0.23,0.3}; + colorFocused[]={0.15,0.21,0.23,0.2}; + text="OK"; + action="call cse_ab_ATragMX_fnc_add_new_gun; false call cse_ab_ATragMX_fnc_show_add_new_gun; true call cse_ab_ATragMX_fnc_show_gun_list"; + }; + class TEXT_ADD_NEW_GUN_CANCEL: TEXT_ADD_NEW_GUN_OK + { + idc=11003; + x=0.550*safezoneW+safezoneX+0.245; + text="Cancel"; + action="false call cse_ab_ATragMX_fnc_show_add_new_gun; true call cse_ab_ATragMX_fnc_show_gun_list"; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgFunctions.h b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgFunctions.h new file mode 100644 index 0000000000..961697ae3b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgFunctions.h @@ -0,0 +1,16 @@ +class cfgFunctions { + class CSE_ab_kestrel4500 + { + class Kestrel { + file = "cse\cse_sys_ballistics\kestrel4500\functions"; + class button_pressed { recompile = 1; }; + class collect_data { recompile = 1; }; + class create_dialog { recompile = 1; }; + class display_kestrel { recompile = 1; }; + class generate_output_data { recompile = 1; }; + class update_display { recompile = 1; }; + class kestrel_mainLoop { recompile = 1; }; + class hasAdvancedBallisticsEnabled { recompile = 1; }; + }; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgSounds.h b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgSounds.h new file mode 100644 index 0000000000..5c6ac6de09 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgSounds.h @@ -0,0 +1,39 @@ +class CfgSounds +{ + class cse_ab_kestrel4500_center_button_click + { + name="kestrel4500_center_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_center_button_click.wav",1,1}; + titles[]={}; + }; + class cse_ab_kestrel4500_top_button_click + { + name="kestrel4500_top_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_top_button_click.wav",1,1}; + titles[]={}; + }; + class cse_ab_kestrel4500_right_button_click + { + name="kestrel4500_right_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_right_button_click.wav",1,1}; + titles[]={}; + }; + class cse_ab_kestrel4500_bottom_button_click + { + name="kestrel4500_bottom_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_bottom_button_click.wav",1,1}; + titles[]={}; + }; + class cse_ab_kestrel4500_left_button_click + { + name="kestrel4500_left_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_left_button_click.wav",1,1}; + titles[]={}; + }; + class cse_ab_kestrel4500_exit_button_click + { + name="kestrel4500_exit_button_click"; + sound[]={"cse\cse_sys_ballistics\kestrel4500\sound\kestrel_exit_button_click.wav",1,1}; + titles[]={}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgVehicles.h b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgVehicles.h new file mode 100644 index 0000000000..a77b370e9c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/CfgVehicles.h @@ -0,0 +1,37 @@ +class CfgVehicles +{ + class Item_Base_F; + class cse_ab_Item_Kestrel4500: Item_Base_F + { + scope=2; + scopeCurator=2; + displayName="Kestrel4500"; + author="Ruthberg"; + vehicleClass="Items"; + class TransportItems + { + class cse_ab_Kestrel4500 + { + name="cse_ab_Kestrel4500"; + count=1; + }; + }; + }; + + class NATO_Box_Base; + class cse_ballisticsItemsCrate: NATO_Box_Base + { + scope = 2; + displayName = "Ballistic Items [CSE]"; + author = "Combat Space Enhancement"; + model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F"; + class TransportWeapons + { + class _xx_cse_ab_Kestrel4500 + { + weapon="cse_ab_Kestrel4500"; + count=5; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/Combat_space_enhancement.h b/TO_MERGE/cse/sys_ballistics/kestrel4500/Combat_space_enhancement.h new file mode 100644 index 0000000000..e52dee03d7 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/Combat_space_enhancement.h @@ -0,0 +1,11 @@ +class Combat_Space_Enhancement { + class EventHandlers { + class PostInit_EventHandlers { + class cse_ab_kestrel4500 { + init = "call compile preprocessFile 'cse\cse_sys_ballistics\kestrel4500\XEH_postClientInit.sqf';"; + name = "Kestrel 4500"; + author = "Ruthberg"; + }; + }; + }; +}; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/XEH_postClientInit.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/XEH_postClientInit.sqf new file mode 100644 index 0000000000..fc5b82e664 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/XEH_postClientInit.sqf @@ -0,0 +1,19 @@ +if (!hasInterface) exitwith{}; + +call compile preprocessFile "cse\cse_sys_ballistics\kestrel4500\init.sqf"; + + +[] spawn { + waituntil {!isnil "cse_gui"}; + // TODO seperate config entry for this, outside module space. + ["cse_sys_ballistics_Kestrel4500_open", (["cse_sys_ballistics_Kestrel4500_open","menu",[70, 0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), { _this call cse_ab_kestrel4500_fnc_create_dialog; }, 790542] call cse_fnc_addKeyBindingForMenu_F; + ["cse_sys_ballistics_Kestrel4500_open","menu", "Open Kestrel4500", "Opens the Kestrel4500 dialog"] call cse_fnc_settingsDefineDetails_F; + + ["cse_sys_ballistics_Kestrel4500_show", (["cse_sys_ballistics_Kestrel4500_show","action",[70, 1,0,0]] call cse_fnc_getKeyBindingFromProfile_F), { _this call cse_ab_kestrel4500_fnc_display_kestrel; }] call cse_fnc_addKeyBindingForAction_F; + ["cse_sys_ballistics_Kestrel4500_show","action", "Show Kestrel4500", "Show the Kestrel4500 without mouse."] call cse_fnc_settingsDefineDetails_F; + + _entries = [ + ["Kestrel 4500", {([player, 'cse_ab_Kestrel4500'] call cse_fnc_hasItem_CC)}, "cse\cse_sys_ballistics\kestrel4500\data\Kestrel4500_Icon.paa", { closeDialog 0; call cse_ab_Kestrel4500_fnc_create_dialog; }, "Use Kestrel 4500"] + ]; + ["ActionMenu", "equipment", _entries] call cse_fnc_addMultipleEntriesToRadialCategory_F; +}; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/cfgWeapons.h b/TO_MERGE/cse/sys_ballistics/kestrel4500/cfgWeapons.h new file mode 100644 index 0000000000..c0350297f3 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/cfgWeapons.h @@ -0,0 +1,20 @@ +class CfgWeapons +{ + class ItemCore; + class InventoryItem_Base_F; + class cse_ab_Kestrel4500: ItemCore + { + scope=2; + value = 1; + count = 1; + type = 16; + displayName="Kestrel4500"; + picture= "\cse\cse_sys_ballistics\kestrel4500\data\Kestrel4500_Icon.paa"; + descriptionShort="Kestrel 4500 Pocket Weather Tracker"; + class ItemInfo: InventoryItem_Base_F + { + mass=2; + type=201; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/config.cpp b/TO_MERGE/cse/sys_ballistics/kestrel4500/config.cpp new file mode 100644 index 0000000000..9f83f3df62 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/config.cpp @@ -0,0 +1,36 @@ +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 + +class CfgPatches +{ + class cse_ab_kestrel4500 + { + units[]={}; + weapons[]= {"cse_ab_Kestrel4500"}; + requiredVersion=1.26; + requiredAddons[]= {"cse_f_modules", "cse_main", "cse_f_configuration"}; + version="1.3"; + author[]= {"Ruthberg"}; + }; +}; +class CfgAddons +{ + class PreloadAddons + { + class cse_ab_kestrel4500 + { + list[]= + { + "cse_ab_kestrel4500" + }; + }; + }; +}; + +#include "combat_space_enhancement.h" +#include "CfgWeapons.h" +#include "CfgVehicles.h" +#include "CfgFunctions.h" +#include "CfgSounds.h" +#include "UI.h" \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500.paa b/TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500.paa new file mode 100644 index 0000000000000000000000000000000000000000..4fafe55cb2e312d2e9eae3d28749410ec44e58fc GIT binary patch literal 208892 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≥T1-g9>ZqOS+<6CaS|!x2 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500_Icon.paa b/TO_MERGE/cse/sys_ballistics/kestrel4500/data/Kestrel4500_Icon.paa new file mode 100644 index 0000000000000000000000000000000000000000..062282115a1bcdd51ece9fdadfc88a8324830d68 GIT binary patch literal 33147 zcmeIb3tUvy+CRSb-ZQ`q411`MF;ix^ID2M9wG@% z`TX3GGtcb3*IsLVpUYa$dY-lUc*cyhtf@1y(|8D>`Hwzw|8+ViZ4O6cI5>Jn+5^)$ znt=Z~`VZ5m&(*?rJN$o5g%J5DLIN{FV)!AV452*u|5qMmhqv;*N@ndL`CkCB_~P38tLxFTecsgffL3 zBv3EZro|nsMG7l&E49c=bf<;B4^{OdhZfzdMoJIYtS@{teKe$-9@F&fnQr{@A%xmW zW4aE%<-z9FRMnR1t2X^lLVn}XrAzHsvCTv9_ix#ijL;Gje689tP0`%x8i22N@12o> zSeC^^Nn?OYgGL>eZy|`r?y8H+BeuG8DQ5^pB@a}1Gw~B8^b8#$8`SP2h1H8gyK7g;t@Oqc(Y0y;)d_V9%qW-qMVOz>s1Z>pvF9;nnsWORyW9xk-L&bx5p_gVtHOLii6uw(6K|(pm>Z2CV#Wm zd(ifS24lGn1;@IAmyO3#OMei72&nMaUOGwMLXYXsAwsoD9Z7|!k8H)Nsx2p*eV}83h{A!#4;4t}uS}fQ zjwp2JqO}D-VVo{u8#j~+oO7d&&l%YMr>;Wr-k^xhW$vQo(M^lSbmKy4UVfWhiD{ot z5%d$HwWwNNO`%oC3MDM1V(-MW-Wq@S%LBRngqY3i34UZSOGI6%^1ZXC+#I8x%R)F()QGPP z?`SGKbL5lI{tkn(h0c6Alrrj>7P`Yge>B+DDThmDWc)eVuKm=gv_?K|6kSWowP->* zk+98kc88Q@!}+5+WKvc3J`cu!V?>2H*&8n&DKB49A-a~OeFBBr%kZU0{6pltmkY$< z;o+NY_NIdSnu_kj_@_N>ZEdqX!Tfefnnb0lD+9m+DkQywtCpBg*rHP>UECmw3^xjp zV0;IPe0BTS+I6fmJ5|NZBar5o27rY0t$JFf( z%%DWE;Y#P-4&Hq#%{|I+uI0~qBYj2}fw99eF$LWba*bT5nts6>ZB~5hREW0^T*zrQbn3;XD z*0{9w<>~y3UTRz)ogkvxEh~zBfjcB2bb!@2SYxx}OPV~}cdKYRe6vf0cZ%?snRb3| zzrav#Tb8c$L=ta2TfW{$)JTA@rPV0k_#AO5kiIMQ(i$cxl8hyi(9Ecm=ooUW-nn2* z=+x$<756n2oal0=OY_?hvQ4{FW|iWX#@nPHAacuA#NTp2qVakM)U{2b6K`6+Xu+`= z$WdR%nE6zR6KTT3p+BDUMLIC~mvQ#Y$4rl4yfUPLhwNHBYINp;JgN(K6dJP`Pb$Ao zH$ykL%G&KE7Kcz|M#F`VY8Vd<640}M(Cj1DCWL&8c%OH=R`PzTGJp93I|1VgY3y?y zMdLOZMWVO7ZQI=GVnk6Q{_Lc}6EjJ&+dcYYtucU4f8(t>)3jv1iIV7Z&}rdLJZsa= zS#QPcT~a9CY$wK2i52qnFo( zD-CV=#d42|f5fofV79JW4f<-mVS2{ZzP?_N zpTG}yv8Fezf*GenBV-bzg|}+i<>?KcD^JLXc4i&pbqRTP$V_BG!fiv=d*BR%lXEoWXKWKDB92c({g>tTIsf zij=ty)6!8#jtI_rWld&Wx6S+B-xu(yNHlLtrD1+a&0m|%1Qjo9*sxexH-{#vCVjaOv)37T1&a?zrQ}heMxg455i~+iHWC9|OWI^?u*7&qw?@IRq15d2K0- zT1=Hm2Cd(JCr?3&kW19P{d@PObv_{=aM0NPXia?Fv{@~qbKOy%G_WZ4_sj%Q6;rY$ z8oD545VdH2xLxyt(9)kKiA`*bwI00EfCsDap2BiTwk6_>NM+9po}m*(2(*Y2r|(ZW z@n)1clX##)!%13&Cq5wNyQW3&Cl!9%VzdbDZQA^l%eKp(wR+mH5tEw}V`D?*trNaF zn{RxY@gPJspY87aqdcOwZ-saI^3yH&aGEivSnfDp&9n*e51Mxm)kr|E zZWi_eeWX9O8;gpvv$Krjd{e{b&N@I650(U-K-566@G!>370bZfRIO&6BvN0(qTtqP zJ}OpWGUVt%!;v)-G-bZLW!wfsATQkIlBc4F6KI@u*)4Zbr;JyETU-88YpegG<@h@9 z@ony{D@BZ&qC6LRiu*qH5CPqI-fC@re$Q*((n!?6hJIus%Dp>7LQw!OK`M=M9YM3U?VNS&t}ge6CCJ{E zj=ygX9C~N1j}EY#e~_ssB0gSh$jQkwMVu=ed%SGU zi7vdXLO>9dhtKbF=ek`EBn5LVQ*RNnwGHv;J3Cp8g7Ulb0`s+u&mzwVIh9Kw#uG;s zic_47?oz4ze8eQ)!B#7ze;2g!n7c1tyVhuC5&s|6oquk z%*zpZlp>{g)_=!{i{iW8F$$J7=C7aWsGs&i~r43#N7)BbD*LSsgMSof83lx68>kY}*3g4z^SxBJl z&6-G1sEc%K6bhA637sJ<;X1=ZlZ^9hmCt0G_|p0i%*!*GZ1(-47|*@b9gTH$6%^Bq zC` z0pp3}|1DXmQteIuF;BjKtIRb`0UcB6p_?(~Sh83*SQ@4Md*}myzw7S@?&`w(R+k?v zES&v*PPAuE&_lUxGq*Ta_4EqQS9lN7o+B7%?j%LAvEfI$ zR-C@P{QYh`!;n*)-v;KaSX(JqOHt6mgtQ=xy+7f{GD!yU&`*2HB^%-zU8{f0d`$L^ zhM2H)hs1O#XH+|n3U1py_KR)qa!IU6Kuvjly!CO>(kS!eLUrHZCm77}@uLOeEQK|+ zTpSXCh-b<8;3<7&mM>|~XJGdvgeX?w5u?Cu{mNDKD&F5dESd%L8;o}_$C$RkluJEP zZ>M3;S)N$gQo>IUi6B_k70#IdK$VFJ5+Ts@K|7O$eJ$@Ir|n|kOax`d zD?_jr5drpuQD!WA>g3S_1VSQg4-g|lj9xqY*v^Kg%M*VJ3d!kuVNV}u7PMn@CgNwp zKs11L#;Pc4H0bctV7c z`aK?kT(-JhddgVFi@|Sybzs(Obi}tyNLfqE9X%lt!8|r0`s1PUsOC*PZ&Y_v!GxoWZ{s-%?WKBlQ>^uk zi!afadRLj`DVjCLmvYw2o%C*_fY?=6Q>$#I2}f<0LkV-K7Ds&!h*Us2bjWiaI-tJ1 z(vX*zXSBz9?j>7r=OJRNjo4x%-#dG^bG#P)6a?RHZ_L*s51;V4bB>w$NSt!;Y`^#L zigOtEEh#N6E*_wJ*Pi=GLt5N{h7N-Ian`{o^WMO@r^ohB*Rguz<353KzNxHG$oPnj zOD*5)wD=|ay@jf^Go5f}^9Hpr}*ZDcbAvjL=X4B%@q<_CEbN_aBiRV;5ob4uvo z9&7`%y<6s;*rU+=W4Ep#Z|!D*msn>aVt3T4%ruczUtP-hA`d0V{`!fEF(YbM^0$tf z7HI34G-zv;mtJqN<$0gRMjP?Q8()77gC^<;r(7NzdpYQ@T@ygxcj3}5vyF$&A^Kul zsIe5053DY}SluQ$jxT-q!dOWQer#taZCoGnK;fv9Wphtj+`+5w|LNpU9s&QnAt1d- z^p(X&{JjK5@Ew0#?eq}5qpNEqY-zCET6MI=}w#H1Dm%U zTK0mEUb4!J31d!>ox*R99g}N2%ER;|yDsg?v5}?L z4R6K8q?~+u3r6G0cQqA_Xf zPo4`Om47fbzgXFvpLRvdG#@oxLBcCOLQzDYDsO;UITjQJp46jOc^1W276qiUR&szz zL5D&E*{gD^STH~2oGfKh591j}?Mgtw4TCV}qt+zYk)x0MwlksiS!F92BBIrB6)VkR z;>xbQyFh$)CI|eNGRoVZF84+zb8PFSH^{u292h2*mbv%;BjEumaGQIk?x4-Z;(-`- z9Ixq6aFHsQl&i-Dzjo}gEv42zlW<_OH^i2+H~>#537*`^Mt}2%)%$P15Q6z17WTHa z9j(}yyZ)W1=H=9!4e2CVGrsv_p1S{|RaSNh1JaY87Npf8AMs4W15YZP%MRxewe?IY znw}wBy}!lFGCougMDp-n#w(7I?JEoh+{Bq>3bUA;o>3ais%(hu5z1fTDT+cdtIsD} zh>WF1LQBdqomQj>xYm#jH-IXtj$^zuAKJLlqY3QyeZQ(wXMOc}4k#1qT$eq zb#V=dg>OWyp_J=7-u^8e2DVWNL$-*ILn!{7^gj0fns>$)i-H;t9Wjt(J)72-RQwYk zpE$ctr!|-q){D}hD0PCDcuV%q@`r43KEmy^5H7hU{`F&0GbL{(qYBHzEsXEMg$mgN z)e5he(w8Y4SVgl~wo--}PZ>2myhud<8*8-$;ZGhm&d5^3!_+fi{&U z%I`l`Mw--^NV_CJX(o@6W=PS1RlQO_Y3>rP3)vt{I42ru;Q z+JptAOiJ;ZI2hIpY|j@H<>Jq_gdj0>aNO(19($B8_ocn|u`oLGBI8?j$1YQuK8v03 z3WZRT8d=u5L=o)0He_SHaxYmRd$Kyw#W>L+SyN50mvO#1-WU;fKpG1*Tc?9+t@T7E zdFjQuHY0(ulqn%B@i&t+*eYVZOmoOqVjwOBnc_5vb-8?m*KgEenE~s@yxr6L#OkQIjWwf_%+bMid_3^fuEhrV4_VR<@OL9P{UdM;?EC z77VJU9B!BN?3YNC>M-J}G$w#ihf(({y54#{QfWrAE1&46cv*{?M6nY9Y5`1Y+L>VN{=stpz46C%m8X}hT4o$Q&26yG}B2KlRVLr zy!3b||9LOHJi$jBv%vM$$%$`iw@m#2m@T;?#JKS9ywf@AvJS zV5X<2r4ymfY6AYXJr!JEFZaYlw@vw^{ywKHDb9x?I%O$U^;4R;UzIAQ+$T=@MD2@T zq?_oaYdLIv^bdc6%13+WW-;DKB=ef{6z0E6`99jQFUccHHPeY|BF-wUua^p(C?d)! z?NfOXIi-2hb{mYL8MO>bY4y?bc0wsKPgT5Uh0^@Il<;WOuuedG=y)gU2F{w~A!I3; zwG(~f^78w9@vW_LZ~UkfZ{)goAAO{dYbOjHbbD$I_j*iL%(9HvmLuhRB9oo*IjYpq z%Ux2DnzlSuFY14GN;BHJz7M>86V+0gMN1}`k;Uc|V2zJBb~qtrCp*Doy3KwGOh5;e z3o`glJhW^gcn4iBi$xmhjdw_sz3~xwwwfByZmkUsa&P98ytOSj-b2eZnUe0Lcu!=m z?R_87czA-E$K1tlMqz2uK@+@@ePV>Rp<--%aZlYOj|o5;7yyQAWPG8YY+U>exVI;5 z1_pa^7yR?zdqKV~fqdQF1XNZFP*12*&?r%0)4k9kUi1fPh!v_Va%YLjHXE>XRCCV+ zU!-s;*Bw6kvv&X_Dbxw%h-IaL>aU`lM_WNWm7pC8atRVXYGjtLguvGlDxE$kfhU|w zNk!CXbt?Ks0ssJKSR%5Ln|q?X@gi89@zSd64aoP|?r59<9HyJ(X@%l*v!#nXtObLtDCg@>WF^889ZX3I>TMRuo#YG)1%ifPG#+UbD179@ z8KTK9PJb@aQ8KU6Oz{lk(-p#CrN;(C()Bk)sq;`DXfXq?m+&3;^)t<(w~>)O#f*h+ zrv?X2dZsx)O#89IqOJTd4H7oGIIX`Z!_iX?ZZ8p0nXzvlsCt-FFV5(%YJl(D+0{!5 zecUK`Mn<3Gn%hUr)CKmo;CJQLw-#m4fkCyka%`HOF*R(~B)gbAn5GRHT~?qMQ`$*c z6)JVN67+dSSg@3A7+_LwKa(c=YXP{IdDJ>xVq;^Y(o;3W3sa5(V?d8K9PIydg!Xw} zoncKv>BSzodJ?ZU?UYo6afG&&_vKlhjAi5HsmrYRwzL+L+$mldmfp4HB4cg^cl?3` zN+1w19x=5p7*)Hws8jL^|SZHgPFb6Z`siMUhp&#j8V&cHYN?D6qL@In5U5w~dDbqsS zub_kTVo7;Q(A z!bl+%(WVV+zaY*lWm2iYbed{(>E*ESGA*H8ywBlS&zL8{WIirV0rQ?H;yvZF`#|L5 z{q+a%ubmYxg`esS!q)0)PT-bge7l74+?V@Q4>W|gSoe+8^{!HZ=LV(=U`0nZ8}Ej7W$T)hWy}IF)TQuy7H{SJ1|(ZSdCBc|2;!N5a(z(e}HJcT#Dmc~c=@|fl^FtpG6vUe4u9xKyiBACwt z8???v^_)0I`7(tH#w?-&(yy*sWdjXB#wfCKdgZW0vnGM3=nO`Ej4vfxAyZ4`&7u6Y z$JUlot(Ri$RRx2nTrx$1+_)FfU< zp*+2>Z;9MXpOvXIiC0g0F2l4b8PGR=+t8_CYsQ_cAS-N*&Kb^z`KCD_bY--0hUx#&#aMKkVQhb`GaB z4@xJ?`68w{1=j5BZ7>1k$!JPWkn&XeyCqR61uQ2H-xZ#cimCJmpEXPX9#v#eG6_X& zUn|4f#BC-8Xop=1AAS4nc^|R2WNToAkN9Nu1TQ*cDw9u+kXz6?S!;nxK*&8&pfMiS zDV4&BOfxUn7O(Wuj}BE_4fdX@)%kpb-+`xYRi0IDy{l3erOuZS<@9@9xt4II#kAE8 zy;t@i}ort1*aLLuoZOUQ(*Be zqtoKEBqUlv9Zste+b}TC`1DZK(3UJ-7)5WF4DSY(C)ll;)U*znPiJt95cDB{0#F}Fl>cPcG)EVUI zN_8=HHZ4}6&lVHuTVfTVpWKBQi+Ay8N;-M_c6mx@t;{Q3rGU}m;bcm7O#3{eo=cpP zR`)ZOlo%sH^pUI;gj!h6%Jm?~-++$V8_cvulCoIADH!!>;9|hbId84ZHYvsHRbW&m zZV;0d`2pz%Wi2ZL!OYOWGKwAbNC|`Si4#NPL0IEdzWCK~{#lE~4Ffa7=;TR*N_91{ zdP(26N{!gI^1}!;mRhV^n2={wsx|O*m+4&<(|p(HgSm0Riqv9xdMNGz)zk1+aX{ zl0Ky^QlD*=Tc|ZA!NAG^xif!;Op`AFuZQ=xTEJ9y4L=2DJAPe8XvDr6M*YqNZ@gFL ziRa8RrcZRuj`L|c4561k?@~h7x8nIGXoKTIzudfy=r9~ke&}fgiq%*Glghr)74%*e z2?L+e9r1PvWp5)-Nq36gkXu4`%W#U`4qU%t;?k&=R16Q&Mp?Jvi(X=u%$hKuVqT{B zGt$c?qVeNSfW3pkhHYsrnAR}x{OGNH)to9`pm4P+No8xiU`LI@a}WkXDeiu`h1i`( zH2GlSUnDFtW1|IX{;DtX>0^_Cx$xD&zc4MKfv|So%&#-FOYNn3os3n}E|r&b_W{aO7*pl<~e5y}gWQd$hNq z7zB0u`hSF+8tv(lx9nj$Lb?f?{q7&YVQ?T?*0L=-i|e3W$-#=fd%>|C<=M`pw8>>S z&&B3}dyD@}!a=D6>w6jV8#2v)2kT>+Q%yuQD`eEwprbJBQYxCO2?1K5Oxq?{gcyFnfsLZ3jUB!5!qnbY<@MZ5GlRY%2Y&?N;y#gErWPHum97n3Rq zNFVK8PJ(Xfb@VHmMbzR9UvF)#5?ANd*cHv&$Ui5uj%tMl9ZnulsJD}~26;xK!gB%G z@Zk(GHPyb(&>{M^54aKP>KbTmWm+QF=>*r#gKy^plNS#(%9~~UO2ZM|)xP)MgUi5e z38D)M@hiL$s{RbvJ!^|?rE`L3Zmz8mWUy9+H5Y7F#*7F`kyp&Lh*U*)9`v;!g)>ee zb81$B(B3ADt7hTp2*NAGq@9?Dt}2@^zDB|9!3RH2T&$CVcVL?UvlCK?2BjI@9yE1= zl|aBBv@E3tNys!}x9KHkw_9Pp4LG5$#dpC=95GTveQU#Bm@@_2oK@a0w_CssuxE8# z3RJYhO9xnNAKylbA1H|fCO7o<^nsKjt;#C0=c$~c9tjUUAEvXgtXNtuUAFYqrz7nm z{_DruB@5Fsj=&&+Di@zWRd^IUJr8{xt5~+9c_(~*`r{bc_p&=vft^i)>@2;Qwx`3Q zf|w*5&L&IvZL+Nu@z875KT@%r-mcrbH%{5i3)5slyw2z+{&73;>0S%wR+^si#OK;t zWUWg~raTxFQOcse!Y-KaOvxh=8Y{7KwwIXW zw2Wo&R#}is;X_T0^oe#a8`;)>+X3H)ij*Io4%7OGBdggJK4RtGP|Cg(rWtrlnKqU& z6I(@}`v@j|D=}F@X^F71iqD~NT`o0MOxfc{d%xKXK<~QTBKK4U35#kCt&J)1_Of+j z>|e_~+sV}eIH2lf9$JKYj?-tf^miCPw>l@YIG<^LkmxJ40@$s@`9c{?MeU!QERvh& z-btkjzJ5sV6D96_kQekGXux+zQ*)o);8Ufds9MI#)gRH%oqGD{he(&JF=fhm2!VPh?gWM?LjeKnu-BVJhc_n` z&WCWtZhXgHtsSA#%XgMkU`T&nO*>?@p8+zZZ3 zeKpKqC*5h^2bN0dX}N1vCTmxDCPKX7DJe|)+a>VNG{sgz$(RppC4@?KJPch5&RcJ1 z8zxxD0i`cf8pNZ)((+^iMKdLOw4~NB(AuDy`YpZ|h&^9KH8()8OROjy&3y4L?dPz{ z&Zw18>yqZkL>LQkA(*$Jt)$R8efgiZm0hT~^B@lSz*r_MTt2nS{Xhw;FSXk*EeNFO zvn%(imICs3@n$dmu<)wGE?2Ahs-+!;HZYu^Gz>1xSS&&#A-l2+DY4r3l#iQC*BR;? z9N@0Ia19!QeT?~eO1SjA!DeGT`*^~lBL)Xns#=lNCj@6iZ3wM!<||EM1K0sVP2vXO zmxW^nKO?t?MjRGe$Hqm;X1u&e9%8&^+`->0LIPWv=){2{vVQ9!FA>Bzy3r?ud^%b)EkdSm!I!zYlZ3r$3{;X@tn9;K>cuwKy18)fP2vcq-n$3h1;I0Gsy0hqHf~$s}^@xKz~u=?BM@G z#obq~bqOXoc{t2+X`j-`b6#)oYu7CUg5xa{~;|$Uq855U;lUR^A>%pKmL>W zp$lVoKOE!ghXTU8@u*`^|9ov{)3S;WG48^l8&UOD{k#i@U*UNB+J&=e$gx__e`WvJ z7lF38BEINty3-Belo}(Ms8U0Y+8tM$~_~>ecdP*Prae50^b~o-YK*T!h@AdCj!@TpV z&6L^BoxPO*_Rc~H*1MjY1H)fAMvF?jpqw4=ACslie`1EKaa0e zd0u?ET=IA}Yt*(?{UCwAR>1$c=gvUn(omh-CFPQ`^FNl%a?zJRYsiHdzH-T##JFJl zm$(WaTXF8>g&K(~+gL1q>rKm-8qa4wd?*dV*c<&V#`tX~LPEg^?Js%g7p~6!bKK`G z`d{@&7p~5%uAbQNig^}*OQkbxs;UBoV;;iJ!MCa zepruR?`oG2n$NSxeI2l3{{FF}yWBgZrFL@t9T(_V&v_v3=GYF&p_SSC+s<%9;sMR7 zu6C&l;{Q{hZ(270$tq8m`)>@g7w6%)e!|!mB6Yp9L$dfxV>taigb?B@nv%vcNlN3u z05z-+Hth@+2!j0>bG7n+zlHa&=l9S*fqrjV1X(Ek8z2Z*%RA-SE|;6X$aB{f>RFNC z4_@4THmUHwvHgn;ESs-&wm}LD1Y183;am|B5r52Xz1oVeRn2hic{oAuZWWGt%l0Fl z8+yreHdZlUTUzW#Wp{GBl>I6kticdUr=;bQ=GTvZQ}ZFV5shO{v|tDi^HP-j7~agg zK8XYS&?#YBFJG&`5GXlQS0hPEO1cNhsO#a07=oq&|6B5ZgX#aL{C~$!O-rMjmVb*u z-XUbYcwx_*b56V^f^3>)6$Hdo-`mkt^gg6!<+>-7Xtmlld;yW%BLmZGBrk8t$sE;g z-x>!GZ@~{Ikl>5KGe=*qQA5QJNvR29e!qs3=i_%^d~?QOu@+&qQIrO!s4=x+tULU;9-OHjiAi?0ot{23Vq;_>oWz6{NTka=!=*!MW+ z&bZP1TlyWk)!!G~Cy>92hA6D%=bl^+;j49pnQ&-NLbPLMg|`L2uv0*FAG_@<5JrJF z661M0?MSmN^6M*~;K3EXuwB&Xw(O9sJd^0U>jJ)JdwSDn5TPuA zw1dfspEnhK3nr!8EfcpvO!)W)$Skr!S{jT8M6rpk@H1yuoNihS{81w@=3MOAd=4_& z1~Fc~xP?scXDcK%8zHOB34`sqa(YZCAPQX-jO{`nmKqF=V>7CqDh9ESeB;6DEuJ$0Jj{yVPgfB#*ToHx#s zJu?5}Xik6MD0LBspX29r+o}=zy<=%Xap8&U{nzIlM#x;8U+t$K+laVb7Ic345hxGn z`~CDn#dSK|PrtQAio7n@=Og$p(%q7Oz~IL5&+z@1=coDYf87#J{{8)Z2)4$^g2PWs zp&;%Vzm|Rxyhl0!)PH?bqZCDlZ5^fu4ukgMUpzY6%}^J6a8 z2>y_n4#&T2-;E1KYCiPCE&4{!4&(pf$^c7y@FwVKDiTU&;@>ceo2q|#ra>- z5x+S9OIpvJH|6L1%jc&f1iNO0%euh$zdIJzey`(yYyS6J`Fj}u;F5oZKR4g@<8iqQ zvN^6FLluA|49Na)43GClaoHX>pZ^y$q*HMB58DTh-}2$`KQG`0{$0cK|3$i6^Zy&* z!w1*ZBh>#7dKmvYZu~dwuluF`=kT~0e@MvT@N)Q{`b&QJCH+f&_~re8f9K8Raq@pN z{^S2I{3~zae-q%p9sf#0F&ut8e{cM`9J8yAzF~d=n&Y40`QT(oJOg?}{{JQZwT4^r zKf(aNH~zbRG5+J^5&B!<=Z}catR{H+zzF>WM-OWueRtzwz;k%~Ho3F$upLQF{_AtP zUB5X0GRzQ0?w|Y%{HMdF1)TjK(f=KVxA6Zx@n8Ql`9J&%{G~(S4CBkuG{0$f-A?!Ca zqW?P#2xS{NfgCE2^9Qi3{TFoKFkO57ylt4~a>)U{5gO$8=QLN|!0>s_pTM%Mzn~q% z^g1X%JW+^7pceEaS4K0iGJXb5v1wih!pqG8uaZNC5f%Ep5dC@;}ZFJJwQ zwDl%`AtW`X3xx{B2>y>=4`=rGz^~@_8#mm#{zgv^%YWYz5dUF3Iw0>r+h(`>@p!#! znquuu`uN(}Xql09dHv@XWt@_dJ;u-d^m8TA3cxemPmfP;mm-%9x_ts z(@lpCO8BvQlb@cnk&@+Qxms^&G%gQJj;L^0$G{yCF;N=mI44cn8TbV}x8*);$4i!#2E1`9-x5;oo7X)Gh9*uJ-poy=GxTq{%d_pDq0{iX4at^PgV?@@&j09o84u&O(CVP4?mh z(D^sf0f6^f*bvWufAXE`6MRCu__#fzm&5bIsJ3}3K-moxX)vDve<3TRJTkqAw z6mjVM65VxuF?_xj==%Egf&TL|;CfcyBK6bjbZZg>)JXitd654^IBwxT)Stf_zYgO+ zyX5EdKk&HQwOT(OGu~L30P&z@ep*#@ih(^ccl&8!5ybaoWv%kl-5Biq<`H>b*$DRk zCiy>a;3?#>qG9{rVOXcjHv1s1Yp8v@LI31-;|qTJd|~A+{D->c`oF&y{@Q6={0Fyt z@XzsAEuE3Eq;JH(?Y7@{PRcpdoAG6HZ1?ol_1ooADN#supR^AEcahu5B?%{vn$z8L;i=j96dW6 zKl0+su!%AXGWpNb*U0Pxdqy$l}Wo9GuHJ|x%)r*B+; z$1Yh=5M~?vG#4Lqva`Ve$2S1`oD9Zx9D5_ z@xOr|v`7mt?i#Mizl$yJzMdBMA`jynE-hO-z^CF;Xhwx9i8htG>Ur{G8$T-pn`bDzCR(abLBixJDEkoYV?W|(#%f$;UVQE&C%w0bE7TpX$f(ixladH z4!s))<1@1$A35%~*6-hazxq^DQU8;LpK`m-=NISP_0lECs=l(cd2Ih15}T>}q&Lu# zF@?Hk<-14uvQH-CZyf^%{$T?!1sUzqushh?J5Elo+cIm)iEZu=(u{hR2s^#odpvnd zJGVn)TwG$}zq|gwwfs}4;HBg*ZV$(>gZUlz-18IpeHXkOX506<;C40|i&x=!9SBJR z&JU%bef3vi4{n|Quzd^0_bb@Wm-XoMYoBYbR-NgFv@<7c%OBPNX%4NP4=|pp053!M zZ>`_I`+jN9#BZYD597s!JK>0_nqk}d!K&(Se8aA z_A9gr-i`r((Ehalg!ZEvc>NXpaqWWb!j1m+abYto>m6P;;pmkRr|UmIrE{TTpKD}U zeoAMI%+bxZJ+%q&hfFUF@8OyZ0`Ob$`M2NyPum}7hFRh8GW0LQ5VN}@KH>Pn-yf4Z zzvI$cwP?i<{$A+M6gd9v^}q3ek(vzs@T=+J_EWN(@sH>f{jB|yJ1>9y^Dr!+YinWN zHT1m6o%Kuqv)eBP{x=U#Q)djNkqq`40;U3WA8=d{1>XYDU( zj8V+hL)P>S`Mw91-Q_p6|Bk)Uij%H^Vg6XzNXq`<8o(p%A6jPl-`@V}nveTEAFlwp z|2h7#1+^KgwS~iBDNT*hfIl9_|AD2^ikBN51OEOw0^6FvCfjw3SNQE;t>Hg`|HJUZ zh2!%I?}4;^4*%it%(4hVfrkk{{IgRZo2~ zUccpt;4WBx>45gf{;yA~8vAE>eJV_0F}_ey49qHc3Rfjwr@<|ihtP}1aaF9J2KD~x zaU2hS>1Uj2I(lHvU%*ScI}OFVSaJ!}864u=?hR1*Z}x_7L$fyB zHEZi8j2|e`7H58%coDa~GiAr0Upe$la;IBwbZ6*-22WfaR}Xu6SDk5HA^7S|cm<{f zc7NKH48a<|IU9doc~haPiOWV_Y}mBv(@dN<@wE8A2(;3<0A7@^YBT4F67QS2Id z{`B7`8*{k*l|Oqv_q@BU_YJo{Wa*lOzin-3NSXp~4yxjI1E__!qy7%rpqbjx?+`3h zfEp|=ZbKV6@3ds;2_LQzb2@V!?2~~N1spBmI)k1B4{zku20ULd;+}@9ZXh*;pPv?U zuE1d_9o8wz5+kf*O>PW%yJiH zJeu{>&YFwK*Ej9pHc1E%kCY5m;-9M>RO_Ej?n>U7Wi+BK{@L)F1WEY69t~#Jf;GOd zqKLCb5CmYH_b1MprT{E;I+#uWU!%z&=wdBY>L?1TZ6je1;=#TPea?tObKXcM?? zZ34~b2PiS84GJr`Vm^iBv{?MY*e_m~!=bGUgye4?XjJIW`MU$YJN)3I{|#@n&$vUa JzGJAh{|7 0 && cse_ab_Kestrel4500_Menu < 4) then { + if (cse_ab_Kestrel4500_MinAvgMaxMode != 1) then { + { + cse_ab_Kestrel4500_MIN set [_x, 0]; + cse_ab_Kestrel4500_MAX set [_x, 0]; + cse_ab_Kestrel4500_TOTAL set [_x, 0]; + cse_ab_Kestrel4500_ENTRIES set [_x, 0]; + } forEach [1, 2, 3]; + }; + cse_ab_Kestrel4500_MinAvgMaxMode = (cse_ab_Kestrel4500_MinAvgMaxMode + 1) % 3; + }; + }; + case 1: { // Top + cse_ab_Kestrel4500_Menu = (cse_ab_Kestrel4500_Menu - 1 + (count cse_ab_Kestrel4500_Menus)) % (count cse_ab_Kestrel4500_Menus); + }; + case 2: { // Bottom + cse_ab_Kestrel4500_Menu = (cse_ab_Kestrel4500_Menu + 1 + (count cse_ab_Kestrel4500_Menus)) % (count cse_ab_Kestrel4500_Menus); + }; + case 3: { // Left + cse_ab_Kestrel4500_MinAvgMAx = !cse_ab_Kestrel4500_MinAvgMAx; + }; + case 4: { // Right + cse_ab_Kestrel4500_MinAvgMAx = !cse_ab_Kestrel4500_MinAvgMAx; + }; + case 5: { // Memory + }; + case 6: { // Backlight + }; +}; + +_null = _this spawn cse_ab_Kestrel4500_fnc_update_display; + +nil; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_collect_data.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_collect_data.sqf new file mode 100644 index 0000000000..c172855533 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_collect_data.sqf @@ -0,0 +1,90 @@ +#include "script_component.hpp" + +private ["_playerDir", "_windSpeed", "_windDir", "_crosswind", "_headwind", "_humidity", "_temperature", "_humidity", "_barometricPressure", "_altitude"]; + +if (isNil "cse_AB_Altitude") then {AB_Altitude = 0}; +if (isNil "cse_AB_Temperature") then {AB_Temperature = 0}; + +if (isNil "cse_ab_Kestrel4500_MIN" || isNil "cse_ab_Kestrel4500_MAX") then { + _temperature = 15; + _humidity = humidity; + if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_f)) then { + _temperature = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_temperature_at_height; + _humidity = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_humidity_at_height; + }; + _barometricPressure = 1013.25 * exp(-(AB_Altitude + ((getPosASL player) select 2)) / 7990) - 10 * overcast; + _altitude = AB_Altitude + ((getPosASL player) select 2); + cse_ab_Kestrel4500_MIN = [0, 0, 0, 0, _temperature, _humidity, _barometricPressure, _altitude]; + cse_ab_Kestrel4500_MAX = [0, 0, 0, 0, _temperature, _humidity, _barometricPressure, _altitude]; +}; + +{ + cse_ab_Kestrel4500_ENTRIES set [_x, (cse_ab_Kestrel4500_ENTRIES select _x) + 1]; +} forEach [0, 4, 5, 6 ,7]; + +// Direction +_playerDir = getDir player; +cse_ab_Kestrel4500_MIN set [0, (cse_ab_Kestrel4500_MIN select 0) min _playerDir]; +cse_ab_Kestrel4500_MAX set [0, _playerDir max (cse_ab_Kestrel4500_MAX select 0)]; +cse_ab_Kestrel4500_TOTAL set [0, (cse_ab_Kestrel4500_TOTAL select 0) + _playerDir]; + +if (cse_ab_Kestrel4500_MinAvgMaxMode == 1) then { + { + cse_ab_Kestrel4500_ENTRIES set [_x, (cse_ab_Kestrel4500_ENTRIES select _x) + 1]; + } forEach [1, 2, 3]; + + // Wind SPD + _windSpeed = vectorMagnitude wind; + _windDir = (wind select 0) atan2 (wind select 1); + + if (call cse_ab_Kestrel4500_fnc_hasAdvancedBallisticsEnabled) then { + _windSpeed = (eyePos player) call cse_ab_ballistics_fnc_calculate_wind_speed; + }; + + _windSpeed = cos(_playerDir - _windDir) * _windSpeed; + cse_ab_Kestrel4500_MIN set [1, (cse_ab_Kestrel4500_MIN select 1) min abs(_windSpeed)]; + cse_ab_Kestrel4500_MAX set [1, abs(_windSpeed) max (cse_ab_Kestrel4500_MAX select 1)]; + cse_ab_Kestrel4500_TOTAL set [1, (cse_ab_Kestrel4500_TOTAL select 1) + abs(_windSpeed)]; + + // CROSSWIND + _crosswind = abs(sin(cse_ab_Kestrel4500_RefHeading - _playerDir) * _windSpeed); + cse_ab_Kestrel4500_MIN set [2, (cse_ab_Kestrel4500_MIN select 2) min _crosswind]; + cse_ab_Kestrel4500_MAX set [2, _crosswind max (cse_ab_Kestrel4500_MAX select 2)]; + cse_ab_Kestrel4500_TOTAL set [2, (cse_ab_Kestrel4500_TOTAL select 2) + _crosswind]; + + // HEADWIND + _headwind = abs(cos(cse_ab_Kestrel4500_RefHeading - _playerDir) * _windSpeed); + cse_ab_Kestrel4500_MIN set [3, (cse_ab_Kestrel4500_MIN select 3) min _headwind]; + cse_ab_Kestrel4500_MAX set [3, _headwind max (cse_ab_Kestrel4500_MAX select 3)]; + cse_ab_Kestrel4500_TOTAL set [3, (cse_ab_Kestrel4500_TOTAL select 3) + _headwind]; +}; + +// TEMP +_temperature = 15; +if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_f)) then { + _temperature = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_temperature_at_height; +}; +cse_ab_Kestrel4500_MIN set [4, (cse_ab_Kestrel4500_MIN select 4) min _temperature]; +cse_ab_Kestrel4500_MAX set [4, _temperature max (cse_ab_Kestrel4500_MAX select 4)]; +cse_ab_Kestrel4500_TOTAL set [4, (cse_ab_Kestrel4500_TOTAL select 4) + _temperature]; + +// HUMIDITY +_humidity = humidity; +if ((["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_f)) then { + _humidity = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_humidity_at_height; +}; +cse_ab_Kestrel4500_MIN set [5, (cse_ab_Kestrel4500_MIN select 5) min _humidity]; +cse_ab_Kestrel4500_MAX set [5, _humidity max (cse_ab_Kestrel4500_MAX select 5)]; +cse_ab_Kestrel4500_TOTAL set [5, (cse_ab_Kestrel4500_TOTAL select 5) + _humidity]; + +// BARO +_barometricPressure = 1013.25 * exp(-(AB_Altitude + ((getPosASL player) select 2)) / 7990) - 10 * overcast; +cse_ab_Kestrel4500_MIN set [6, (cse_ab_Kestrel4500_MIN select 6) min _barometricPressure]; +cse_ab_Kestrel4500_MAX set [6, _barometricPressure max (cse_ab_Kestrel4500_MAX select 6)]; +cse_ab_Kestrel4500_TOTAL set [6, (cse_ab_Kestrel4500_TOTAL select 6) + _barometricPressure]; + +// ALTITUDE +_altitude = AB_Altitude + ((getPosASL player) select 2); +cse_ab_Kestrel4500_MIN set [7, (cse_ab_Kestrel4500_MIN select 7) min _altitude]; +cse_ab_Kestrel4500_MAX set [7, _altitude max (cse_ab_Kestrel4500_MAX select 7)]; +cse_ab_Kestrel4500_TOTAL set [7, (cse_ab_Kestrel4500_TOTAL select 7) + _altitude]; \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_create_dialog.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_create_dialog.sqf new file mode 100644 index 0000000000..0290c730f0 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_create_dialog.sqf @@ -0,0 +1,13 @@ +#include "script_component.hpp" + +if (underwater player) exitWith { false }; +if (!([player] call cse_fnc_canInteract) || {!([player, "cse_ab_Kestrel4500"] call cse_fnc_hasItem_CC)}) exitwith {false}; + +cse_ab_Kestrel4500_Overlay = false; +3 cutText ["", "PLAIN"]; + +cse_ab_Kestrel4500 = true; +createDialog 'cse_ab_Kestrel4500_Display'; +[] spawn cse_ab_Kestrel4500_fnc_kestrel_mainLoop; + +true diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_display_kestrel.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_display_kestrel.sqf new file mode 100644 index 0000000000..a2812d6ed3 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_display_kestrel.sqf @@ -0,0 +1,63 @@ +#include "script_component.hpp" + +#define __dsp (uiNamespace getVariable "cse_ab_RscKestrel4500") +#define __ctrlcse_ab_Kestrel4500 (__dsp displayCtrl 75000) +#define __ctrlTop (__dsp displayCtrl 75100) +#define __ctrlCenterBig (__dsp displayCtrl 75200) +#define __ctrlCenterLine1Left (__dsp displayCtrl 75300) +#define __ctrlCenterLine2Left (__dsp displayCtrl 75301) +#define __ctrlCenterLine3Left (__dsp displayCtrl 75302) +#define __ctrlCenterLine1Right (__dsp displayCtrl 75303) +#define __ctrlCenterLine2Right (__dsp displayCtrl 75304) +#define __ctrlCenterLine3Right (__dsp displayCtrl 75305) +#define __ctrlInfoLine1 (__dsp displayCtrl 75400) +#define __ctrlInfoLine2 (__dsp displayCtrl 75401) + +if (cse_ab_Kestrel4500_Overlay) exitWith { + cse_ab_Kestrel4500_Overlay = false; + 3 cutText ["", "PLAIN"]; + true +}; +if (underwater player) exitWith { true }; +if (!([player, "cse_ab_Kestrel4500"] call cse_fnc_hasItem_CC)) exitWith { true }; + +if (cse_ab_Kestrel4500 && dialog) then { + cse_ab_Kestrel4500 = false; + closeDialog 0; +}; + +[] spawn { + private ["_outputData"]; + + cse_ab_Kestrel4500_Overlay = true; + + while {cse_ab_Kestrel4500_Overlay && (("cse_ab_Kestrel4500" in (uniformItems player)) || ("cse_ab_Kestrel4500" in (vestItems player)))} do { + _outputData = call cse_ab_Kestrel4500_fnc_generate_output_data; + + 3 cutRsc ["cse_ab_RscKestrel4500", "PLAIN", 1, false]; + + __ctrlTop ctrlSetText (_outputData select 0); + __ctrlCenterBig ctrlSetText (_outputData select 1); + + __ctrlTop ctrlSetText (_outputData select 0); + __ctrlCenterBig ctrlSetText (_outputData select 1); + + __ctrlCenterLine1Left ctrlSetText (_outputData select 2); + __ctrlCenterLine2Left ctrlSetText (_outputData select 3); + __ctrlCenterLine3Left ctrlSetText (_outputData select 4); + + __ctrlCenterLine1Right ctrlSetText (_outputData select 5); + __ctrlCenterLine2Right ctrlSetText (_outputData select 6); + __ctrlCenterLine3Right ctrlSetText (_outputData select 7); + + __ctrlInfoLine1 ctrlSetText (_outputData select 8); + __ctrlInfoLine2 ctrlSetText (_outputData select 9); + + sleep 1; + }; + + cse_ab_Kestrel4500_Overlay = false; + 3 cutText ["", "PLAIN"]; +}; + +true diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_generate_output_data.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_generate_output_data.sqf new file mode 100644 index 0000000000..38627a7dfc --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_generate_output_data.sqf @@ -0,0 +1,203 @@ +#include "script_component.hpp" + +private ["_playerDir", "_textTop", "_textCenterBig", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_temperature", "_humidity", "_windSpeed", "_windDir", "_newWindSpeed", "_windSource", "_height"]; + +if (isNil "cse_AB_Altitude") then {AB_Altitude = 0}; +if (isNil "cse_AB_Temperature") then {AB_Temperature = 0}; + +call cse_ab_Kestrel4500_fnc_collect_data; + +_textTop = cse_ab_Kestrel4500_Menus select cse_ab_Kestrel4500_Menu; +_textCenterBig = ""; + +_textCenterLine1Left = ""; +_textCenterLine2Left = ""; +_textCenterLine3Left = ""; +_textCenterLine1Right = ""; +_textCenterLine2Right = ""; +_textCenterLine3Right = ""; + +_textInfoLine1 = ""; +_textInfoLine2 = ""; + +_windSpeed = vectorMagnitude wind; +_windDir = (wind select 0) atan2 (wind select 1); + +_temperature = 15; +_humidity = humidity; + +if (call cse_ab_Kestrel4500_fnc_hasAdvancedBallisticsEnabled) then { + _windSpeed = (eyePos player) call cse_ab_ballistics_fnc_calculate_wind_speed; + _temperature = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_temperature_at_height; + _humidity = ((getPosASL player) select 2) call cse_ab_ballistics_fnc_get_humidity_at_height; +}; + +_playerDir = getDir player; +_windSpeed = cos(_playerDir - _windDir) * _windSpeed; + +cse_ab_Kestrel4500_Direction = 4 * floor(_playerDir / 90); +if (_playerDir % 90 > 10) then { cse_ab_Kestrel4500_Direction = cse_ab_Kestrel4500_Direction + 1}; +if (_playerDir % 90 > 35) then { cse_ab_Kestrel4500_Direction = cse_ab_Kestrel4500_Direction + 1}; +if (_playerDir % 90 > 55) then { cse_ab_Kestrel4500_Direction = cse_ab_Kestrel4500_Direction + 1}; +if (_playerDir % 90 > 80) then { cse_ab_Kestrel4500_Direction = cse_ab_Kestrel4500_Direction + 1}; +cse_ab_Kestrel4500_Direction = cse_ab_Kestrel4500_Direction % 16; + +switch (cse_ab_Kestrel4500_Menu) do { + case 0: { // Direction + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = format["%1", format["%1 %2", cse_ab_Kestrel4500_Directions select cse_ab_Kestrel4500_Direction, round(_playerDir)]]; + } else { + _textCenterLine1Left = "Min"; + _textCenterLine2Left = "Avg"; + _textCenterLine3Left = "Max"; + _textCenterLine1Right = "N/A"; + _textCenterLine2Right = "N/A"; + _textCenterLine3Right = "N/A"; + }; + }; + case 1: { // Wind SPD + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(abs(_windSpeed) * 10) / 10); + } else { + _textCenterLine1Left = "Max"; + _textCenterLine2Left = "Avg"; + switch (cse_ab_Kestrel4500_MinAvgMaxMode) do { + case 0: { + _textCenterLine1Right = "--. -"; + _textCenterLine2Right = "--. -"; + _textInfoLine2 = "- average"; + }; + case 1: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 1) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 1) / (cse_ab_Kestrel4500_ENTRIES select 1) * 10) / 10); + _textInfoLine2 = "- stop"; + }; + case 2: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 1) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 1) / (cse_ab_Kestrel4500_ENTRIES select 1) * 10) / 10); + _textInfoLine2 = "- clear"; + }; + }; + }; + }; + case 2: { // CROSSWIND + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(abs(sin(cse_ab_Kestrel4500_RefHeading - _playerDir) * _windSpeed) * 10) / 10); + _textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * _windSpeed) * 10) / 10, round(_playerDir)]; + _textInfoLine2 = "- set heading"; + } else { + _textCenterLine1Left = "Max"; + _textCenterLine2Left = "Avg"; + switch (cse_ab_Kestrel4500_MinAvgMaxMode) do { + case 0: { + _textCenterLine1Right = "--. -"; + _textCenterLine2Right = "--. -"; + _textInfoLine2 = "- average"; + }; + case 1: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 2) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 2) / (cse_ab_Kestrel4500_ENTRIES select 2) * 10) / 10); + _textInfoLine2 = "- stop"; + }; + case 2: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 2) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 2) / (cse_ab_Kestrel4500_ENTRIES select 2) * 10) / 10); + _textInfoLine2 = "- clear"; + }; + }; + }; + }; + case 3: { // HEADWIND + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(abs(cos(cse_ab_Kestrel4500_RefHeading - _playerDir) * _windSpeed) * 10) / 10); + _textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * _windSpeed) * 10) / 10, round(_playerDir)]; + _textInfoLine2 = "- set heading"; + } else { + _textCenterLine1Left = "Max"; + _textCenterLine2Left = "Avg"; + switch (cse_ab_Kestrel4500_MinAvgMaxMode) do { + case 0: { + _textCenterLine1Right = "--. -"; + _textCenterLine2Right = "--. -"; + _textInfoLine2 = "- average"; + }; + case 1: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 3) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 3) / (cse_ab_Kestrel4500_ENTRIES select 3) * 10) / 10); + _textInfoLine2 = "- stop"; + }; + case 2: { + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MAX select 3) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 3) / (cse_ab_Kestrel4500_ENTRIES select 3) * 10) / 10); + _textInfoLine2 = "- clear"; + }; + }; + }; + }; + case 4: { // TEMP + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(_temperature * 10) / 10); + } else { + _textCenterLine1Left = "Min"; + _textCenterLine2Left = "Avg"; + _textCenterLine3Left = "Max"; + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MIN select 4) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 4) / (cse_ab_Kestrel4500_ENTRIES select 4) * 10) / 10); + _textCenterLine3Right = Str(round((cse_ab_Kestrel4500_MAX select 4) * 10) / 10); + }; + }; + case 5: { // HUMIDITY + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(_humidity * 100 * 10) / 10); + } else { + _textCenterLine1Left = "Min"; + _textCenterLine2Left = "Avg"; + _textCenterLine3Left = "Max"; + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MIN select 5) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 5) / (cse_ab_Kestrel4500_ENTRIES select 5) * 10) / 10); + _textCenterLine3Right = Str(round((cse_ab_Kestrel4500_MAX select 5) * 10) / 10); + }; + }; + case 6: { // BARO + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round((1013.25 * exp(-(AB_Altitude + ((getPosASL player) select 2)) / 7990) - 10 * overcast) * 10) / 10); + } else { + _textCenterLine1Left = "Min"; + _textCenterLine2Left = "Avg"; + _textCenterLine3Left = "Max"; + _textCenterLine1Right = Str(round((cse_ab_Kestrel4500_MIN select 6) * 10) / 10); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 6) / (cse_ab_Kestrel4500_ENTRIES select 6) * 10) / 10); + _textCenterLine3Right = Str(round((cse_ab_Kestrel4500_MAX select 6) * 10) / 10); + }; + }; + case 7: { // ALTITUDE + if (!cse_ab_Kestrel4500_MinAvgMax) then { + _textCenterBig = Str(round(AB_Altitude + ((getPosASL player) select 2))); + } else { + _textCenterLine1Left = "Min"; + _textCenterLine2Left = "Avg"; + _textCenterLine3Left = "Max"; + _textCenterLine1Right = Str(round(cse_ab_Kestrel4500_MIN select 7)); + _textCenterLine2Right = Str(round((cse_ab_Kestrel4500_TOTAL select 7) / (cse_ab_Kestrel4500_ENTRIES select 7))); + _textCenterLine3Right = Str(round(cse_ab_Kestrel4500_MAX select 7)); + }; + }; + case 8: { // User Screen 1 + _textCenterLine1Left = Str(round(_playerDir)); + _textCenterLine2Left = Str(round(AB_Altitude + ((getPosASL player) select 2))); + _textCenterLine3Left = Str(round(abs(_windSpeed) * 10) / 10); + _textCenterLine1Right = cse_ab_Kestrel4500_Directions select cse_ab_Kestrel4500_Direction; + _textCenterLine2Right = "m"; + _textCenterLine3Right = "m/s"; + }; + case 9: { // User Screen 2 + _textCenterLine1Left = Str(round(_temperature * 10) / 10); + _textCenterLine2Left = Str(round(_humidity * 100 * 10) / 10); + _textCenterLine3Left = Str(round((1013.25 * exp(-(AB_Altitude + ((getPosASL player) select 2)) / 7990) - 10 * overcast) * 10) / 10); + _textCenterLine1Right = "C"; + _textCenterLine2Right = "%"; + _textCenterLine3Right = "hPA"; + }; +}; + +[_textTop, _textCenterBig, _textCenterLine1Left, _textCenterLine2Left, _textCenterLine3Left, _textCenterLine1Right, _textCenterLine2Right, _textCenterLine3Right, _textInfoLine1, _textInfoLine2] diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_hasAdvancedBallisticsEnabled.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_hasAdvancedBallisticsEnabled.sqf new file mode 100644 index 0000000000..bff36a159c --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_hasAdvancedBallisticsEnabled.sqf @@ -0,0 +1 @@ +(["cse_AB_moduleAdvancedBallistics"] call cse_fnc_isModuleEnabled_f) \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_kestrel_mainLoop.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_kestrel_mainLoop.sqf new file mode 100644 index 0000000000..d5a141b6c7 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_kestrel_mainLoop.sqf @@ -0,0 +1,8 @@ +#include "script_component.hpp" + +while {dialog} do { + _null = _this spawn cse_ab_Kestrel4500_fnc_update_display; + sleep 1; +}; + +cse_ab_Kestrel4500 = false; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_update_display.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_update_display.sqf new file mode 100644 index 0000000000..4923db22d3 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/fn_update_display.sqf @@ -0,0 +1,19 @@ +#include "script_component.hpp" + +private ["_outputData"]; + +_outputData = call cse_ab_Kestrel4500_fnc_generate_output_data; + +ctrlSetText [74100, _outputData select 0]; +ctrlSetText [74200, _outputData select 1]; + +ctrlSetText [74300, _outputData select 2]; +ctrlSetText [74301, _outputData select 3]; +ctrlSetText [74302, _outputData select 4]; + +ctrlSetText [74303, _outputData select 5]; +ctrlSetText [74304, _outputData select 6]; +ctrlSetText [74305, _outputData select 7]; + +ctrlSetText [74400, _outputData select 8]; +ctrlSetText [74401, _outputData select 9]; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/script_component.hpp b/TO_MERGE/cse/sys_ballistics/kestrel4500/functions/script_component.hpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/init.sqf b/TO_MERGE/cse/sys_ballistics/kestrel4500/init.sqf new file mode 100644 index 0000000000..bda593a908 --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/init.sqf @@ -0,0 +1,19 @@ +private ["_temperature", "_barometricPressure", "_altitude"]; + +cse_ab_Kestrel4500_Menus = ["Direction", "Wind SPD m/s", "CROSSWIND m/s", "HEADWIND m/s", "TEMP °C", "HUMIDITY %", "BARO hPA", "ALTITUDE m", "User Screen 1", "User Screen 2"]; + +cse_ab_Kestrel4500_TOTAL = [0, 0, 0, 0, 0, 0, 0, 0]; +cse_ab_Kestrel4500_ENTRIES = [0, 0, 0, 0, 0, 0, 0, 0]; + +cse_ab_Kestrel4500_MinAvgMax = false; +cse_ab_Kestrel4500_MinAvgMaxMode = 0; + +cse_ab_Kestrel4500_Menu = 1; +cse_ab_Kestrel4500_Directions = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"]; +cse_ab_Kestrel4500_Direction = 0; + +cse_ab_Kestrel4500_RefHeading = 0; + +cse_ab_Kestrel4500 = false; +cse_ab_Kestrel4500_Overlay = false; +cse_ab_Kestrel4500_OverlayStart = diag_tickTime; diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/license.txt b/TO_MERGE/cse/sys_ballistics/kestrel4500/license.txt new file mode 100644 index 0000000000..eb925e129b --- /dev/null +++ b/TO_MERGE/cse/sys_ballistics/kestrel4500/license.txt @@ -0,0 +1,19 @@ +Copyright (c) <2014> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_bottom_button_click.wav b/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_bottom_button_click.wav new file mode 100644 index 0000000000000000000000000000000000000000..1f5a2ddeb127a0ced9c29e8b33edc068cabc0234 GIT binary patch literal 27188 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_exit_button_click.wav b/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_exit_button_click.wav new file mode 100644 index 0000000000000000000000000000000000000000..1f5a2ddeb127a0ced9c29e8b33edc068cabc0234 GIT binary patch literal 27188 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 C1CJ^I literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_right_button_click.wav b/TO_MERGE/cse/sys_ballistics/kestrel4500/sound/kestrel_right_button_click.wav new file mode 100644 index 0000000000000000000000000000000000000000..14ff2e06895fa5dd98fb7c74fb758ec31cb8f1fd GIT binary patch literal 24560 zcmXw>2i(@v`^UfE`+4eV?xDlu(LFR4PK+ zQ#2bCTrrUZ)*-!R6OBtd=B6n&gr@ zCh%orE-6l`B}31>_S`8vvmvYx%fkx(t`9{?QBpanl$0dplWk#h_%kdEE5nkoHf#tx z!glVbNm=gg2|L5?us3W98!4MY1+G;{Dki(QzLYYX@@H5acJYpN?d1PWVQcWcETl<| zq-s)zRyOnYdhV2RXD`LNeh&-64`F7Q6XsH8QO^?ku$(@uqrM$s4c}~aEB)Kfd!=04 z$=@y1v?}}+R`c{S#)7*8n<*rzM5&w9OX?)GDRt>_ z*(6UtE6~ewP$cD7`S?^to({B@MOswmp5t?zf5nk(3T2>Son)V+3iOcD8)^S<$_|QS zbS6sq-)rj`(~{WRWsGPGzgE*L>kgq#QlENi@^n$Mg|YrZSp-ej(b5KDG=4&tSt>vA)yt9Ws?}t%*J_uh?%NKmU z?|a^z%G*;Z3n60j zcsaZs-k|Pru@4hy!~V?R$tjed!jF_$^ztkE^-1i-6x#oVnkO=*kHcv0eMy@u;Ja;+ z*B3Jjj_NBuzd(^$)G|5N^#gQU#@#>Z>o3&uLtGVk=5r$)u!yn(>i*6<(l=vL`=$w7SDbGK*GD>;U8L~>Me zLUJsBk4;YD+tB2qApPED?Wcpaw^vbBnML0q10v_-aREb zE$Pp*N59)G}#J+xybjs?fl3H|I)Q{rIJqLZilo*o$ViV! zj^~-ajJiAZ9mbuLc;d?BvgA0PJC1j|(NYJf-;;7Q;33iKi==c z7<$H*Po*CF*8wW;m;5Id$LX~bX!V@rJm%^QuJnWs2Qk{FP_zZl)sJIn&XpGMNf+8` z4aKU%CDqYI`%vV9PO;|B-0jMfZFsgBrFrDF_S{!G|A*P?Ksk!O$tC;KLKP%+fwuMG z*9vhyx>83Udfu9PT2hmIeK;+2hd$jIRU1ayh++?_GykpWS4Sw*o;yu=TG?Nd>()nrJiQC~ zx(yk*8u|7+az&}~D{FosYjh`fw?_?O9ZQh{O1H1$x>gpiLq@6(lp8;>##i#&x_(A$ zD)-b4&dz=mHRKBFSQmB1Hl(={{cqY^$koM2wWU10BUEN&1-+L;KkeYoO3LD>Wj7+{ z|A<$Xa&0vdW*P7QO3Ob*eZ7aV)P$!Kw9oI1!~QPhi5xVvU&_M;)L{SYeL$}`!nurL zHltWg{pzP5kczW->Sz91kL|93sw?8ims8^}T>p(aP4>Q zi9r60SYSJP>QDNuo|uTV^!fSp+qTq%*1mvuzC?0=gzWty%5Nz;4QV}rU!QU93+nzc z&d?`F=uvz=Ky!RdnM6@XtfBnzPur`RF~{%@QvVam%=oVTc9wr-tZU$oO;BW2)M5+h z@$X?C6r0LtBC|J*o_-Z|*J4Jpkh|8miZ`}1FXD_vT%ArY$A(Yo$%oMUE1p~iZpgt| zf${yt2-i~EL^RJE^!LNq>oGh(j!{jfE%nRKv|G@8Qt(r*%%PTL@X$2soXAt(F|I#& zc0S|yiCctUjNBh3i?jkz8qep zUt@TCRj7>&XoU6not=VtOJ!FXpPa!1;g~ z6R9u_p8A$~n$6h!%%NYi>CsP6&{1GPmSX0>->I&@d`B0o&0=ILCS2B*yCnYB>46uuIN z`o8k50uoZ}yowPNu!RV1G51}!>ya{hcxx5C{f%FnLJj1+GO01rxi-B@Kp2%k6Dc^f zIx?{ya$OnfziJ>;QAu@VQd{Kofym=_=p5yJ5A<4R<|QHrvnxb-j9^AG)$V*Tf+M(8R}6-*ITZ6ZzGTUYv#Y8$vC%)t`HZP!5e+r5kT_ zjXJtBf9*+E08vlXt%2yApUT#r3+7qTE?ZJ?b*` z!gh+bQNg<0io^)?LmNs|JeM^n3Ra@5f?o@I$+y+sYq_HgDvtVnH{;yKwNyzP_GvT{FJl7C@C#WUXX_lfYWO{sTuf=I{P| z>cf@wc}E)|q4mZQ&$Wj0_JQk)phuqemO|%wNSSZp3vHg2{N4?nN+T6TK)aC(HK-$( z%=kx6OYiEDPpxAQ_H;RTaVxS#X|gKnKJkuLcv9nPttS##M>cP?I^U3s7UX#bP58vkLG3f9Y(Nr&m=aKJshr7aU;TFCP z3+IO6;hOMlc!vAleICjGJnyJ2-isRdg)lNaid6q7)-#T4@1rT6Kx@2>^ewdUIQK_{ zJENWWCU>mkC3MZx;j!=tPZuoJ4|(HF-v1bF^Aat*i|%T4GDRNk6mB#W?ys%E2i)<}i=6 zaLua^y^@a}ioiVTy;%>AEKcN|FX)pvO&u?V>0l3mz+d zKJ}4s-H_a3`7W#>ZHcn*cWwAp+pPgytevY4QvQh@#a$Djns`8Yr#x8%e~IJfK?C`& z3cM=5cTKfmEjMD7lw}Ny7@t_j_uqoHQeK^335o1l6x(Pc$d}D|M~k>F?dyM2PR`+N zdD^uiHY(4EmT_e{R9?zx=ktVCLou{bSK4cl?<~r<%#^;A#`LB>tF@T^=%KT(Vtp}@ zbGMHA3-+k1yFUGIjn?eRDn2;s7N4&|kGjyeGmtp;u|4;+{ne%FUhUzgP*A(98d9q+ zeQkh@(6(wrO3QYs>w@=!^dCVbQTRfB7_=#Mm$c84N852mO)k49o%K)D*b`E0cH zjmdS%LtugHlWWl0gQ6WPo^W)1DC+PY&}0yIFTmcuDY+J`aB(t>cZVex^8GyI@EQDn zF6iUdb@3h+j4nw3oV?>UF~GsA3zJ2@xFeI2a*xVGs$y2b5n9xayM^Xi#>li zpDU?R3~?OKA4fYEaOWCoIiFcLjb8PFPA#BBZ?wS4aC0~Ma5|`FMDk_wP4a&77A*|N zLohI6iUHJg5m&C_+WFKbCK7*KLRW-iN^@mq3>js9(O!;L9fT_C&7ON7stJgMv@yDCV_I zBhlL3P+|x)t;@T$dDgM|dkC}D96r(~>YUbu+r(mB=u;DDA%E$YIS##(q9; z^=CY%QSX(M8!2})&KHuA$*4 z=-!i{kN%m9c=~wC;gs%_Gbv|KdO;7boXn`t;M!n5-j|oopq;ZQ$HmegU49f?a~mA^ z2z?*Mh}y9lnlQGu(5N5Cw*{>pNR7RqMjdRL4e)s>G;Ki}ouO=Vs8NqL&Vr9_jr`ID zs_3KBC)9w^iOKa_i#-pgrbf(w*iVdMzw}l~1LdD{c^(+H6Z0rOn2qey&T}@p^R}|n zXZ3j)3#i9+eTB*`k--4QJP^7LqMXF{K8!-IQ!mCTUY7q(q?}8+E4hQ2x{{e4M4$8( zHKtX2*_mDxd||Gohm!}P(4DNS;n82EO=Aq98T`+Sl6m+TQvpW`ISW43C2%&JX>=v7t{m zBAgk{2xo^O;rMV|I3#ooC-DEdVJKxtI5C_W+J&~^@X$T<4!uH$aA-It9L+oDp!FX` zi@y?X3^()qS-gKb8vjoE^)cG{|H2L7dg?kkTp2El{SYIoF@HgeiA7%LT|MTXarYSz zjY!~8%4OjS-o2JuZ{`2%!hO);B@l*qPHZrV(Y%9pyN3FYXADEbMd4~%IWr6n11MKf z#3Q#*LqG1@-@8FO`bIvbOalo>kFTKY=g{_9P|tAQxsRgnL<}bVo}-N9Gk{j4mDkku zd1U>+_O+I)_W3w4&t%HSygz|@KLLrn1wInfi2v2uYrzWoIHod=itunl)?30%Zf5qi zMwWmz>cV64S;`%)@EqUNg<@>uGe)J>Q`1h0zBAWmQ;Po5fykSItognaeVNUo_pv3l z)k$nytI3FvZK&(yIc=*Fu#lFbGGAGwP8y2r*PpDfSD0j%>oQFkiS4q#EA(!xV&$iLR!mfzJ|4<_ zW!dFuu7i;*u7B6Ce&u@5<4@XM1}+jSimSET{m45TpE^#gYaC=a+W8WmQyQyNm1)B$ z>R@9PN?Yl!9jJuVcOZ5fLK%w0Rv*X*hcH*7i_56-VCpdDr~TA|`?n!)pFq>dTLoR; z4@rL>D54wBWytu-%(pVUADnj`QhXry2P3nG@@){cwWJr7&`@pQkjuED+!mX)gg35C zUP)dCOFhKA^joXm##;-Hx=t#I%nx6#i#3S;a zF&g!=`c8bR{=S129Glq1f7%1avc!JpaNoYDo7L6Eh9@EU^zUh1>fh6j6yJZ&D%3Zp zjiP?36VXe}sAuMb)Q$OR5$O{(j$V!aG=Xy3wptSUl=bf!FVK&%IIg8UG2q&X{!H~! z2^zOKr2$3Et1nHv-MQ6|K904aH%0%P{$nwVzot;{SlWJ%Rz~x`e%DvfNXAOP6kpyje4&3iL%+H(4o<##>Hr8THbv-h)4)bL! z+PQZ{>6H*0tcc!(<;cm+Jiic4H6_YkeVKp7yZXbHMckktL)&cw_sm~V{xxNWjr9G* z%w8HUN4xhzhu#d0NAvzBdOa`FWGwVt$owrsUg&N5m0v~~^eIR~_3-7CD=7MfKSA!? zM(Ig?w^Ed+`UBqM?>oFFmKn`Q@5Oj%tc`4+^*3neUk^%nntJpNs1wwYFEYyyqM2W% z24lk&kpp7RY7~8P)~wE!C**tWFZH*$N1vZ{yvcoI4dba-Pnq&_A#^lm@)+&iMqgbA z#)b7c>XkAlLYrEDk+bzKH9kY{^gyT&#jvg?{nGNF@%lnEe^SIwH--Pwuh-$qS#Y_& z>iH3$>AQG}v5MiQv*upl`^VI&E^vP3M|t#9D5Z>E#e9k|hEP7DXvd0o#S+E?v~lYr z8Qz6kM^c;kNgZZ{KpN^Fn9m&EK{z)T7aa6o_~H8a zxtiWQ2i<;!k9Se?B6|Bpq^Pt|Psy9cP_)~(@|3>us?bJXy?&eT80jzcLmt<5xC;5* z2l;9)iar$mYx1}@dvDOSYslD!e06uYhw&^1&z39tL=r}#)8jBqMiVX(6T-Y#BY4wHLvY_1@d2e zQ9rG*L;YtDQLX|_o&<6o3@RQ?smZJy0Qab`^=G+GW-z~%>9w|+@=?66_n`?IL3Cw& z<5iw@?L3N%dmIj%MnC66OXGL0iy8F%CDy-AkMyqPe>AO0N z_isS^yqkQOyoPPApI4phT&i2ujW?hLpT~;55e;=F+POP(s?X#Qq^7u1Z@)QD#z0=D zsLS;GE9pkyd03OIO5UVsQ|oIomq&ZuG25SieH6}ESK2ghK%ICbm`vO4agfCK$#=<9 z6!nlfT=Jv+_kZ&ahEk4Zrp+1AKD&}WXnUKxApVpmi)qjNG4+n}M*3+_t3!=3tFc7t z=8g=9_7_vmgPWcpf-^Ol7V(TZTgF$+n&^mFdpUj#RSSw{rCFZuAtrp z$^2wo6 ze=<_+Q{Jk`$PR!b)UoCvxGv0XGJmWQ^jD8;fK$$4Tu;IQm$4GepmENg!;ACG?r)izh=n9pOJ%$y_bRBb11 zBiFz5*ViYlPhpnzZR(R&R*Q?JzrMMBk(sX}v(KWu!TL7uK)hsTn!f-2>6QA$d`0b4 zZC~RGy`t@O8td#bc>XN7_FBepI`uV(xbr$zpK??l5H}4DgP7CnkREp-U!Fpq>d${Z zG=S^x$KP}ZG|``DeDHRD=`+%n)Q1JUd*B z%`O()4iD*rmmcOSHip__OZ@}ZtNvEznIE_ftfHO}i!=_6@Inls_CMlU($>(nGxtHe zO}<`<-czosDIY@8o`7UOEOZL{h5hkqbdA1(^TK)1@v4XkAA+vR{-d$?^+7z2#(s|Z zQ7^neQC^rwsV~Bq`4xC8l-*jOB0{q*)Zvw&li1DtlLMjM*Vqr$(;Dge@KN?bc11QkyC%CTyFYs%dop_} zyDYmjdoKT6z6a&k{DS<-{EGZg%H{bh^8NCC^PBf>-Menjx;-!NePQqUr5BZ+QaYgY z)Y3tvmy}*m+Q0Pp(nm`lDP2{%vhb?W1013|0;WQ$+0D!%N|X;!9jnPo+* zimodjj%q4fW@OQmMVBB?hGyqx%A@0p1{9rKd`j`&;@!pPl$>8Osr;AazbHSkd@1AV zTGFGWR&n*>BhsVNv$Mh3u>7$64e5>P=Vd=DyOFXYU6l?my{vTO?rpm_>|V8d@}6mX zw(Q-s_ovdCrPKD#+&f@*zuo)oYP_q(u1342?)+irH#^7g+_}4S_bJ&4*=^|^X~$g0 z+{akKX}&mr@!p|(vwTtZc=}MfGPgE29bLFC|5yIF{DAx!`GN8OtFx=KE@|g$Oxt+P6i{=z{E$UX(Dc2$QMLK~y$EAbO<>mt(mUc=X&OMwfS5&U(=G@J> zLFrlC8-xtKG&u%(>`3?W#@KWc7QDFvSA&oBIqJI@PdO94>b$(4eUzP<4azEp3PE4; zD0~N<(Xd9Wj>m`DE*!|6a^dN0WHutZJ$o&CH>(uNhMVv*Ru479snDuL)((FEU$#Em znw^Np@JFOhbtJ)xh`d&Y9%#)S$(CeTdLg|$E4?DUJbgHQB<+#*OfR56e`mY0^YZ89 zmy|9ky)l0?oW3W&3y!}je?z`a{vf#QnS5K?7?+LB4hijP`8ITEv*g&cf7&*8VD7@) zuw4J#fLzmDlU$cvXQ=X6Zei}X+}zy!+*i4Yxt>Kmi~1BFQ9Pmei{hUA|KFk;igHC| zi@wiI&DGD<%k@h8ru(L~(yQT}jp^F7Pp)rnWx6c=Pr85lTJmc26PJ^&#Z?p0r=3EVFeCduo65bvvrSp6&?a=|+8ywedjg6;I#YS}HTv)=vtS%uAF1(? zr->duN-V@P-pBZ^(X=_X`Z%D_axi# z1b#-W@@_QdlW_JlwBxhPScPP7wm0iYxrovQJfRP@Dr35sm_#$mh5T6*Dc9OZ|SAj0|QoDme+v+C9 zZcIWh_N} zXgolFNjqfAA>m;9ehDl4LuO|o_$G(vZ=Z-u#MNCug~mh0WA1ejyP5A`OwN3@xA3*T zh|IW&Su(yTW*2iTqx?Y8pLi@7Oa2yfY5#Si_G7RsjK>?_6I+PWA0y^(GsotnSBq=j*t_`GJw;|jAIatG8nf?8|Ak!`U$24Z0uC2xz3e>hR9e3ZqH(5C)YaqBJc zirGT8?fmS>c0`$WJXA0@Xgrd}2-{#Vy8df(%08e>!+w7N+&O|s>^&576Wp~hi1AHK z#wAOWPalIy?G1z8P_<9&!(y%`X_hofo2E^urEXd; zJp`O`E#)c7`RUNKMcSNe9n#amCHGQZV5Q!l-p7>==^NC42XgmS`2Hh$Jc0E$0*P^1 zj51uoDtm%EZ$zDSI-2h~%9Hpo#v)fHuv#C%J7A83`y=#oJd0)fYw}A{Bdv~B?w5*l z=AuR4r}i1F?~&-uvq3NBIQWin9Ah2tpj)p*j~HJ&1hju6beft>hOS@Z*LjB?DaGz) z2EI?qgXrrq(w)g3ERx@o)o7kc^ko*5Y6J~Bq=%-Z$zI<4D(Y|LgnkEg)5VNr3>t9* z@9a(TeD)AYc?oZeKCmXN`x_aNqq+|YTtQD-Be^QaT*R{Q;Tc%aw?p~U;cX-5m-Eyc zNDb|kz35(TZ{rlhkRDvb9l{cVlgyjIF7> zZHPTuJ=EfE%F5jjWYvu|+$`+Mwq@IqAVnd|YOtQ0qCFaNrxWGWa7ySwNqA> z?pc;CjxtFZR1^JI5-On!XQLg~Bd0pjVvi`@8_-^DN?D%RjQ-yYW?jwd&C!EClvb?WF9ASZY)@3gmk`e@A6ikTUA^ODRV)zB))Z*S}A<3kM+&y3)=;^l=~~JPwW5 zir?+&ePf=iOWoz;J3ebnp(A+(jYE^zC!ZO>JKFdc;Uzd3nK}gdc_(sOf2ne71;x1^ zgMQLyJsK(J#~6>XG55&ne>F#88gn&|XN@`OQ&6XfE7TFoGzir|LQ^I&c5hJbDYgr()ZnpHK0$+J(|YN z`ydZ{^LA&7xkAP^&qi{&Pi+T{I93REalhm7~KXX?uEaM1G_uGc!GQK zz5>_j2f7tH{g=P`spm7I6?iS?@J&CuxzmLmt|F;9)c6}?n*_Cf zj6~mv`96GK3j_3;PmrO|()N48d?|J8M;-^|!)D~kC6$AB=5L7P2j-nqVM z_uM^-wipX;6Q4~&=6z0i9Q~nRQ@`9N;P)Bmfcueu=46^WJVO}>NBbLGs z3&1-mtGWg)G>pDX^N!q$TO;<}T>Bh@R`f}@BSfk3Cv(LR-wPpSpR1f_rjRpU|z%N=sfd`%-_ER zsW}2^dOz~^aWLO4$jiHkVZVge`;+9;WL`2S>V;dla}Rf}M>gM2G3U=rKlQ;#^vx*f z^D9p)=O0Hm-OAiN1=csVelGo#SKTXTPNeyhmV-e4?xS!8>7zAgR$r>V)kaXIF0-T! zTpengf7ghSR^gZSg#J|X#v8=Z9}u5$mzVy+lxzvJ0yZO4U6;;PA%j}zk$&Xg38Bo&%CzBz#VU*XWVmPZrk;g7bp+%>|m~% zyI{=C97lEP4U|(T=Ej(RcM-*SzIK*-SLM_W&_Es@0o|{M#$sM|x&O2WhQbfGqKA!R z^rIKUn6cY=?*E|qN6E)z7Z`7Olm0$PYd6L|-Apad)2|nq88acwtZRa-sSm~6mC}nb z_hJMG()NDP+Iwb>>H|0a=DtMp+T15AW>u!x7k#OEd&LH~&m)`?Bri*N)zHs{72lg_RFapkCafnovux<29lS$CWiB9JwarS1h^2hXJuLu*qQ zKih&dawmtm*6y-2N8(+I`=ZQ`aqpwPZgaqtZF}KY;}m(Mw(`k69_CmmgN--3KW#a` z-2XHW*)SVvIUX&cOy17hf1?$&Mf8b^BdmKKT>KrszeVPm)9t<^_djauDr4>8X5^at zt=!k=d+G&kdgH>LKVYt@aW&&P?um8hu(-*1rt@0ZBfputckyl=q)@`D$yhh$wiglW z+Q7IfL$lVgUS+1SwjI#T9TxJrwubznOgW6!+=pz;*FDwx`3t$9?jG5KkD?59nmfLg zxJ(n~_b8rfOm5jaD773}*C4jFFY7sDZMyr>J!&_B%FYFi-H&yy)*6moIfDOR024{a znasnpXtFEu9GuN_Ct??Bfu7A<#?W6yLcfV77>|ZC4q&|OGqjZ0Y!&UAo9ccqbMybr z)7S;AmoZ;P77BZUTSWha@daZ$=H9fSn75)o$(gRjXx%-Gx0|uIK}J=Dp4+H>6Y{Js zJlrA5<+eQI-l)3p)-LQK_aB%$V%JS_`*7d1SfBBhm(kN>poJ~EKgam7neFb!63e(}!TcfRLR;wL zE@}53>=$KxEu?#Wxaoi>d)(Wge^xo9tT(^FJ%y|J=udEsY@$!Dx?QZh9r5m_*iZL* znWwMbcNdtube;E7IK8kdzFlnF^-5}QCfBR-%e}|$aZsO|_b6sFU#mRy3yjAY zwR&8AK97~^e$bI1%TeHfnXE(OD!!wC(0G!(uMf(c2>0aLFLSOu??KsOfA#s8v*%tP z_dM>7?QemqdPe5Qo*4hK{b@Y&9z5;dnfq7?w}a>O0-398h<(*5&apDucx+$fl-d05x%Yi@QN=0R!R9B( zhvjHX^kxpHnXL`r8~4=@M31YI4tI}&zAR(R zz0rr_uR+|snqr)~5uCCQ?G*O1lqD}?L*y~z$L@Li6N>GI4wV>38RVz&LVZT&?C8rf zZ^n60YJ28NZTg#sUkm4}Y-2_fR$3)S-<;96=Z)f+CnAP4*Qg<~)$=T*doj;ei#3RV zYeo4{Or87j%@Z8#r#U40wB7S?G^6ScMs(CImQ`cf_TBw`>VN(8o>g!dr6(<&49)ew?avxEi$h#%?vCfF zm@n)8*VfeBfSx*URe7osBXS*@r{X?ecjKDJX0EHg%B@h_oD2VXMuGfO16nIL3V8rc z`BeiwpGW@IpnhdbYpBqKm6t@_qP{7d2xJ_2XQcUVo>!Wz;jcb$_vGmpus6mh-A`o< z!5lBwqPxNL0XSFg=W|V)pQ#VYIn%dlK8Co~fA-PyVw9cws@-?!o}d8~_v9K!Rrje| zlR&Zt;k{&jDw^XKi<9|&V#rU29gSa4|&Hm4xCIY2`jXwYWJ_&ZQB3 z?c1e{P>eQ~n#47p5#`=Qb12QpSD#IZvp9__v*IkM)69+4Um-qlu9X|+Im)N%Q|V|< zfwOL&tLHToc0R91r6+>w&=qK+|cWImdHVD}oBum0~`YrnfM)BOnY z%tUBmw)uAy^Wi-M%QY)+Tc_uG$oKjyTyN?TGfnkgh_lT%lZQR`!95N7#Pzkmhz_&v z$;_>|*}S#)=!<(mzUBHvuG>%Zam{Ct4~-YNv-$&`{g}UR(0k)m&R@YdF`GV5WG2lo zeVclwGTu2*{>H}xOb^HT8atFCIl5bt}>KN@>@x|iE zar%um# z3e5#G|J&0A+%w_+74faO!1#fYFJlb)YK&)i&HY*KKXd1w`=s;T^;0RH61(w0|%?J}T-l&lBp+=NRhl6tB4d%@~>I zG$}{iCoaY?ALe*ag}H(D)m)oa^vXSgVp{#_`j+%JX(wopsvEjdv{&78VC>M`0sSE@ zkxgA0TL)@tz_aF%tB=f;mA(f-OZBYwuRa~~4D}U>UGyiYv$fCN8*vO2QU6JI&qmT` zsGc-0OPT1tcx^;;ecI5s1Nh~hKWXURGyN6jih3TzsZjU=sH$E+39IpVK9^G5@1cLf z9;?s-wBm?P}|fAxTS z>P7nQ3GnQhQY5{0Sp_Jgcfve1b#wvkuZN>o@x~^e@}$5@jN2VLO`^?HI2Y!7IA3k( zIYjeVJ8DNI>>^g++_+|3XZrAzweB;vU3I>AwL9a{SEH>fKbZF_+7K-{!}<>Ny@}hz zd1jT0kCn%kjGn2h%2A*GJok|AWTfV$sZW$I=0d5XlupX2l$Dt02{Dj%q2~*F9>WsG z>iIhxxbCTQQclFBEiL9O>=iOUeLF3$q!(GV+4WtxSHXI;Nt8DqAVob#ZaH`KAu7%F zS?f>rOo+m+@7?rLD?uN@9_Z}Og$=y1hQ3I#CG@~vZehke>&V_Op=S&EEQQLR-%`+@ z+CEB8_k(&aj`pH?0G_kt$xiA`<8tzZvdbI@{prS9)GMBoAVMjEGPX3EdcQ#4drpA5 z$@ldYs}DT)$FuP~C(!+R@5QU5ki(Ptd=oXuD71~=^&L-u4(8mOS!(9HXA!-I5823o zZ&;t_;b(BJ@lSm<~mldsjsxZC?h???*Q~f zLI0UWTol)<7|z^y-_akV&rhuEUJp^Rel`1GT&94->QP%k#;OyHsk-OQ{1oj0{k-Y` zZCr7`_X-lCdi-vFr1_lMf7;3FNTrANlNN|_&)pu&8J}?|<2dF`cp{0i!86H}IZArv zkiHZ3wR*D`QuyDqeAEZ}UyXMd_walKZDM`Eo*Aef(ifu)S6^v+x@+$Qq`f-Vdj+3$ zb;hPIrx~>z!r$i5vR%{%+J@3bA3_oGtumuf^0>3fQ$#DH-w&e2PPFbmaQ**nkf!cI zEo2L{hNd-{ac6&boCj?&_bgYS)|#}eZ%X~BKJ#2UPs`ArtHf39U}G!lYUQ&2XLY0d z6b_}>KhGbMKKjYjk7`2wn8uYoMbJ zjK`Skt^QNbi%mQmQrp-a4(367ri3SM=xINdT8xLAS8IIWWUe@0`k_7BRkY?F0rjKj z--s*35Irg40dbo8NDsSv2gNDcm-fN475v}aB+r{NR-sS8J{x<`572-yo1@=?dJcdx zwP;CPps(FIGJivU)owLz=6v;`E%#k^<9Byzl#BE+c)n#%=zJvqyBA*Ft`|lv?fwt3 zn7GXL#ctvv^Q6Qsdgk3TC2yH0FLr7exlbN!NROPQwossOo`!onJug8NB;NFY_c4g$ zdeMFlu65>b;dIJFc;A)LirO2|lX~!1b^h00tVVnL)3a9muN(Sc5kx$WS+G#27R#Br_a^7GC#^Q1?9=Yc@TA&O%Z2RRz(HIR|hVX_BEmg z)bAng(T||7SN*1qsgGVB@KiDX*9WIHt-qoM?NsN!aTWExHiKASf1azwxR+P-WV)|c zZ1rcH?(D!AXk2&C;Ij_^LqjE#=YHou_{pCIwb58?yW$(=`o%g z<*H{ddCruWN?S*ntW~XDrT<)vqP64xJkOT#tToR!)}FFG{SVqS_R=%0v|Fr4onOFy zo}TDAy2d>Ij=F0Cdh2U+uIIc>LR-4ST752N(mpkIF9y;7U|jiMo8Q%~%y7ST;p{(S zwTq%mosL}nfjSFk%zX->S{E}X}wFUCD~ zp2%blq}V_|#n=3=7svCR+==JufJ*cEv}T^a5?(oH-iY>@IKsU~+I7aB3R-(MWB!WK z+Q+%fs%J4TN2h+zh<}G}tD*fy>RLf7?#}pTCV`g>y>(;GXAuFQMLF`KHfoQXGT*aSxCE(7z~eXeAhv(&`t3>c0{@8%Hp*pw3BI z<>qO~yLx?$G`&8Jp{@?v5#I@pONIo#)yn`iJ**e7tUobq4pvqkD8$xqgQ8Cj(#!`Ty3A{~J+ralecW|$3PBN1WnTaH&3`K+@sR*giM3XdY&^*#Sz0GeWrMZX@LMb8h zJj*7A;e#odHGr6Z{a7oZT=oZuoP7Nvsm4imXX+h1PLC`j6Mr#{f7@QNF zA9M*C2d4+sX&F3yJU$km98}`&ia|Qg3{DDidFJ$>Wl*2jxjfaJZ_R>E!FfSDo^Ky? z49=kE3PDxcN%T^OJDTun5nM{^8T6p9DnT}VXYgK^-_N17q}2hQhQQN4=#cc>lxyXJ zyx?SdX&p3WgbR4OD=>Br+AvB@o~{9GwSsy;SB}vtF^A4U-{5j)dI|S-=gCupQ~2#< z?ykulWr3;|_npF%b%NRnY>rxoJ4*zmxubND#T+w0-|@I0&X14B6}i7QPge-a2l;V2 zF30aR81uZ~Y-ZjvC>4|hH|e-+P$sCxePy|_JKh)Xjd#W=daJ@{j<}a=8{)NG-5alo zm&fbk&0N_P?~e~MPJS|4ijm9E4)V+X_()vDb;p+mr!dP>%w=c1EnYznSwR$+1mbF3 zKN_Fl%1ZiNlk|TiJ{0GGyQ=)=Tq^<9(KrJ3l3=-B5YzL)_%MBBK?!M*$^29FSp2^X z{WeYLSRp9lUg?#^v!!{}qMb@BN1uCu^9W5G90vyBJ{}kHe|MY#o^p9=bG$uX9WRUj zivNih$A84Dz`|i>SAu8C0OJv!*aj}vaeZ^V1q`j`X?xzs-M`0E~iaU2JXe;i62VDyFYFYye|xW9N*@pA>#B-WSJ*;M>ypiuK zlTn4;EAzNlXw??SnfKIqa{LqT!myMcSMb_J4;z@(TJCh5#mP+mPH-z6zsK{L&kAPr z58tN7U&r4j|7X+t{CHL(HOGKx8RO07mw$mL0GswJ5B=kUR6?ztY@! zGQZhxh(u=djQXVzo~f4TsT{r+081KZj)KLlKz@LE?M$?Yu*iD>@9L~vq_%)@j?jZT zDWaVWe3|g|8t}LV-cY7?B|U7XuOo38=5mbtw?L=)P-RL&%b(z>xk$kR;9btxg}m~S znpC1WjsS}|QIp9N%H}d~F0D85o?=F7urmMCWL422;-eJs)#P(aG|p*Q6YWMNbXIwO zDa+@Y%(-D=85&?68ghpkTZ`ehR%qeo=!d*+AiA8 zgp2mVwTr-vT4p^|UkSG6K-ERissOAPfsYl)?=fsQCZxXL#xfz`ryPqviYtBsSMuF zW!C3oU+XfnDm3xbm{(UY(hKW+9(Pm*Cg-X?6U+UusF(4678uq>rhze+(X{;47|9vr zB29ac#R#6Pn^34W)HxlL`Us_<-PB4;u9Da(8+;cv91x5j*`!fzq7%;i&6=2V})>qGamfctXzqiq7i zad=gm&COwu)c);JP(X_()0w;l`5GrW7 z|AiNJCc2|AuFc&|z-Mh*45fA=n@iw>)x2-u&W(xA+z2)fFprZNwG_ArpiwS-sLe07 zK6)S7z;%>s1zTvhtkHdaV*9t7**=AFED0rM{U$^z5!nppF*yssAd z2hLvx*X#L2%v~LF2>fVw|3Lfxg*5!l{8#Zl6Ron2&(3%k?{m2_1Kqrd85{tsJHXWv z?%Pe<&lUCCais4MuMFlO@5Xi>3R%-Cu1!W2PD_F|} z&%2oE@wh2`Q;lcU*UGB0dm2x*hGwDXVWwce`K^m5U7W!=Zo@yy& z!Fkq4l1`%4f@0Nqm)3e6dZ*&%*#Gdd6AWwvrv2bxEqMF`TezI2U!~36!7pieNISPN z(KSaBt8kd_)4=^|D7YF5=$me2=K2a->2ovqnVIOZg-~P>m_7sscJN93E=u(LpNzJM zUsv-jVD{O-zJXrEQ8utv0_O6xlFU)gk$aVF{h(#ce;)mB;oj<8tp%0}xPAhBs&Do& z)^_+m2h1q1nc(Lbzll5VQcp`uy$b!XDqzXcvS}fAD+$Hg_XK(?m(eTm{Rp$v8(YdJ zF?bLw_b1-QSKwkgJ*@+xnapY-I644E_o4NUL*?!G7{7t7=|H6~qpz|y!D|tcahPjM z=y`Jd1J_r8C$0Ow*tkMlwu7g(fS1XP@^<_>|9{3`nGPh&pr+owaII#X9gKSvDAt12 zzY{K1uEc8yU+x4S!m^$B-MotRb!oWM$fPy=tzK>nAD4tT^;e?!H26q)&x6xCB+*N| z#6O+}1gjWRjnJ70>JscgXX3!K(0@(QH>-hSCikde+t9PNq6_cpId!5@fi^K_{_T0{ z>R?E4Lof^-dj*`{hF`PMlqtsA4<~H`D=V4RO6D5J<>|9LRPBN-?tx~m3%8dCLSq)= z#-3ce0BGtmEA4X{C`y5YQ~BNqP2ZXk8gZZUrH@b@c;tP3;luET(j*V9X4IeXV%F2- zjnjFm0@zR{&!u&w={=O9X?uH= z&C`p)k9yMi+skQO-wod=56+<-^VFW!gQvE`!M`K1sYJpug5}WCc;hf|>Y>$O6g^}8 zgnzl3OaIz|g~*qBQC!Gd4WK~{;4wx&n=3uRV-K`!9iA@(=hg#;GH5$}*9~YQ{WSHS z`nCd1ooM{3&TRzk^l8rnf9>c^yRFYq4+L+MNx567~FyVNe;H=^p;5c(%p4cC8 zwvgE^1s7Vy)8LS^n7R3erf{VGxAA5KA3D!6P+R^o;+;Z7vIx6&7(F4ss_Tt~+Vi|H zo=g*uy%PDk7`~CO>nA)R|ElL3(bRqVjK=33;F)KGXMz#IZ9t$@*J9L~V6O$Eo&*-k z(q}t*Z_cX;vu#2@b%Q>%E;Q|{Ho#a~8|@hKnEqC$gr9SXZU2FKf1vN?g5P3)T;FyU zO`W4H{skSSozm}U4}SXx*Ch1W3ZK>HT1(*9QXfk6bXho1&6~%&o*IBSU%I2Oy71nc zU)pi!`P|z9Sw5f7`j1BF=4*C?O*0Jo-|OL~vS9BJ{AnCKi+LM6`n@Fj$e7I-bOHQo zJZkJ}JfmN_hdF954>6l{i4<)DD~q{vDbFeqdFb1%Tw9aK#Melldgl|G(Xif+y1_hy zZ4W&gZ-}i~aNz6ln^=Y^Te?$+cC+?ZZU7yDv@ZRM@SjG?T{m-@FG!PvY6 zE59drSPIU*qfLsxU_`SA^Pt3h`ur|_0Z3nqUqa4O(7i@5fpPDN?~OmB%>nX*;Ld!N zw!1u1&;ULu4Xw?!%ta2(D`-Ck1cTtVHpoonL{FyBN_pI;J=8Dv`sLWElMUxAV7P)5(z?8K6UQ~m)HTe&_1EPb8un=xiC z7+4E-pP&tkhsGa5h3W9#QFL$&&ZN_HnmH!(CFTMaFcb4S`rN0Wcg#I4<@-!%^)GbR z9;yrMU!P(X{U3p&${~-9z`OCdeyLe0b8VfGi>@?n*a`4ve$iZ_{G!cJ_XA9#!+WDY zE+=}rGPsJTI-tSMOZ1g-dM>@0>uruCW+AD|u(pf9fn(_pRDo|#LiRfGoMSdaH<+nC zias@$Vy@E6^N3&+Ucz8tiFtZHlsk$KQiXdPg7LGEYOTL=-43dy!N{V-ZkmHpPHWId zeOhCvZ^p!Ipgx`W+5vvd-JJ>TTL7uHTHUS9*IzMPqI@_P^EvwB#^vMVSK`Ow#}n#$ z-yOm2SpKWALMLNkjA$FuM+M#+B>i^7Te=t>RGMo>M`nnWg=NT^vY`D?H;R)6K-!DD zyD>9$qPZ30T=U+2lH7Q&M0Xi)U&@tpnfEQht-+naNN{-(`0q$hXThQh#QX0#pUN_IEUa5uOT?5*x7uV5` zvAp>v^`LU9jaRoE`=3tHZ`B9a+Ug%E>1`RSBe=L8n%)~ch{YP2$kt`d`f?=k3i#=+ z;BF*xFweANejU-IeVmCZ_P z%WkC&3x+b&)1XvEW^yY3%{ZLQ^X-EtgU5qO!MD6W%vc?uN@cjB4IFq26uuw-?s7)z z!_zeq9bN!0n(s7kdYGAt7c(nbCD$vIi5%qRH@M~}LWzSM^`(`8g8ZL~c`hd$Ge z@y+}w`{r-+!H2fh{JlAd6U-q-DrccVKO{T696h@L4eL6Jv6()Pd3tTqP4Ug~ljwnG z;eY;zoW>>UOpFl&`Yq7Q?OKb#Sg`gU{`13^OT3v znu5a|bi_7jB_>KF@;@eiIPOn-7Yn|Lo=d>boB96~WA}}(1d8GDgWU6IJQh3oIk9yX z_*Iit0|&dg@-de2OZ4~-at#^i;uTo<@$qf(t?02Q@g`owc7FwLu0UD~pzac8KND`- zgiSdGDm5Y=I0nR1z~y{K-WIopcW)wsI|Z$!erN@quZAuo;79XfOTmPh7WKym@q73z zZ{RDug(Um}d>O%fX8kauPr_E~n|#av-x+s5P-=(t#f=5-XJ*gDPlIhSHZ6g5G*(`_ z3DFXY8k;H4>SxDY$PB(^Mq|LwOmt9reltgT5S=iHc4>SG{=*O4F)_Xq8gz{>jN8WN zfV~G8@6q_&xDEFA7CfaNz{rZk|8ninyiO4qn!+re1#dUP0r&C5BT(_S_>TBm+TeI# ze0_Wa^VLeciC6X}bDWguNAr~W)^nNh?eX1U{8RW-{gh7Vum8ITdi@GNyaTQlV$1Y% zYcX;K61x+R~gsA z_jl2T0`Je@)EvEfV>;vh1ZMSH%+l#s{*`E@`9S500>_ggIRb z?e7e3WYl`WJm7o{_@%pXgV{A>#4o_ZA^OnL>PNf*PYeQIW1-Xc++lvfTzT+6S#$2{ zQ|-FASwwq3>GfS!q&|ULmLTzm(M4+9RPYOP(dW~e8xxwN`koo-Lu+?j(=3Cm8ws9| z-Z>pDqd#vPtZ$^XFkh{n*#tCdqcOpK!L(pT@FRAi8~U&~iq>XV#eO{;%nfD*3xb8{ z$I)mb*C3h@^$bGa4MM|JMQ-$>4xm+1NXVIq?Y<3b@>cLRR%JMx+Zk*cWp#sIEfN^@ z_w=1z7uLRChu-XpmexNggPt&7==$C`+JB*}c^=pI-bcJi`W-Ac=$>%J3x}Mz4wF&HP z&@-pOZ_R+bDO$Bbl80M^eK`ibVqTl*;|qB2S)|yURW{zEws1PqRT>%%hHr)kH#7HE zz*oRHJ9&B~lwO7nDFGG-!&{f4vz8%C@1Ps9@dqvg#uCtX6LZK*s#C&J51(P^%{n{iTJy25W`f(PjL z1t{4WE99!vxyju6FeCGk`V;zyuFlGr<|vF&m6t&@{V}CTU*jq~rC~IEfM!6UEi@K! z{a^j5Ej71%IFX2>vGdlhw*fcZX+3#$f#+PWG1J-%Iu2mA*P_L5MT^`H{%+*k0A6Fj z>liG(Ua2|ux#(`=Fms%F;Pwjc8qCW)u-Zd^(9Gi(e7+Ie^b*$5wHH0(PRw0=--g#b z1_|m2He7Ejg0h8Z|5Zrh31)AG@+`EB_F7)vjrMV^-TaNKnt#&f(p=YENqc~%9=`{T z`~|k|Z+_Qayarv@quX-9#{uNZx(j0|^Z&+4uB93utp@5LzQe&vj7sxV~frmp@LsFz$pkdjgF77C(oUt`%30cSrl9?(qdk{4Joi z{+Btzk7++3+1m9bNRBz>KfulB;9)6O)Y0Y}%>yY5;xj_anm1m;-R9a|@mq|xzXJ^Z z!5q|MMrmI{!=LC|-^cvndw4~Ep%u1*Q#0HzgW(U*Jmx)`@XSx#T`4{#E{yV{Q{rlP zEmtJ^{cY@l^%vr6GL%_@opw&05+Cw$q^M!=A-ZfNc6TJ!^ht2}63tx4_i&XyoI3Fz zX1SDiR~!Emyo=_z8EMYNFEa}MD?XF{9)P>#A9?gQWO6;vIqrJs=KL;#Ru|&~RE$rG z%fxwcySM`sz90Bp_byEQjoac;+<7OK{1z-x4ji&s41DDMJ$F5qsMy-x@ z{oz&kH=+ z9vTOZH^XOj6TUU}{SY5%Bod|HF^hS*zHiiS{!Jd3&wR}teFDFkH|U7wxf`pj|9%mC z)|Y7MvtU9nAFK6j@EqFle!Tx;J^2XIs6Nnd6xaGOEooQNK4DyaV{;+j!d2qh^$z_8 zV_xgC%tN~7U>tiL7Vz0%JmdAmzFK#)C4P|^Jx#_&{a*rpw64Q^g?#K9^?UHpXmCCm z+?YzjVqlvG@`@9kDZhYpto-v7eOxKyOMuU$JUJCvj zd>s57Ol8iWaqn>Ancmo$mOR}riO9{>-i{tJhPj{j->~y)zd>Wk)3q79KX&O#a4Oy}W$xO(&*8bZkptyoE)r#Jm=!{;uvgle zE8%IWXzifu9Ih4i;^~KJx1bZsqp$WL&(=B^0}p^Fx?zP~S9RTNA|sejRHy8uxt@17 z^8NxE?FTqbpU~LHRRMDgh3LzFx!ZL?HxZyD}2#*F& zz)9nQbtu1%!F&7xUK`0%7bSYV6~5rjL`x3@_h6Z_$Pvtj9(923%!EgT-}TZ%$kjFQ z*Ms<>kI=gCytPc`vnN7<$-z&-ufc4_91BjafSd24e^;S8244hU|4EugAS9|gK zS@^Iv`N$&HUGzyRV4qz5Uxpmj;_e@i&)ML7G_)MRuN4Ag6FDo5KTsLXWsGL--8KDr zw71|ObE(!PS*Oq(YN{`0a^)&CoLObp?_6gu)>G@?m(pOiBh>7Gv}XZFS?1pz%=RS` z$qTewi;!=92Qxp)ll4DMX|B0xPnYwnYp}+g=4p(LU4feoA5TE0zhz{7#Tnpb8WE~7 z*Bjudr(msR& z^N})r(otj^`p1`J^)5r348x{QK@VrbYp&I8PJXYA&ytR!=+w9ldgn4M;uvxaPse@G zDW$QM1<}!{Io3>@_zE)oIdG5Vo}pMIV+Uh=BWQCPeR=+CnrmFjr}>K2v>b3+17Gt; zo_GoPLhPqCqguq#JUyOB;UoI`nBSh~4*hohY-&R4(gNn}x3($~F!XKv+L*M^Nb zjH1;u{jsZ0!J89-*8FlOMpMrkf5;X8MTbAj9hX6gyYWCqU;%qWy#d(e>*8zRonP@s zOJWOl!flJd*97QtE!g=0jl2T>%RxKc3p5Xbmj>|sFA2|i-5SwWWIW2ox%g_;fP4Tv z`8`~-0?Tp`&isw>KL&ycaO@oD`W`ur0dUO-yz9}x^*l0{PHF*`Lm~4&#p~eOkwZ}D zC1&UXo zzk&PiV2-YHo3ktC|HqNMuE<!DN0FgMJHX0O91 z*8uzdJaGt}Q#-61PQy-rguhuXEEk>?wh1eQCxwf#w2#6G`Z3FxojJ)G;N%>}YmZlX zA3lVuVDCf2dhzLKh=E9yxy7~2b{6{kvbY?P&f(~IRE~IO9A0W2um#A9dYbjV5N7Ur~w z+C+8oYv%t@^i$E)ys3FZstm3&wARhFKCSV7jdhhaSDKvnV_vzaZ1m{y$By5fzB}C} zqjg68%=($GH{Vk@s_^^t&*`zz7{j6XAO&Ka5WL*93JL(2>+Gp_9TvOkvj zy37-$#+7=dCIQHpys~@j=GB86C1ZW{t^sD5GDxZ~C#LPalmA z=N}$=^roXP9((3kx8psI_sQ>*pM4_x#Fw3R8ujADMJy z(4hf`CLaCr=raY+6cpvB^FKNK>EYaiIR}Ry8Ghus{O9sND)_jdWkHLA#|j@Sv|hs; z{@3YA>C%Pe3df}HPuGQu%n@}#f_lci;*Mdb@Y;;Q8P8GD-=#k-`mCs3QQM;5(+ktj7L6@h6K#(!Ms_NORl}`V;bBO|4a8W7;KLQ++HhHF zaVkz_WNb@qN}ZBXHRBOl>&zCJhcfdsFUsnibx+p)S&K6lWgbi&OpQfau86LRN*Co7 z-I=~Cy`pegVY|X}3(FRkDLiyy|A~Gl2A=q$;G=@$1>uSJfoNvYoT3Zj&iFugV5zP^ zH%&w<<|E^INaJt8!Ei@-UFzo4kKxzh5cKs&#HyELm+y*3M+NEQ=>vsF3QtL&l)gPZ ziqURQzn}hZdT`N|MK4CLN0XtWG3!X|MZ>U3ST0qXo^DPxPqj|vroz-isi#xhQfpE( zQ}a@CN(%UE*u|r2`@q?vitxoRNqvG@VwA`syfDX z4fi!%46ob}T^}7UI#G0>Xn)b8MGqHENPn4bn68%|oW7P%U!<={_e)nvS54nUYg=@7 z(Q`#l7adQh(@&-!N)Ig>Su}`vw|jVTST$8MH7}eQJ`;`$H-{U-mf)*(szs_s>eSSn z@YgUS%nbGYmqdR@FGa6L3!??mz0v*A2Sx7}O-xTruP$6$IHzz{Ve@p0^o{9Z>HnlZ zO0P;UPH#-_O5ay>Yte(z6H%YI2fj(qcw4k3`iAxyZB?{7>JfLxe!Nbs**N%v7^iet zBJ7Bc`A_(MI0=1nXLxVeH@p;TbVrky2(N+1^>e00v!hfTMb_a@CSqAa7VmX*M^oY% zE9{=4S&wG?;+kw9H1pDEX>@{iAO5*Dl-8&j*Zdppik^zbBGs9Rebyd-AAA+$Fya|u zt8g{>L2buqbpM&~L>Ams58T`q-X5+A)+KS-^Y|if0l^nMmky2x-@(nF;a$&;=0)S9 zanao9x2PvRrE78SUC>{ZmgZH>(YfzwFil$(ghhB3O@azU0yjk?qPO6m8gXrMV%Om{ z%!*$Ko(k%R4HMW_GVf`@^k8^6JZu4{U!5A5`W2cL1_k&euOka1u-#*T{BHd4`uMQs z6?UPA+&Ng9*x*~RH7W7q-@!`je|$mf4Xvg`Gon$^tSKP4KDA)-+7aMkJ1_d zLxZqhxPn4?i(TlI(L19tZC7eX>WoyI)Yfog_+vOF)IYE;;05Hi z89ANql_t95i;{+OKS#%@x7>?Zk6D?<(Kss_Q^#i;u z*I{FPj2`4^j-ttzgv-Kk8ffG=vzVOLR$eO;Nw1o$15r z4e1r>>P5ASZl}#Hnq729bXQbBGe>Oww0@#B_?M&S9>Y)m0S?zEw0_^5urbn8WRhp% z^%<|5Z~76Q`42qx29c6^F|S)!{w@&zN<8j95pyBq@y*;AXA zhH+!)(j6Rq5?h;S&i+xFxxG4gd+v?2UPd~;juh_0Q$H3IA|;Oz+aDmJ`Up)tB_2U+ z_$~6OANL+mh|XGSff26%FFqFIr(3!UPQ@cB4+s(f^? z=x|ZZs8;k?^k`HXU$G0#-2FAo_PqEkAQ^yv9>tUBu|!xZJj#sT!D4)X9m))I!Z*X$ z!0B%=ZA^ z{io>NSKzkHxKGqODjDTM@w=ll$T@t1O=S=V#{zW;}e+?D>Ogg=LS!hgepuqezA zkA^)`JyXk5D^is+DrM|W?Mn?yU6)#oEqgh9HM}t#7PbxBh3kRqLo}r8C-TBkcxoWF zuuN1AFSl;g7CGx0b&hU|Mq*oDOmH$Rx+S_6i}_PDEi!*%u4^5w8#Z7tett_dUq{+g zNZ^}TiYLRdcuigK%qr2Uh2KL5{Ver^@r8S(zlIy@u~M`rIv6#I>l2f=iBlAxOu`nu z9le2N-W^>Pv2qnyqo7>n!)MozgGjO>tI1CJ3@e9sOY+_@4j7P$U!|B-0x5GEE z=2wM1!PC(2X6An#5kTa4pyL9j|OYW{QUtxnqx+ zGicVDSc^La9yj-I{lhoRZ*#DPY|f|TW6k`#Rxmt~&#~lYt=FG~h8qNKdtrl>=PUVK zJ+8@`P+7SBTryh2$j}Vt`epndLd5tyx?&lz;PGV5a}% zP|A9h&EzwFN4wn$)O{Ie5c!#2_#9{cuT_pK$5m+OfahzWuWJWZjJ(CW>uByLF*Cji zylx>P`zH7toVu#`W$`_X^WQ+jxSDKjQE`>AwYB-=+HwNxT>2zh{1WDQ3tq-O zXqo?DQ@@IEZSeYVvTk8M+Z?-ViPlqEcj0=O>-z4&-GGPlHoo%!sN5PZJB#-oG;>>Dph7^c|LZ7t~yezw<D%o0^X~HwUDU# zcoYrs`Fe-9hIe3HpAT;fM-idtg+H>wG?wwqcet0-_}?6!^~KL&zwf7YMVB_EozFVs z#n_A?(7G@DRxhp*??Co5$*k5x#|f5wttxPxLRo#D_5#>^jUGS6m--owdl%>i7kGR z-*12>J?U#G7WxUS-JLvtHIR13E2@h|$-&=n@8c?Tdlh=^OCJv;qjqDK=6~eD4zwGA zX#_A`%-qfO|H+Eb44Uh@Czy8;dBx&=Rjwlb1ZDq3zf9#d4=&scCJ({!laYZ3&^Y%Y z8B@t%72%UtN&53VhGj^QHFNGOt_C-BNqG4zw2c*om7sAe{P||s_p;zRpLM+w=+Qz( z_#M7_7ig^W+zv05z*>f^hyTdRrIjVOCOOfs;Xv2t#-Pn^##)cyS97JtW$q7cj6XaQ z9F0gQdOP02V_2&9ShJl^g}_Yc{|vYs1~-g`$Df8Ww~$q9PyNCYW;~s_PJ_-LBz>Fr zxsRqy^@HQ8l7p>{z3GnxTED0soeD;NrY+)m>)9{G%aI1w&6v-!3e(ze_c`iIyHB

M3US6mT1R%ZMSl6)OJXI;1Y>IX)df;_v2wgogX-|wF04d8zd^ezw8 z%oDng&3bY7U%5AXMl$PZiSDyD?^866HqNsM+`p#*GM{-0FINiAr)Sso1`#`?`BmQf ziip~ENozXiq2r&!jy^#Y?i%;oc$cnGyqZYg^H`VRNL**E`x)qh9*GRT1+T~(&cNpe zpcBTRo4*8a?$>gciaUL*CSHK&`a1o6%CA2FulYyUL)~dHHhH!`KHB+2C0+U70ejV- zUZ*A&*0oIQVP2=XN6`Gf`$^>49eh$Qlt1_Fy0gAL8oXCB-_fj4KLd|FnaHr~IL18g z7jO@X`+z(r!98Q!aXs{XKKy?gst;8aQ(v)*4TTuk_L7ulEv+e8{)SK=v!R`Uxz* zLk#c?xV4gWEZ4q-JFN#f!kCA7S#h=>9Z-tefOcrszKMQm5AVCL*8O;{yFO048BClF zhMEJjI%pua=yFz}2cXaTq66Lkela}gDFd$GS{^n?rX9}`x3^vj^=nx;CX9wTr<{Y_2z01IKDaG zYl5vUz~FA>HO$ePs&@2$H~6&v!P9fxH|6?D@Wf8Ms|TcdgV@7fy!O)@E6^t$tCT)=}2&{{_VVa=(7I z`_$cQXsx;X`?V?kpi>t{>&r|u=5|FUtgs?0k7YTr1!_?8c0*#t$QDiMt%%m z;u-F>ZcaHU!rq82Ycf3d#+rK99n_WX(DvMooyb->=x`x3(psO2cCxCwH{V>%zXP3e zKckMpre4h&zk4n`vkm+4xk>$TRGxG&m$G5%Q(XuY$xO5VSKzTEd`9YZbN zt)Ftoz@5M~6zHs}tWJOK8}zIQchYuc_T7>5`t(!>ih9a{J7-*zngH*QL#G>;y0@$s z5m9^EIm8H8VpU!19+PPFd+;i)*J1m4)K2M`2>7dYx1n^v69vrK=%O4kFG3U z3g)e!s!Ovj-ns<$^U6b>l3;DF`@+P7Yj5iFU(lDzj{A|VkJZv!@9tg~ZQc%~P@c1% z#u{8}0X+p~B{=#7PI(h7JqZ`S$|uinI*fjkKdguFObz#)xNFq≀0gMYAf=x-n~| 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