diff --git a/addons/markers/functions/fnc_copyMarker.sqf b/addons/markers/functions/fnc_copyMarker.sqf index 37b5750..693a5a0 100644 --- a/addons/markers/functions/fnc_copyMarker.sqf +++ b/addons/markers/functions/fnc_copyMarker.sqf @@ -26,4 +26,9 @@ private _scale = [_namePrefix] call FUNC(getMarkerScale); private _alpha = [_namePrefix] call FUNC(getMarkerAlpha); GVAR(clipboard) = [_namePrefix, _scale, _alpha]; + +// Provide hook +TRACE_1("Marker saved to clipboard",_namePrefix); +[QGVAR(markerSavedToClipboard), [_namePrefix]] call CBA_fnc_localEvent; + true diff --git a/addons/markers/functions/fnc_createMarker.sqf b/addons/markers/functions/fnc_createMarker.sqf index 392ae00..9f4fee8 100644 --- a/addons/markers/functions/fnc_createMarker.sqf +++ b/addons/markers/functions/fnc_createMarker.sqf @@ -69,4 +69,7 @@ private _jipId = format [QGVAR(createMarker_%1), _namePrefix]; _jipId ]; +// Provide hook +[QGVAR(missionMarkerCreated), [_namePrefix]] call CBA_fnc_serverEvent; + _namePrefix diff --git a/addons/markers/functions/fnc_createMarkerLocal.sqf b/addons/markers/functions/fnc_createMarkerLocal.sqf index bbe6799..ff79711 100644 --- a/addons/markers/functions/fnc_createMarkerLocal.sqf +++ b/addons/markers/functions/fnc_createMarkerLocal.sqf @@ -334,6 +334,7 @@ GVAR(localMarkers) set [_namePrefix, CBA_missionTime, true]; private _markerInformation = GVAR(namespace) getVariable [_namePrefix, []]; if (_markerInformation isEqualTo []) then { //save in mts_markers_namespace //save immutable variables of marker + TRACE_5("Save marker in namespace",_namePrefix,_broadcastChannel,isRemoteExecuted,remoteExecutedOwner,clientOwner); GVAR(namespace) setVariable [_namePrefix, [_markerFamily, _markerParameter, _broadcastChannel], true]; if (is3DEN) then { @@ -344,4 +345,8 @@ if (_markerInformation isEqualTo []) then { //save in mts_markers_namespace }; }; +// Provide hook +TRACE_1("Marker created",_namePrefix); +[QGVAR(markerCreated), [_namePrefix]] call CBA_fnc_localEvent; + _namePrefix diff --git a/addons/markers/functions/fnc_deleteMarker.sqf b/addons/markers/functions/fnc_deleteMarker.sqf index 7102f40..8042582 100644 --- a/addons/markers/functions/fnc_deleteMarker.sqf +++ b/addons/markers/functions/fnc_deleteMarker.sqf @@ -45,4 +45,7 @@ if (_targets isEqualTo 0) then { } forEach ["createMarker", "setMarkerAlpha", "setMarkerPos", "setMarkerScale"]; }; +// Provide hook +[QGVAR(missionMarkerDeleted), [_namePrefix]] call CBA_fnc_serverEvent; + true diff --git a/addons/markers/functions/fnc_deleteMarkerLocal.sqf b/addons/markers/functions/fnc_deleteMarkerLocal.sqf index 0f470f9..213c7a4 100644 --- a/addons/markers/functions/fnc_deleteMarkerLocal.sqf +++ b/addons/markers/functions/fnc_deleteMarkerLocal.sqf @@ -39,3 +39,7 @@ if (is3DEN) then { _3denData deleteAt _index; set3DENMissionAttributes [["Scenario", QGVAR(3denData), _3denData]]; }; + +// Provide hook +TRACE_1("Marker deleted",_namePrefix); +[QGVAR(markerDeleted), [_namePrefix]] call CBA_fnc_localEvent; diff --git a/addons/markers/functions/fnc_pasteMarker.sqf b/addons/markers/functions/fnc_pasteMarker.sqf index 57fe5e8..d79293a 100644 --- a/addons/markers/functions/fnc_pasteMarker.sqf +++ b/addons/markers/functions/fnc_pasteMarker.sqf @@ -41,5 +41,10 @@ private _broadcastChannel = call { if (currentChannel > 5) then {3} else {currentChannel}; }; -[_pos, _broadcastChannel, !is3DEN, _markerParameter, _scale, _alpha] call FUNC(createMarker); +private _newMarkerNamePrefix = [_pos, _broadcastChannel, !is3DEN, _markerParameter, _scale, _alpha] call FUNC(createMarker); + +// Provide hook +TRACE_2("Marker copied",_newMarkerNamePrefix,_namePrefix); +[QGVAR(markerCopied), [_newMarkerNamePrefix, _namePrefix]] call CBA_fnc_localEvent; + true diff --git a/addons/markers/functions/fnc_setMarkerAlphaLocal.sqf b/addons/markers/functions/fnc_setMarkerAlphaLocal.sqf index 5dbe25d..d2b5981 100644 --- a/addons/markers/functions/fnc_setMarkerAlphaLocal.sqf +++ b/addons/markers/functions/fnc_setMarkerAlphaLocal.sqf @@ -28,6 +28,8 @@ CHECKRET(_namePrefix isEqualTo "",ERROR("No marker prefix")); private _markerFamily = [_namePrefix] call FUNC(getMarkerFamily); CHECK(_markerFamily isEqualTo []); +private _originAlpha = markerAlpha (_markerFamily select 0); + // Set alpha of marker set { _x setMarkerAlphaLocal _alpha; @@ -40,3 +42,7 @@ if (is3DEN) then { (_3denData select _index) set [5, _alpha]; set3DENMissionAttributes [["Scenario", QGVAR(3denData), _3denData]]; }; + +// Provide hook +TRACE_3("Marker alpha updated",_namePrefix,_alpha,_originAlpha); +[QGVAR(markerAlphaUpdated), [_namePrefix, _alpha, _originAlpha]] call CBA_fnc_localEvent; diff --git a/addons/markers/functions/fnc_setMarkerPosLocal.sqf b/addons/markers/functions/fnc_setMarkerPosLocal.sqf index 1c6b1c1..2e11b7c 100644 --- a/addons/markers/functions/fnc_setMarkerPosLocal.sqf +++ b/addons/markers/functions/fnc_setMarkerPosLocal.sqf @@ -26,6 +26,8 @@ CHECKRET(_namePrefix isEqualTo "",ERROR("No marker prefix")); private _markerFamily = [_namePrefix] call FUNC(getMarkerFamily); CHECK(_markerFamily isEqualTo []); +private _originPos = getMarkerPos [_markerFamily select 0, (count _newPos) isEqualTo 3]; + //move the marker set { _x setMarkerPosLocal _newPos; @@ -38,3 +40,7 @@ if (is3DEN) then { (_3denData select _index) set [2, _newPos]; set3DENMissionAttributes [["Scenario", QGVAR(3denData), _3denData]]; }; + +// Provide hook +TRACE_3("Marker moved",_namePrefix,_newPos,_originPos); +[QGVAR(markerMoved), [_namePrefix, _newPos, _originPos]] call CBA_fnc_localEvent; diff --git a/addons/markers/functions/fnc_setMarkerScaleLocal.sqf b/addons/markers/functions/fnc_setMarkerScaleLocal.sqf index 795fcfd..0a04234 100644 --- a/addons/markers/functions/fnc_setMarkerScaleLocal.sqf +++ b/addons/markers/functions/fnc_setMarkerScaleLocal.sqf @@ -26,6 +26,8 @@ CHECKRET(_namePrefix isEqualTo "",ERROR("No marker prefix")); private _markerFamily = [_namePrefix] call FUNC(getMarkerFamily); CHECK(_markerFamily isEqualTo []); +private _originScale = (getMarkerSize (_markerFamily select 0)) select 0; + //set scale on the marker set { _x setMarkerSizeLocal [_newScale, _newScale]; @@ -38,3 +40,7 @@ if (is3DEN) then { (_3denData select _index) set [4, _newScale]; set3DENMissionAttributes [["Scenario", QGVAR(3denData), _3denData]]; }; + +// Provide hook +TRACE_3("Marker scale updated",_namePrefix,_newScale,_originScale); +[QGVAR(markerScaleUpdated), [_namePrefix, _newScale, _originScale]] call CBA_fnc_localEvent; diff --git a/addons/markers/functions/fnc_transmitUIData.sqf b/addons/markers/functions/fnc_transmitUIData.sqf index ececb4a..517c013 100644 --- a/addons/markers/functions/fnc_transmitUIData.sqf +++ b/addons/markers/functions/fnc_transmitUIData.sqf @@ -74,6 +74,7 @@ if (_isForMarkerCreation) then { //check if marker is being editing, if so delete old marker and create new one private _editMarkerNamePrefix = _okBtnCtrl getVariable [QGVAR(editMarkerNamePrefix), ""]; if (_editMarkerNamePrefix isNotEqualTo "") then { + TRACE_1("Edit marker - Delete old marker",_editMarkerNamePrefix); [_editMarkerNamePrefix] call FUNC(deleteMarker); }; @@ -81,7 +82,16 @@ if (_isForMarkerCreation) then { // Only save frameshape, modifier and size GVAR(lastSelection) = _markerParameter select [0, 3]; }; - [_pos, _broadcastChannel, !is3DEN, _markerParameter, _markerScale, _markerAlpha] call FUNC(createMarker); + + private _namePrefix = [_pos, _broadcastChannel, !is3DEN, _markerParameter, _markerScale, _markerAlpha] call FUNC(createMarker); + + // Provide hook for edited marker + if (_editMarkerNamePrefix isNotEqualTo "") then { + TRACE_2("Edit marker - Marker updated",_namePrefix,_editMarkerNamePrefix); + [QGVAR(markerUpdated), [_namePrefix, _editMarkerNamePrefix]] call CBA_fnc_localEvent; + [QGVAR(missionMarkerUpdated), [_namePrefix, _editMarkerNamePrefix]] call CBA_fnc_serverEvent; + }; + _mainDisplay closeDisplay 1; } else { _markerParameter call FUNC(setMarkerPreview);