From 8603dd6d937c2e1c47e5ffe99c2d44b446719c77 Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Tue, 23 Jul 2024 16:58:06 -0300 Subject: [PATCH] [WIP] refactoring extract info function into more functions to handle the data to be grabbed --- addons/main/CfgFunctions.hpp | 6 ++++ .../extract_data/fn_extract_callsign.sqf | 11 ++++++ .../extract_data/fn_extract_role.sqf | 22 ++++++++++++ addons/main/functions/fn_extract_info.sqf | 36 ++++++++++++++----- 4 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 addons/main/functions/extract_data/fn_extract_callsign.sqf create mode 100644 addons/main/functions/extract_data/fn_extract_role.sqf diff --git a/addons/main/CfgFunctions.hpp b/addons/main/CfgFunctions.hpp index 93513e7..5d69f6c 100644 --- a/addons/main/CfgFunctions.hpp +++ b/addons/main/CfgFunctions.hpp @@ -7,6 +7,12 @@ class CfgFunctions { class init { file = "\armatak\armatak\armatak_main\functions\fn_init.sqf"; }; + class extract_callsign { + file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_callsign.sqf"; + }; + class extract_role { + file = "\armatak\armatak\armatak_main\functions\extract_data\fn_extract_role.sqf"; + }; class extract_info { file = "\armatak\armatak\armatak_main\functions\fn_extract_info.sqf"; }; diff --git a/addons/main/functions/extract_data/fn_extract_callsign.sqf b/addons/main/functions/extract_data/fn_extract_callsign.sqf new file mode 100644 index 0000000..34dcad0 --- /dev/null +++ b/addons/main/functions/extract_data/fn_extract_callsign.sqf @@ -0,0 +1,11 @@ +params["_unit"]; + +private _callsign = ""; + +if (roleDescription _unit != "") then { + _callsign = name _unit + " | " + roleDescription _unit; +} else { + _callsign = name _unit; +}; + +_callsign diff --git a/addons/main/functions/extract_data/fn_extract_role.sqf b/addons/main/functions/extract_data/fn_extract_role.sqf new file mode 100644 index 0000000..da3ab3e --- /dev/null +++ b/addons/main/functions/extract_data/fn_extract_role.sqf @@ -0,0 +1,22 @@ +params["_unit"]; +private _role = "Gnd Combat Infantry Rifleman"; +/* + TODO - Provide one of these options using tons of ifs + + "Gnd Combat Infantry Rifleman", Nickname: "Rifleman" + "Gnd Combat Infantry grenadier", Nickname: "Grenadier" + "Gnd Combat Infantry Mortar" , Nickname: "Mortar" + "Gnd Combat Infantry MachineGunner (LMG)", Nickname: "LMG" + "Gnd Combat Infantry Medic" , Nickname: "Medic" + "Gnd Combat Infantry Sniper", Nickname: "Sniper" + "Gnd Combat Infantry Recon" , Nickname: "Recon" + "Gnd Combat Infantry anti Tank" , Nickname: "anti Tank" + "Gnd Combat Infantry air defense", Nickname: "AA" + "Gnd Combat Infantry Engineer", Nickname: "Engineer" + "Ground" + + "Gnd Equip Vehic Civilian", Nickname: Vehicle (OK) + "Gnd Equip Vehic Ambulance": "a-.-G-E-V-m" , Nickname: Ambulance (OK) +*/ + +_role \ No newline at end of file diff --git a/addons/main/functions/fn_extract_info.sqf b/addons/main/functions/fn_extract_info.sqf index 7ef73ed..db76fbe 100644 --- a/addons/main/functions/fn_extract_info.sqf +++ b/addons/main/functions/fn_extract_info.sqf @@ -1,14 +1,32 @@ +// function name: armatak_fnc_extract_info +// function author: Valmo +// function description: Receives a player's unit as param and return the information array needed to send the HTTP request + params["_unit"]; -// ATAK UTIL INFOS -private _atak_uid = getPlayerUID _unit; // ATAK Get Player UID -private _atak_callsign = name _unit; // ATAK Display Name -private _atak_team_color = "team_color"; // ATAK Team Colors -> White, Yellow, Orange, Magenta, Red, Maroon, Purple, Dark Blue, Blue, Cyan, Teal, Green, Dark Green, Brown || Change it on every squad? make it customizable? -private _atak_role = "role"; // ATAK Roles -> Team Member, Team Lead, HQ, Sniper, Medic, Forward Observer, RTO, K9 -private _atak_display_type = "display_type"; // ATAK Display Types -> Ground Troop, Armored Vehicle, Civilian Vehicle, Generic Air Unit, Generic Ground Unit, Generic Sea Surface Unit -private _atak_location = worldName; // ATAK Location in Real World -> Already stored in a database or array -private _atak_position = getPos _unit; // ATAK Position -> Converted Arma 3 XYZ Coords to Geographic Coords +private _atak_uid = getPlayerUID _unit; +private _atak_callsign = [_unit] call armatak_fnc_extract_callsign; +private _atak_bearing = getDir _unit; +private _atak_team_color = "team_color"; +private _atak_role = [_unit] call armatak_fnc_extract_role; +private _atak_location = worldName; +private _atak_position = getPos _unit; -_unit_info = [_atak_uid, _atak_callsign, _atak_team_color, _atak_role, _atak_display_type, _atak_location, _atak_position]; +/* +desired object +{ + "longitude": -77.0104, + "latitude": 38.889, + "attitude": "hostile", + "bearing": 132, getDir function + "geoObject": "Gnd Combat Infantry Sniper", extract_role function + "how": "nonCoT", -- default and won't change + "name": "Putin", + "timeout": 600 +} +*/ + + +_unit_info = [_atak_uid, _atak_callsign, _atak_bearing ,_atak_team_color, _atak_role, _atak_display_type, _atak_location, _atak_position]; _unit_info \ No newline at end of file