#include "script_component.hpp" /* * Author: Ruthberg * Selects a new gun profile and updates the gun column and the result input/output fields * * Arguments: * gunID * restore workingMemory from gunList * update display * * Return Value: * None * * Example: * call ace_atragmx_fnc_change_gun * * Public: No */ params ["_gunID", "_restoreMemory", "_updateDisplay"]; if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {}; if (_restoreMemory) then { GVAR(workingMemory) = +(GVAR(gunList) select _gunID); }; GVAR(currentGun) = _gunID; [false, false] call FUNC(recalculate_muzzle_velocity); if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { false call FUNC(restore_truing_drop); [false, false] call FUNC(recalculate_c1_ballistic_coefficient); }; if (_updateDisplay) then { lbSetCurSel [6000, GVAR(currentGun)]; }; GVAR(currentScopeUnit) = 0 max (GVAR(workingMemory) select 6) min 3; GVAR(currentScopeClickUnit) = 0 max (GVAR(workingMemory) select 7) min 2; GVAR(currentScopeClickNumber) = 1 max (GVAR(workingMemory) select 8) min 10; if (_updateDisplay) then { [] call FUNC(update_gun); [] call FUNC(update_gun_ammo_data); [] call FUNC(update_muzzle_velocity_data); [] call FUNC(update_c1_ballistic_coefficient_data); }; GVAR(elevationOutput) set [GVAR(currentTarget), 0]; GVAR(windage1Output) set [GVAR(currentTarget), 0]; GVAR(windage2Output) set [GVAR(currentTarget), 0]; GVAR(leadOutput) set [GVAR(currentTarget), 0]; GVAR(tofOutput) set [GVAR(currentTarget), 0]; GVAR(velocityOutput) set [GVAR(currentTarget), 0]; GVAR(verticalCoriolisOutput) set [GVAR(currentTarget), 0]; GVAR(horizontalCoriolisOutput) set [GVAR(currentTarget), 0]; GVAR(spinDriftOutput) set [GVAR(currentTarget), 0]; if (_updateDisplay) then { [] call FUNC(calculate_target_solution); };