123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #include "\ClonecTab\shared\cTab_gui_macros.hpp"
- private ["_interfaceType","_displayName","_player","_vehicle","_playerKilledEhId","_vehicleGetOutEhId"];
- if (cTabIfOpenStart || (!isNil "cTabIfOpen")) exitWith {false};
- cTabIfOpenStart = true;
- _interfaceType = _this select 0;
- _displayName = _this select 1;
- _player = _this select 2;
- _vehicle = _this select 3;
- _isDialog = [_displayName] call cTab_fnc_isDialog;
- cTabIfOpen = [_interfaceType,_displayName,_player,
- _player addEventHandler ["killed",{[] call cTab_fnc_close}],
- _vehicle,nil,nil,nil,nil];
- if (_vehicle != _player && (_isDialog || _displayName in ["cTab_TAD_dsp"])) then {
- cTabIfOpen set [5,
- _vehicle addEventHandler ["GetOut",{if (_this select 2 == cTab_player) then {[] call cTab_fnc_close}}]
- ];
- };
- if (_displayName in ["cTab_TAD_dsp","cTab_TAD_dlg"]) then {
- cTabIfOpen set [6,
- addMissionEventHandler ["Draw3D",{
- _display = uiNamespace getVariable (cTabIfOpen select 1);
- _veh = vehicle cTab_player;
- _playerPos = getPosASL _veh;
-
-
- (_display displayCtrl IDC_CTAB_OSD_TIME) ctrlSetText call cTab_fnc_currentTime;
-
-
- (_display displayCtrl IDC_CTAB_OSD_GRID) ctrlSetText format ["%1", mapGridPosition _playerPos];
-
-
- (_display displayCtrl IDC_CTAB_OSD_DIR_DEGREE) ctrlSetText format ["%1°",[direction _veh,3] call CBA_fnc_formatNumber];
-
-
- (_display displayCtrl IDC_CTAB_OSD_ELEVATION) ctrlSetText format ["%1m",[round (_playerPos select 2),4] call CBA_fnc_formatNumber];
- }]
- ];
- } else {
- cTabIfOpen set [6,
- addMissionEventHandler ["Draw3D",{
- _display = uiNamespace getVariable (cTabIfOpen select 1);
- _veh = vehicle cTab_player;
- _heading = direction _veh;
-
- (_display displayCtrl IDC_CTAB_OSD_TIME) ctrlSetText call cTab_fnc_currentTime;
-
-
- (_display displayCtrl IDC_CTAB_OSD_GRID) ctrlSetText format ["%1", mapGridPosition getPosASL _veh];
-
-
- (_display displayCtrl IDC_CTAB_OSD_DIR_DEGREE) ctrlSetText format ["%1°",[_heading,3] call CBA_fnc_formatNumber];
- (_display displayCtrl IDC_CTAB_OSD_DIR_OCTANT) ctrlSetText format ["%1",[_heading] call cTab_fnc_degreeToOctant];
- }]
- ];
- };
- if (isClass (configfile >> "CfgPatches" >> "ace_medical")) then {
- cTabIfOpen set [7,
- ["medical_onUnconscious",{
- if (_this select 0 == cTab_player && _this select 1) then {
- [] call cTab_fnc_close;
- };
- }] call ace_common_fnc_addEventHandler
- ];
- };
- if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {
- cTabIfOpen set [8,
- ["playerInventoryChanged",{
- _this call cTab_fnc_onPlayerInventoryChanged;
- }] call ace_common_fnc_addEventHandler
- ];
- };
- if (_isDialog) then {
-
- if (visibleMap) then {openMap false};
- while {dialog} do {
- closeDialog 0;
- };
- createDialog _displayName;
- } else {
- cTabRscLayer cutRsc [_displayName,"PLAIN",0, false];
- };
- true
|