From 5745408647bd723a49083f118dfffcd0183cdd8a Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Sun, 18 Jan 2015 23:44:32 +0100 Subject: [PATCH] Added hold and release functionality for CMS menu. --- addons/medical/XEH_postInit.sqf | 29 ++++++++++++++++++- addons/medical/functions/fnc_onMenuOpen.sqf | 4 ++- addons/medical/functions/fnc_openMenu.sqf | 14 +++++++-- addons/medical/functions/fnc_updateUIInfo.sqf | 2 -- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/addons/medical/XEH_postInit.sqf b/addons/medical/XEH_postInit.sqf index a2cb2ced08..967b56fda0 100644 --- a/addons/medical/XEH_postInit.sqf +++ b/addons/medical/XEH_postInit.sqf @@ -51,14 +51,41 @@ call FUNC(handleDisplayEffects); // Keybindings +GVAR(keyPressed) = false; ["ACE3", localize "STR_ACE_OPEN_CMS_MENU_DESC", - { [] call FUNC(openMenu) }, + { if (!GVAR(keyPressed)) then { + GVAR(keyPressed) = true; + GVAR(timeMenuOpened) = time; + [] call FUNC(openMenu); + + true; + } else { + false; + }; + }, [ 0, [false, false, false]], false, "keydown"] call cba_fnc_registerKeybind; +["ACE3", + localize "STR_ACE_OPEN_CMS_MENU_DESC", + { + GVAR(keyPressed) = false; + if (time - GVAR(timeMenuOpened) >= (0.25*accTime)) then { + disableSerialization; + _display = uiNamespace getVariable QGVAR(medicalMenu); + if (!isnil "_display") then { + closeDialog 314412; + }; + }; + false; + }, + [ 0, [false, false, false]], + false, + "keyUp"] call cba_fnc_registerKeybind; + // Adding the treatment options for all available medical equipment. diff --git a/addons/medical/functions/fnc_onMenuOpen.sqf b/addons/medical/functions/fnc_onMenuOpen.sqf index 0469b1b898..1cfae51a29 100644 --- a/addons/medical/functions/fnc_onMenuOpen.sqf +++ b/addons/medical/functions/fnc_onMenuOpen.sqf @@ -72,4 +72,6 @@ setMousePosition [ 0.4, 0.4]; ((_this select 0) displayCtrl 2000) ctrlSetText (_status select 0); ((_this select 0) displayCtrl 2000) ctrlSetBackgroundColor (_status select 2); - }, [_display]] call BIS_fnc_addStackedEventHandler; \ No newline at end of file + }, [_display]] call BIS_fnc_addStackedEventHandler; + + ["Medical_onMenuOpen", [ACE_player, _interactionTarget]] call ace_common_fnc_localEvent; diff --git a/addons/medical/functions/fnc_openMenu.sqf b/addons/medical/functions/fnc_openMenu.sqf index d79c772013..ad8023a801 100644 --- a/addons/medical/functions/fnc_openMenu.sqf +++ b/addons/medical/functions/fnc_openMenu.sqf @@ -10,6 +10,18 @@ #include "script_component.hpp" + +if (dialog) exitwith { + disableSerialization; + + private "_display"; + _display = uiNamespace getVariable QGVAR(medicalMenu); + if (!isnil "_display") then { + closeDialog 314412; + }; + +}; + private ["_interactionTarget"]; _interactionTarget = objNull; if (count _this > 0) then { @@ -30,5 +42,3 @@ if (isNull _interactionTarget) then { }; GVAR(INTERACTION_TARGET) = _interactionTarget; createDialog QGVAR(medicalMenu); - -["Medical_onMenuOpened", [ACE_player, _interactionTarget]] call ace_common_fnc_localEvent; diff --git a/addons/medical/functions/fnc_updateUIInfo.sqf b/addons/medical/functions/fnc_updateUIInfo.sqf index 2d847e7c26..5d5da23c68 100644 --- a/addons/medical/functions/fnc_updateUIInfo.sqf +++ b/addons/medical/functions/fnc_updateUIInfo.sqf @@ -18,8 +18,6 @@ _bodyPartN = [_bodyPartText] call FUNC(getBodyPartNumber); if (_bodyPartN < 0 || _bodyPartN > 5) exitwith {}; -systemChat format["updateUIInfo %1", _this]; - _openWounds = [_targetObj,QGVAR(openWounds)] call EFUNC(common,getDefinedVariable); _bandagedWounds = [_targetObj,QGVAR(bandagedWounds)] call EFUNC(common,getDefinedVariable); _fractures = [_targetObj,QGVAR(fractures)] call EFUNC(common,getDefinedVariable);