/* Author: Andrew Gregory - EpochMod.com Contributors: Description: Direction from one object to another plus a degree value to chose a random direction within. Licence: Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike Github: https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf Example: _dirToF = [_pos,_destination,44] call EPOCH_fnc_dirToFuzzy; Parameter(s): _this select 0: (ARRAY or OBJECT) - position1 _this select 1: (ARRAY or OBJECT) - position2 _this select 2: NUMBER - random spread [optional: default 32] max 360 Returns: SCALAR - (direction 0-360) */ //[[[cog import generate_private_arrays ]]] private ["_dirToF","_pos1","_pos2","_ret"]; //[[[end]]] params ["_pos1","_pos2",["_spread",32]]; //if objects, not positions, were passed in, then get their positions if(_pos1 isEqualType objNull) then {_pos1 = getpos _pos1}; if(_pos2 isEqualType objNull) then {_pos2 = getpos _pos2}; //get compass heading from _pos1 to _pos2 _ret = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 select 1)); _ret = _ret + ((random _spread) - (_spread / 2)); if (_ret < 0) then {_ret = _ret + 360}; //remove negative value _ret = _ret % 360; //ensure return is 0-360 _ret