From d1caacb81c8d156d8cbf5b02f29c765960cd773c Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Sat, 22 Apr 2023 22:23:50 -0400 Subject: [PATCH 01/11] building-marker-priority --- addons/building_markers/functions/fnc_set.sqf | 2 ++ addons/common/XEH_postInit.sqf | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index 94f9dbbbc..a96b1f9fd 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -61,6 +61,8 @@ if (_set) then { _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; + [QEGVAR(common,setMarkerDrawPriority), [_marker, -1]] call CBA_fnc_globalEvent; + // Delete marker when the object is deleted private _eventID = _object addEventHandler ["Deleted", { params ["_object"]; diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index eaf9c38ab..8ddf45240 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -304,6 +304,11 @@ _object setObjectScale _scale; }] call CBA_fnc_addEventHandler; +[QGVAR(setMarkerDrawPriority), { + params ["_markerName", "_priority"]; + _markerName setMarkerDrawPriority _priority; +}] call CBA_fnc_addEventHandler; + [QGVAR(setVehicleRadar), { params ["_vehicle", "_mode"]; _vehicle setVehicleRadar _mode; From 4ec5f8ec72861df75fcafd19ef6edc3d4b4a6b78 Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Mon, 24 Apr 2023 22:25:52 -0400 Subject: [PATCH 02/11] JIP --- addons/building_markers/functions/fnc_set.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index a96b1f9fd..df26dafe7 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -61,7 +61,7 @@ if (_set) then { _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; - [QEGVAR(common,setMarkerDrawPriority), [_marker, -1]] call CBA_fnc_globalEvent; + [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; // Delete marker when the object is deleted private _eventID = _object addEventHandler ["Deleted", { From 885e50e2cb7a440b49ea7e499d4417b1fb94d7cd Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Sat, 20 May 2023 15:40:03 -0400 Subject: [PATCH 03/11] remove from JIP on delete --- addons/building_markers/functions/fnc_set.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index df26dafe7..ff9c40506 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -61,7 +61,8 @@ if (_set) then { _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; - [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; + private _jipID = [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; + [_jipID, _object] call CBA_fnc_removeGlobalEventJIP; // Delete marker when the object is deleted private _eventID = _object addEventHandler ["Deleted", { From c1a6c600a82c80e39d40c56a4e5f9c7972695c53 Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Sat, 20 May 2023 21:25:31 -0400 Subject: [PATCH 04/11] remove jip on marker delete --- addons/building_markers/functions/fnc_set.sqf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index ff9c40506..385ca7215 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -61,8 +61,8 @@ if (_set) then { _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; - private _jipID = [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; - [_jipID, _object] call CBA_fnc_removeGlobalEventJIP; + [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; + [_marker, _object] call CBA_fnc_removeGlobalEventJIP; // Delete marker when the object is deleted private _eventID = _object addEventHandler ["Deleted", { @@ -79,4 +79,5 @@ if (_set) then { _object removeEventHandler ["Deleted", _eventID]; _object setVariable [QGVAR(marker), nil, true]; deleteMarker _marker; + [_marker] call CBA_fnc_removeGlobalEventJIP; }; From 2297b565a0ee0f3905440886c0e30b5e10805426 Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Thu, 12 Oct 2023 11:33:50 -0400 Subject: [PATCH 05/11] don't use _object for CBA_fnc_removeGlobalEventJIP That just creates another Deleted EH on the object with no saved ID. Repeated set and remove markers would result in multiple such events. --- addons/building_markers/functions/fnc_set.sqf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index 385ca7215..dc19f08c4 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -62,13 +62,14 @@ if (_set) then { _object setVariable [QGVAR(marker), _marker, true]; [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; - [_marker, _object] call CBA_fnc_removeGlobalEventJIP; // Delete marker when the object is deleted private _eventID = _object addEventHandler ["Deleted", { params ["_object"]; - deleteMarker (_object getVariable [QGVAR(marker), ""]); + private _marker = _object getVariable [QGVAR(marker), ""]; + [_marker] call CBA_fnc_removeGlobalEventJIP; + deleteMarker _marker; }]; _object setVariable [QGVAR(eventID), _eventID]; From 3ea5c510db6156c575a069fb72dd9f61dd2b24c7 Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Thu, 12 Oct 2023 11:48:09 -0400 Subject: [PATCH 06/11] handle the marker deletion while object persists --- addons/building_markers/XEH_postInit.sqf | 8 ++++++++ addons/building_markers/functions/fnc_set.sqf | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/addons/building_markers/XEH_postInit.sqf b/addons/building_markers/XEH_postInit.sqf index 38fa35da9..cfea2d1ea 100644 --- a/addons/building_markers/XEH_postInit.sqf +++ b/addons/building_markers/XEH_postInit.sqf @@ -2,6 +2,14 @@ if (isServer) then { [QGVAR(set), LINKFUNC(set)] call CBA_fnc_addEventHandler; + + addMissionEventHandler ["MarkerDeleted", { + params ["_marker"]; + + [_marker] call CBA_fnc_removeGlobalEventJIP; + [missionNamespace getVariable [_marker, objNull], false] call zen_building_markers_fnc_set; + missionNamespace setVariable [_marker, nil]; + }]; }; if (hasInterface) then { diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index dc19f08c4..4eade6fe2 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -60,6 +60,7 @@ if (_set) then { _marker setMarkerSizeLocal _size; _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; + missionNamespace setVariable [_marker, _object]; [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; @@ -68,7 +69,6 @@ if (_set) then { params ["_object"]; private _marker = _object getVariable [QGVAR(marker), ""]; - [_marker] call CBA_fnc_removeGlobalEventJIP; deleteMarker _marker; }]; @@ -80,5 +80,4 @@ if (_set) then { _object removeEventHandler ["Deleted", _eventID]; _object setVariable [QGVAR(marker), nil, true]; deleteMarker _marker; - [_marker] call CBA_fnc_removeGlobalEventJIP; }; From 1f379c14e323362ecec3d6fb5473f7787dc821c5 Mon Sep 17 00:00:00 2001 From: Ampersand Date: Thu, 12 Oct 2023 15:03:01 -0400 Subject: [PATCH 07/11] FUNC Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> --- addons/building_markers/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/building_markers/XEH_postInit.sqf b/addons/building_markers/XEH_postInit.sqf index cfea2d1ea..046658f00 100644 --- a/addons/building_markers/XEH_postInit.sqf +++ b/addons/building_markers/XEH_postInit.sqf @@ -7,7 +7,7 @@ if (isServer) then { params ["_marker"]; [_marker] call CBA_fnc_removeGlobalEventJIP; - [missionNamespace getVariable [_marker, objNull], false] call zen_building_markers_fnc_set; + [missionNamespace getVariable [_marker, objNull], false] call FUNC(set); missionNamespace setVariable [_marker, nil]; }]; }; From 6d7e35ca30c2f4d171b3019d7182cf05f96dedfc Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Thu, 12 Oct 2023 15:03:38 -0400 Subject: [PATCH 08/11] variable not needed --- addons/building_markers/functions/fnc_set.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index 4eade6fe2..0fb65da9a 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -68,8 +68,7 @@ if (_set) then { private _eventID = _object addEventHandler ["Deleted", { params ["_object"]; - private _marker = _object getVariable [QGVAR(marker), ""]; - deleteMarker _marker; + deleteMarker (_object getVariable [QGVAR(marker), ""]); }]; _object setVariable [QGVAR(eventID), _eventID]; From cf0644eb9c31d42272393a50905f5c9d78229234 Mon Sep 17 00:00:00 2001 From: Steve Zhao Date: Thu, 12 Oct 2023 15:14:14 -0400 Subject: [PATCH 09/11] use netId to get building from marker --- addons/building_markers/XEH_postInit.sqf | 3 +-- addons/building_markers/functions/fnc_set.sqf | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/building_markers/XEH_postInit.sqf b/addons/building_markers/XEH_postInit.sqf index 046658f00..887e976ae 100644 --- a/addons/building_markers/XEH_postInit.sqf +++ b/addons/building_markers/XEH_postInit.sqf @@ -7,8 +7,7 @@ if (isServer) then { params ["_marker"]; [_marker] call CBA_fnc_removeGlobalEventJIP; - [missionNamespace getVariable [_marker, objNull], false] call FUNC(set); - missionNamespace setVariable [_marker, nil]; + [(_marker splitString "_" select -1) call BIS_fnc_objectFromNetId, false] call FUNC(set); }]; }; diff --git a/addons/building_markers/functions/fnc_set.sqf b/addons/building_markers/functions/fnc_set.sqf index 0fb65da9a..df26dafe7 100644 --- a/addons/building_markers/functions/fnc_set.sqf +++ b/addons/building_markers/functions/fnc_set.sqf @@ -60,7 +60,6 @@ if (_set) then { _marker setMarkerSizeLocal _size; _marker setMarkerDir getDir _object; _object setVariable [QGVAR(marker), _marker, true]; - missionNamespace setVariable [_marker, _object]; [QEGVAR(common,setMarkerDrawPriority), [_marker, -1], _marker] call CBA_fnc_globalEventJIP; From fe71ba1593a4725c992a2ab8983295f6b7683550 Mon Sep 17 00:00:00 2001 From: Ampersand Date: Thu, 12 Oct 2023 16:29:29 -0400 Subject: [PATCH 10/11] Update addons/building_markers/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> --- addons/building_markers/XEH_postInit.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/building_markers/XEH_postInit.sqf b/addons/building_markers/XEH_postInit.sqf index 887e976ae..4d5f0f4f8 100644 --- a/addons/building_markers/XEH_postInit.sqf +++ b/addons/building_markers/XEH_postInit.sqf @@ -6,6 +6,9 @@ if (isServer) then { addMissionEventHandler ["MarkerDeleted", { params ["_marker"]; + // Filter all non-ZEN markers + if !(QUOTE(ADDON) in _marker) exitWith {}; + [_marker] call CBA_fnc_removeGlobalEventJIP; [(_marker splitString "_" select -1) call BIS_fnc_objectFromNetId, false] call FUNC(set); }]; From 7b4df379550cf365d09da54e3708dfd012f87bd7 Mon Sep 17 00:00:00 2001 From: Ampersand Date: Fri, 13 Oct 2023 09:55:44 -0400 Subject: [PATCH 11/11] Update addons/building_markers/XEH_postInit.sqf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jouni Järvinen --- addons/building_markers/XEH_postInit.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/building_markers/XEH_postInit.sqf b/addons/building_markers/XEH_postInit.sqf index 4d5f0f4f8..a7ee26416 100644 --- a/addons/building_markers/XEH_postInit.sqf +++ b/addons/building_markers/XEH_postInit.sqf @@ -6,8 +6,8 @@ if (isServer) then { addMissionEventHandler ["MarkerDeleted", { params ["_marker"]; - // Filter all non-ZEN markers - if !(QUOTE(ADDON) in _marker) exitWith {}; + // Filter all non-ZEN markers + if !(QUOTE(ADDON) in _marker) exitWith {}; [_marker] call CBA_fnc_removeGlobalEventJIP; [(_marker splitString "_" select -1) call BIS_fnc_objectFromNetId, false] call FUNC(set);