#include "..\script_component.hpp"

////////////////////////////////////////////////////////////////////
// Create action to copy map markers on all inheritors of CAManBase
////////////////////////////////////////////////////////////////////
private _mapCopyAction =
[
	QGVAR(actionID),
	"Copy Map",
	"\a3\ui_f\data\igui\cfg\actions\talk_ca.paa",
	{
		params ["_target", "_player", "_params"];
		format["Copying map markers from %1", name _target] call CBA_fnc_notify;
		[QGVAR(mapCopyRequest), _this, _target] call CBA_fnc_targetEvent;
	},
	{
		params ["_target", "_player", "_params"];
		[QGVAR(setting_enable)] call CBA_settings_fnc_get && {
			('ItemMap' in (assignedItems _player)) &&
			('ItemMap' in (assignedItems _target)) &&
			([_player, _target, []] call ace_common_fnc_canInteractWith)
		};
	}
] call ace_interact_menu_fnc_createAction;
["CAManBase", 0, ["ACE_MainActions"], _mapCopyAction, true] call ace_interact_menu_fnc_addActionToClass;

////////////////////////////////////////////////////////////////////
// Create CBA event to receive requests
////////////////////////////////////////////////////////////////////
[QGVAR(mapCopyRequest), {
	params ["_me", "_requester", "_params"];
	format["Your map is being copied by %1", name _requester] call CBA_fnc_notify;
	private _myMarkers = _this call FUNC(getMapMarkers);
	[QGVAR(mapCopyResponse), [_me, _myMarkers], _requester] call CBA_fnc_targetEvent;
}] call CBA_fnc_addEventHandler;

////////////////////////////////////////////////////////////////////
// Create CBA event to receive responses
////////////////////////////////////////////////////////////////////
[QGVAR(mapCopyResponse), {
	params [["_responder", objNull, [objNull]], ["_markerList", [], [[]]]];
	if ('ItemMap' in (assignedItems player)) then {
		[_markerList] call FUNC(loadMapMarkers);
		format["Copied %1 markers from %2", count _markerList, name _responder] call CBA_fnc_notify;
	} else {
		format["You need a map to copy onto!"] call CBA_fnc_notify;
	};
}] call CBA_fnc_addEventHandler;

[
	LEVEL_DEBUG,
	QUOTE(COMPONENT),
	"initClient complete",
	[]
] call EFUNC(common,log);

localNamespace setVariable [QGVAR(complete), true];