fn_onIfKeyDown.sqf 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. Name: cTab_fnc_onIfKeyDown
  3. Author(s):
  4. Gundy, Riouken
  5. Description:
  6. Process onKeyDown events from cTab dialogs
  7. Parameters:
  8. 0: OBJECT - Display that called the onKeyDown event
  9. 1: INTEGER - DIK code of onKeyDown event
  10. 2: BOOLEAN - Shift key pressed
  11. 3: BOOLEAN - Ctrl key pressed
  12. 4: BOOLEAN - Alt key pressed
  13. Returns:
  14. BOOLEAN - If onKeyDown event was acted upon
  15. Example:
  16. [_display,_dikCode,_shiftKey,_ctrlKey,_altKey] call cTab_fnc_onIfKeyDown;
  17. */
  18. #include "\a3\editor_f\Data\Scripts\dikCodes.h"
  19. private["_display","_dikCode","_shiftKey","_ctrlKey","_altKey","_displayName","_mapTypes","_currentMapType","_currentMapTypeIndex","_ctrlScreen","_markerIndex"];
  20. _display = _this select 0;
  21. _displayName = cTabIfOpen select 1;
  22. _dikCode = _this select 1;
  23. _shiftKey = _this select 2;
  24. _ctrlKey = _this select 3;
  25. _altKey = _this select 4;
  26. if (_dikCode == DIK_F1 && {_displayName in ["cTab_Tablet_dlg","cTab_Android_dlg"]}) exitWith {
  27. [_displayName,[["mode","BFT"]]] call cTab_fnc_setSettings;
  28. true
  29. };
  30. if (_dikCode == DIK_F2 && {_displayName in ["cTab_Tablet_dlg"]}) exitWith {
  31. [_displayName,[["mode","UAV"]]] call cTab_fnc_setSettings;
  32. true
  33. };
  34. if (_dikCode == DIK_F3 && {_displayName in ["cTab_Tablet_dlg"]}) exitWith {
  35. [_displayName,[["mode","HCAM"]]] call cTab_fnc_setSettings;
  36. true
  37. };
  38. if (_dikCode == DIK_F4 && {_displayName in ["cTab_Tablet_dlg","cTab_Android_dlg"]}) exitWith {
  39. [_displayName,[["mode","MESSAGE"]]] call cTab_fnc_setSettings;
  40. true
  41. };
  42. if (_dikCode == DIK_F5 && {_displayName in ["cTab_Tablet_dlg","cTab_Android_dlg","cTab_TAD_dlg","cTab_microDAGR_dlg","cTab_FBCB2_dlg"]}) exitWith {
  43. [_displayName] call cTab_fnc_toggleMapTools;
  44. true
  45. };
  46. if (_dikCode == DIK_F6 && {_displayName in ["cTab_Tablet_dlg","cTab_Android_dlg","cTab_TAD_dlg","cTab_microDAGR_dlg","cTab_FBCB2_dlg"]}) exitWith {
  47. [_displayName] call cTab_fnc_mapType_toggle;
  48. true
  49. };
  50. if (_dikCode == DIK_F7 && {_displayName in ["cTab_Tablet_dlg","cTab_Android_dlg","cTab_TAD_dlg","cTab_microDAGR_dlg","cTab_FBCB2_dlg"]}) exitWith {
  51. [_displayName] call cTab_fnc_centerMapOnPlayerPosition;
  52. true
  53. };
  54. if (_dikCode == DIK_DELETE && {cTabCursorOnMap}) exitWith {
  55. _mapTypes = [_displayName,"mapTypes"] call cTab_fnc_getSettings;
  56. _currentMapType = [_displayName,"mapType"] call cTab_fnc_getSettings;
  57. _currentMapTypeIndex = [_mapTypes,_currentMapType] call BIS_fnc_findInPairs;
  58. _ctrlScreen = _display displayCtrl (_mapTypes select _currentMapTypeIndex select 1);
  59. _markerIndex = [_ctrlScreen,cTabMapCursorPos] call cTab_fnc_findUserMarker;
  60. if (_markerIndex != -1) then {
  61. [call cTab_fnc_getPlayerEncryptionKey,_markerIndex] call cTab_fnc_deleteUserMarker;
  62. };
  63. true
  64. };
  65. false