/*
	Author: IT07

	Description:
	will alert players

	Params:
	for global(!) systemChat message:
	_this select 0: FORMATTED STRING - thing to send
	_this select 1: ARRAY - objects to send message to. If empty, broadcast will go to all players
	_this select 2: STRING - must be "sys"
	for mission announcement:
	_this: ARRAY
	_this select 0: ARRAY
	_this select 0 select 0: SCALAR - broadcast type (determines the color of the message icon)
	_this select 0 select 1: STRING - announcement title
	_this select 0 select 2: FORMATTED STRING - Message line
	_this select 1: ARRAY - objects to send message to. If empty, broadcast will go to all players
	_this select 2: STRING - (optional) must be empty or nil | for systemChat broadcast, use "sys"

	Returns:
	nothing
*/

if (_this isEqualType []) then
	{
		_broadCast =
			{
				private ["_arr"];
				if (count _this isEqualTo 0) then
					{
						_arr = allPlayers;
					} else
					{
						_arr = _this;
					};
				{
					if (isPlayer _x AND alive _x) then
						{
							VEMFrMsgToClient = [_msg, _mode];
							(owner _x) publicVariableClient "VEMFrMsgToClient";
						};
				} forEach _arr;
			};
		_targets = param [1, [], [[]]];
		if (_this select 0 isEqualType []) then // mission notification
			{
				_mode = (_this select 0) param [0, -1, [0]];
				_title = (_this select 0) param [1, "DEFAULT TITLE", [""]];
				_msgLine = (_this select 0) param [2, "Default message", [""]];
				_msg = [_mode, _title, _msgLine];
				_targets call _broadCast;
			};
		if (_this select 0 isEqualType "") then // systemchat broadcast
			{
				_mode = param [2, "", [""]];
				_msg = param [0, "", [""]];
				_targets call _broadCast;
			};
	} else
	{
		["broadcast.sqf", 0, format["_this is not an ARRAY: %1", _this]] ExecVM "exile_vemf_reloaded\sqf\log.sqf";
	};