fn_drawHook.sqf 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. Name: bamse_cTab_fnc_drawHook
  3. Author(s):
  4. Gundy, modified by Bamse
  5. Description:
  6. Calculate and draw hook distance, direction, grid, elevation and arrow
  7. Parameters:
  8. 0: OBJECT - Display used to write hook direction, distance and grid to
  9. 0: OBJECT - Map control to draw arrow on
  10. 2: ARRAY - Position A
  11. 3: ARRAY - Position B
  12. 4: INTEGER - Mode, 0 = Reference is A, 1 = Reference is B
  13. 5: BOOLEAN - TAD, TRUE = TAD
  14. Returns:
  15. BOOLEAN - Always TRUE
  16. Example:
  17. [_display,_ctrlScreen,_playerPos,cTabMapCursorPos,0,false] call cTab_fnc_drawHook;
  18. */
  19. #include "\ClonecTab\shared\cTab_gui_macros.hpp"
  20. private ["_display","_ctrlScreen","_pos","_secondPos","_dirToSecondPos","_dstToSecondPos"];
  21. _display = _this select 0;
  22. _ctrlScreen = _this select 1;
  23. _pos = _this select 2;
  24. _secondPos = _this select 3;
  25. // draw arrow from current position to map centre
  26. _dirToSecondPos = call {
  27. if (_this select 4 == 0) exitWith {
  28. _ctrlScreen drawArrow [_pos,_secondPos,cTabMicroDAGRhighlightColour];
  29. [_pos,_secondPos] call cTab_fnc_dirTo
  30. };
  31. _ctrlScreen drawArrow [_secondPos,_pos,cTabMicroDAGRhighlightColour];
  32. [_secondPos,_pos] call cTab_fnc_dirTo
  33. };
  34. _dstToSecondPos = [_pos,_secondPos] call cTab_fnc_distance2D;
  35. call {
  36. // Call this if we are drawing for a TAD
  37. if (_this select 5) exitWith {
  38. (_display displayCtrl IDC_CTAB_OSD_HOOK_GRID) ctrlSetText format ["%1",mapGridPosition _secondPos];
  39. (_display displayCtrl IDC_CTAB_OSD_HOOK_ELEVATION) ctrlSetText format ["%1m",[round getTerrainHeightASL _secondPos,3] call CBA_fnc_formatNumber];
  40. (_display displayCtrl IDC_CTAB_OSD_HOOK_DIR) ctrlSetText format ["%1°/%2m",[_dirToSecondPos,3] call CBA_fnc_formatNumber,[_dstToSecondPos,1] call CBA_fnc_formatNumber];
  41. };
  42. (_display displayCtrl IDC_CTAB_OSD_HOOK_GRID) ctrlSetText format ["%1",mapGridPosition _secondPos];
  43. (_display displayCtrl IDC_CTAB_OSD_HOOK_ELEVATION) ctrlSetText format ["%1m",round getTerrainHeightASL _secondPos];
  44. (_display displayCtrl IDC_CTAB_OSD_HOOK_DIR) ctrlSetText format ["%1° %2",[_dirToSecondPos,3] call CBA_fnc_formatNumber,[_dirToSecondPos] call cTab_fnc_degreeToOctant];
  45. (_display displayCtrl IDC_CTAB_OSD_HOOK_DST) ctrlSetText format ["%1m",[_dstToSecondPos,1] call CBA_fnc_formatNumber];
  46. };
  47. true