#include "..\script_component.hpp" /* * Author: LorenLuke * Toggles laser point tracking when a laser is on, for tracking coordinates. * * Arguments: * 0: Vehicle * * Return Value: * Nothing * * Example: * [vehicle player] call ace_laser_fnc_laserPointTrack * * Public: No */ params ["_vehicle"]; [{ params ["_args", "_pfhID"]; _args params ["_vehicle"]; if !(alive _vehicle && {local _vehicle} && {hasPilotCamera _vehicle} && {!isNull (laserTarget _vehicle)}) exitWith { [_pfhID] call CBA_fnc_removePerFrameHandler; }; (getPilotCameraTarget _vehicle) params ["_isTracking", "_spotPos", "_targetObj"]; if (!_isTracking) exitWith {}; if (isNull _targetObj) then { private _laserTargetPos = getPosASL laserTarget _vehicle; private _distance = _spotPos distance _laserTargetPos; if (_distance > 0.15) then { private _vehPos = getPosASL _vehicle; private _vectorToLaser = _vehPos vectorFromTo _laserTargetPos; private _vectorToSpot = _vehPos vectorFromTo _spotPos; if (acos (_vectorToLaser vectorCos _vectorToSpot) < 0.025) then { _vehicle setPilotCameraTarget _laserTargetPos; }; }; }; }, 0, [_vehicle]] call CBA_fnc_addPerFrameHandler;