#include "script_component.hpp" /* * Author: commy2, Timi007 * MarkerPlacement closed * * Arguments: * 0: RscDisplayInsertMarker * 1: CloseNumber (1 = ButtonOk) * * Return Value: * None * * Example: * [onUnloadEvent] call ace_markers_fnc_placeMarker; * * Public: No */ params ["_display", "_closeNum"]; TRACE_2("params",_display,_closeNum); private _editingMarker = (GVAR(editingMarker) isNotEqualTo ""); if (_closeNum isEqualTo 1) then { if (_editingMarker) then { //delete "old" marker deleteMarker GVAR(editingMarker); }; // set and send marker data the next frame. the actual marker isn't created yet [{ params ["_startingMarkers", "_editingMarker"]; private _newMarkers = allMapMarkers - _startingMarkers; private _newestMarker = ""; private _newestMarkerDist = 1e10; { private _distX = GVAR(currentMarkerPosition) distance2d (getMarkerPos _x); if (_distX < _newestMarkerDist) then { _newestMarker = _x; _newestMarkerDist = _distX; }; } forEach _newMarkers; TRACE_3("",_newestMarker,_newestMarkerDist,_newMarkers); if (_newestMarker == "") exitWith {ERROR_1("could not find user placed marker from %1",_newMarkers);}; // provide hook for external scripts [QGVAR(markerPlaced),[_newestMarker, _editingMarker]] call CBA_fnc_localEvent; // Add to list of user placed markers, and then filter for deleted GVAR(userPlacedMarkers) pushBack _newestMarker; GVAR(userPlacedMarkers) = GVAR(userPlacedMarkers) select {!((getMarkerPos _x) isEqualTo [0,0,0])}; [QGVAR(setMarkerNetwork), [ _newestMarker, [ GETGVAR(currentMarkerConfigName,""), GETGVAR(currentMarkerColorConfigName,""), GETGVAR(currentMarkerPosition,[]), GETGVAR(currentMarkerAngle,0), GETGVAR(currentMarkerScale,1) ] ]] call CBA_fnc_globalEvent; }, [allMapMarkers, _editingMarker]] call CBA_fnc_execNextFrame; } else { if (_editingMarker) then { // editing was canceled show the original marker again GVAR(editingMarker) setMarkerAlphaLocal 1; }; }; GVAR(editingMarker) = "";