From e1200f875357dd01f8eb52fcce38b69cdafda8f6 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 22 Mar 2015 16:38:21 +0100 Subject: [PATCH 1/4] fix: release action didn't show up --- addons/dragging/functions/fnc_setCarryable.sqf | 6 +++--- addons/dragging/functions/fnc_setDraggable.sqf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/dragging/functions/fnc_setCarryable.sqf b/addons/dragging/functions/fnc_setCarryable.sqf index 630f212b97..56bfa5bd7a 100644 --- a/addons/dragging/functions/fnc_setCarryable.sqf +++ b/addons/dragging/functions/fnc_setCarryable.sqf @@ -48,8 +48,8 @@ if (_type in _initializedClasses) exitWith {}; _initializedClasses pushBack _type; GVAR(initializedClasses_carry) = _initializedClasses; -_carryAction = [QGVAR(drag), localize "STR_ACE_Dragging_Carry", "", {[_player, _target] call FUNC(carryObject)}, {[_player, _target] call FUNC(canCarry)}] call EFUNC(interact_menu,createAction); -_dropAction = [QGVAR(drop), localize "STR_ACE_Dragging_Drop", "", {[_player, _target] call FUNC(dropObject_carry)}, {[_player, _target] call FUNC(canDrop_carry)}] call EFUNC(interact_menu,createAction); +_carryAction = [QGVAR(carry), localize "STR_ACE_Dragging_Carry", "", {[_player, _target] call FUNC(carryObject)}, {[_player, _target] call FUNC(canCarry)}] call EFUNC(interact_menu,createAction); +_dropAction = [QGVAR(drop_carry), localize "STR_ACE_Dragging_Drop", "", {[_player, _target] call FUNC(dropObject_carry)}, {[_player, _target] call FUNC(canDrop_carry)}] call EFUNC(interact_menu,createAction); [_type, 0, ["ACE_MainActions"], _carryAction] call EFUNC(interact_menu,addActionToClass); -[_type, 0, ["ACE_MainActions"], _dropAction] call EFUNC(interact_menu,addActionToClass); +[_type, 0, [], _dropAction] call EFUNC(interact_menu,addActionToClass); diff --git a/addons/dragging/functions/fnc_setDraggable.sqf b/addons/dragging/functions/fnc_setDraggable.sqf index b6e26a6f0a..da2d0310b4 100644 --- a/addons/dragging/functions/fnc_setDraggable.sqf +++ b/addons/dragging/functions/fnc_setDraggable.sqf @@ -52,4 +52,4 @@ _dragAction = [QGVAR(drag), localize "STR_ACE_Dragging_Drag", "", {[_player, _ta _dropAction = [QGVAR(drop), localize "STR_ACE_Dragging_Drop", "", {[_player, _target] call FUNC(dropObject)}, {[_player, _target] call FUNC(canDrop)}] call EFUNC(interact_menu,createAction); [_type, 0, ["ACE_MainActions"], _dragAction] call EFUNC(interact_menu,addActionToClass); -[_type, 0, ["ACE_MainActions"], _dropAction] call EFUNC(interact_menu,addActionToClass); +[_type, 0, [], _dropAction] call EFUNC(interact_menu,addActionToClass); From dd7dad1b90b79f6af0b4130b4bfac69fb93d1f79 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 22 Mar 2015 17:05:31 +0100 Subject: [PATCH 2/4] define base class --- addons/medical/CfgVehicles.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 966663bc63..8b638a5127 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -6,6 +6,8 @@ class CfgVehicles { class ArgumentsBaseUnits { }; }; + class ACE_Module; + // TODO localization for all the modules class ACE_moduleMedicalSettings: ACE_Module { scope = 2; From 11bb1a050a673a1ed7d3bdc501a8ccba68b2c97a Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 22 Mar 2015 17:12:14 +0100 Subject: [PATCH 3/4] fix: could drag and carry object at the same time --- addons/dragging/functions/fnc_handleAnimChanged.sqf | 8 ++++++-- addons/dragging/functions/fnc_startDrag.sqf | 3 +++ addons/dragging/functions/fnc_startDragPFH.sqf | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/dragging/functions/fnc_handleAnimChanged.sqf b/addons/dragging/functions/fnc_handleAnimChanged.sqf index b5eb4d4d8f..91fa3d681b 100644 --- a/addons/dragging/functions/fnc_handleAnimChanged.sqf +++ b/addons/dragging/functions/fnc_handleAnimChanged.sqf @@ -13,7 +13,9 @@ if (_unit getVariable [QGVAR(isDragging), false]) then { private "_draggedObject"; _draggedObject = _unit getVariable [QGVAR(draggedObject), objNull]; - [_unit, _draggedObject] call FUNC(dropObject); + if (!isNull _draggedObject) then { + [_unit, _draggedObject] call FUNC(dropObject); + }; }; }; @@ -25,7 +27,9 @@ if (_unit getVariable [QGVAR(isCarrying), false]) then { private "_carriedObject"; _carriedObject = _unit getVariable [QGVAR(carriedObject), objNull]; - [_unit, _carriedObject] call FUNC(dropObject_carry); + if (!isNull _carriedObject) then { + [_unit, _carriedObject] call FUNC(dropObject_carry); + }; }; }; diff --git a/addons/dragging/functions/fnc_startDrag.sqf b/addons/dragging/functions/fnc_startDrag.sqf index 1e286fb4a4..07ed7e5a90 100644 --- a/addons/dragging/functions/fnc_startDrag.sqf +++ b/addons/dragging/functions/fnc_startDrag.sqf @@ -40,4 +40,7 @@ _unit selectWeapon primaryWeapon _unit; // can't play action that depends on weapon if it was added the same frame [{_this playActionNow "grabDrag";}, _unit] call EFUNC(common,execNextFrame); +// prevents draging and carrying at the same time +_unit setVariable [QGVAR(isDragging), true, true]; + [FUNC(startDragPFH), 0.2, [_unit, _target, time + 5]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/dragging/functions/fnc_startDragPFH.sqf b/addons/dragging/functions/fnc_startDragPFH.sqf index b6515aa2d9..5c2aced5ef 100644 --- a/addons/dragging/functions/fnc_startDragPFH.sqf +++ b/addons/dragging/functions/fnc_startDragPFH.sqf @@ -10,6 +10,9 @@ _timeOut = _this select 0 select 2; // timeout. Do nothing. Quit. time, because anim length is linked to ingame time. if (time > _timeOut) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; + + // re-enable everything + _unit setVariable [QGVAR(isDragging), false, true]; }; // unit is ready to start dragging From 84dbeb19d118f46f83b36f455d90d470e6202065 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 22 Mar 2015 17:35:26 +0100 Subject: [PATCH 4/4] fix: timeout could cause being stuck with attached item --- addons/dragging/functions/fnc_startDragPFH.sqf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/dragging/functions/fnc_startDragPFH.sqf b/addons/dragging/functions/fnc_startDragPFH.sqf index 5c2aced5ef..1d8c6f89f1 100644 --- a/addons/dragging/functions/fnc_startDragPFH.sqf +++ b/addons/dragging/functions/fnc_startDragPFH.sqf @@ -11,6 +11,14 @@ _timeOut = _this select 0 select 2; if (time > _timeOut) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; + // drop if in timeout + private "_draggedObject"; + _draggedObject = _unit getVariable [QGVAR(draggedObject), objNull]; + + if (!isNull _draggedObject) exitWith { + [_unit, _draggedObject] call FUNC(dropObject); + }; + // re-enable everything _unit setVariable [QGVAR(isDragging), false, true]; };