#include "..\script_component.hpp" /* * Author: Rosuto * DAGR waypoint output loop * * Arguments: * None * * Return Value: * None * * Example: * call ace_dagr_fnc_outputWP * * Public: No */ 135471 cutRsc ["DAGR_DISPLAY", "plain down"]; #define __display (uiNameSpace getVariable "DAGR_DISPLAY") #define __gridControl (__display displayCtrl 266851) #define __speedControl (__display displayCtrl 266858) #define __elevationControl (__display displayCtrl 266857) #define __headingControl (__display displayCtrl 266854) #define __timeControl (__display displayCtrl 266859) #define __background (__display displayCtrl 266856) __background ctrlSetText QPATHTOF(UI\dagr_wp.paa); if (GVAR(outputPFH) != -1) exitWith {}; GVAR(outputPFH) = [{ // Abort Condition if !(GVAR(run) && [ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith { GVAR(outputPFH) = -1; 135471 cutText ["", "PLAIN"]; [_this select 1] call CBA_fnc_removePerFrameHandler; }; // GRID private _gridArray = [(getPos ACE_player), false] call EFUNC(common,getMapGridFromPos); _gridArray params ["_gridArrayX","_gridArrayY"]; private _dagrGrid = format ["%1 %2", (_gridArrayX select [0,4]), (_gridArrayY select [0,4])]; // WP Grid private _xGrid2 = floor (DAGR_WP_INFO / 10000); private _yGrid2 = DAGR_WP_INFO - _xGrid2 * 10000; _xCoord2 = switch true do { case (_xGrid2 >= 1000): { "" + Str(_xGrid2) }; case (_xGrid2 >= 100): { "0" + Str(_xGrid2) }; case (_xGrid2 >= 10): { "00" + Str(_xGrid2) }; default { "000" + Str(_xGrid2) }; }; _yCoord2 = switch true do { case (_yGrid2 >= 1000): { "" + Str(_yGrid2) }; case (_yGrid2 >= 100): { "0" + Str(_yGrid2) }; case (_yGrid2 >= 10): { "00" + Str(_yGrid2) }; default { "000" + Str(_yGrid2) }; }; _dagrGrid2 = _xCoord2 + " " + _yCoord2; // Distance private _WPpos = [_dagrGrid2, true] call EFUNC(common,getMapPosFromGrid); private _MYpos = [_dagrGrid, true] call EFUNC(common,getMapPosFromGrid); private _distance = _MYpos distance _WPpos; _distance = floor (_distance * 10) / 10; private _dagrDistance = str _distance + "m"; // Heading private _dagrHeading = floor (if (GVAR(useDegrees)) then { direction (vehicle ACE_player) } else { DEG_TO_MIL(direction (vehicle ACE_player)) }); // WP Heading private _bearing = floor (if (GVAR(useDegrees)) then { ((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir) } else { DEG_TO_MIL(((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir)) }); // Output __gridControl ctrlSetText _dagrGrid; __speedControl ctrlSetText str _bearing; __elevationControl ctrlSetText _dagrGrid2; __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { str _dagrHeading } else { format ["%1°", _dagrHeading] }); __timeControl ctrlSetText _dagrDistance; }, GVAR(updateInterval), []] call CBA_fnc_addPerFrameHandler;