From 5d6846c5fa53f20b81ec8a1a372a84995af416af Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Sat, 10 May 2025 05:38:53 -0300 Subject: [PATCH] dismantled callsign function from units and markers --- addons/main/Cfg3den.hpp | 18 +++++++--- addons/main/CfgFunctions.hpp | 13 +++++--- .../fn_extract_marker_callsign.sqf | 33 +++++++++++++++++++ .../extract_data/fn_extract_unit_callsign.sqf | 25 ++++++++++++++ 4 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 addons/main/functions/extract_data/fn_extract_marker_callsign.sqf create mode 100644 addons/main/functions/extract_data/fn_extract_unit_callsign.sqf diff --git a/addons/main/Cfg3den.hpp b/addons/main/Cfg3den.hpp index f812936..97e0a1f 100644 --- a/addons/main/Cfg3den.hpp +++ b/addons/main/Cfg3den.hpp @@ -4,14 +4,14 @@ class Cfg3den { class armatak_3den_attributes { displayName = "ARMA Team Awareness Kit"; class Attributes { - class armatak_attribute_callsign { + class armatak_attribute_unit_callsign { displayName = "Unit Callsign"; tooltip = "Unit callsign on TAK"; - property = "armatak_attribute_callsign"; + property = "armatak_attribute_unit_callsign"; control = "Edit"; - expression = "_this setVariable ['armatak_attribute_callsign',_value]"; + expression = "_this setVariable ['armatak_attribute_unit_callsign',_value]"; defaultValue = "''"; - condition = "object"; + condition = "objectBrain"; typeName = "STRING"; }; class armatak_attribute_unit_role { @@ -58,6 +58,16 @@ class Cfg3den { unique = 0; condition = "objectBrain"; }; + class armatak_attribute_marker_callsign { + displayName = "Marker Callsign"; + tooltip = "Marker Callsign on TAK"; + property = "armatak_attribute_marker_callsign"; + control = "Edit"; + expression = "_this setVariable ['armatak_attribute_marker_callsign',_value]"; + defaultValue = "''"; + condition = "objectVehicle"; + typeName = "STRING"; + }; class armatak_attribute_marker_type { displayName = "Marker Type"; tooltip = "Marker type on TAK"; diff --git a/addons/main/CfgFunctions.hpp b/addons/main/CfgFunctions.hpp index c417e8f..d702906 100644 --- a/addons/main/CfgFunctions.hpp +++ b/addons/main/CfgFunctions.hpp @@ -28,21 +28,24 @@ class CfgFunctions { class stop_tcp_socket { file = "\armatak\armatak\armatak_main\functions\api\fn_stop_tcp_socket.sqf"; }; - class extract_callsign { - file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_callsign.sqf"; - }; class extract_group_color { file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_group_color.sqf"; }; class extract_group_role { file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_group_role.sqf"; }; - class extract_role { - file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_role.sqf"; + class extract_marker_callsign { + file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_marker_callsign.sqf"; }; class extract_position { file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_position.sqf"; }; + class extract_role { + file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_role.sqf"; + }; + class extract_unit_callsign { + file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_unit_callsign.sqf"; + }; class extract_uuid { file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_uuid.sqf"; }; diff --git a/addons/main/functions/extract_data/fn_extract_marker_callsign.sqf b/addons/main/functions/extract_data/fn_extract_marker_callsign.sqf new file mode 100644 index 0000000..a292260 --- /dev/null +++ b/addons/main/functions/extract_data/fn_extract_marker_callsign.sqf @@ -0,0 +1,33 @@ +// function name: armatak_fnc_extract_marker_callsign +// function author: Valmo +// function description: Gets the unit name or classname to be used as TAK callsign in a Marker + +params["_unit"]; + +private _callsign = ""; + +if ((([_unit] call BIS_fnc_objectType) select 0) == "Vehicle") then { + _callsign = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName"); + + if (!isNull driver _unit) then { + _callsign = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName") + " | " + ([name (driver _unit)] call armatak_fnc_shorten_name); + }; +}; + +if (unitIsUAV _unit) then { + _callsign = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName"); + + if (isUAVConnected _unit) then { + _callsign = (_callsign) + "[ON]"; + } else { + _callsign = (_callsign) + "[OFF]"; + } +}; + +armatak_attribute_marker_callsign = _unit getVariable "armatak_attribute_marker_callsign"; + +if (!isNil "armatak_attribute_marker_callsign" or armatak_attribute_marker_callsign != '') then { + _callsign = armatak_attribute_marker_callsign; +}; + +_callsign \ No newline at end of file diff --git a/addons/main/functions/extract_data/fn_extract_unit_callsign.sqf b/addons/main/functions/extract_data/fn_extract_unit_callsign.sqf new file mode 100644 index 0000000..01a8ea2 --- /dev/null +++ b/addons/main/functions/extract_data/fn_extract_unit_callsign.sqf @@ -0,0 +1,25 @@ +// function name: armatak_fnc_extract_unit_callsign +// function author: Valmo +// function description: Gets the unit name or classname to be used as TAK callsign from a unit + +params["_unit"]; + +private _callsign = ""; + +if (roleDescription _unit != "") then { + _callsign = ([name _unit] call armatak_fnc_shorten_name) + " | " + roleDescription _unit; +} else { + _callsign = name _unit; + + if (_callsign == "Error: No unit") then { + _callsign = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName"); + }; +}; + +armatak_attribute_unit_callsign = _unit getVariable "armatak_attribute_unit_callsign"; + +if (!isNil "armatak_attribute_unit_callsign" or armatak_attribute_unit_callsign != '') then { + _callsign = armatak_attribute_unit_callsign; +}; + +_callsign \ No newline at end of file