#include "..\script_component.hpp"

if (!hasInterface) exitWith {};

params [
	["_drawTargets", [], [[]]],
	["_icon", "", [""]],
	["_text", "", [""]],
	["_color", [], [[]]]
];

if (count _drawTargets isEqualTo 0) exitWith {};

_cameraPos = positionCameraToWorld [0,0,0];
_cameraPosASL = AGLToASL _cameraPos;

{
	_target = _x;
	_visible = [objNull, "VIEW"] checkVisibility [_cameraPosASL, eyePos _target];
	
	if ( _visible isEqualTo 0 ) exitWith {};
	
	_objectPos = (_target modelToWorldVisual (_target selectionPosition "pilot"));
	_distance =  (visiblePosition _target) vectorDiff _cameraPos;
	
	_scale = 0;
	_heightOffset = 0;
	_heightScaling = 0.012;

	if ( _icon isNotEqualTo "") then {
		_heightOffset = 0.065;
		_scale = 1;
		_heightScaling = 0.075;
	};

	_drawPos = _objectPos vectorAdd [0, 0, (0.18 + _heightOffset) + (vectorMagnitude _distance * _heightScaling)];
	
	drawIcon3D [
		_icon,
		_color,
		_drawPos,
		_scale,
		_scale,
		0,
		_text,
		2,
		0.025
	];
	
	true;
} count _drawTargets;

nil

