ACE3/TO_MERGE/agm/Logistics/functions/Drag/fn_releaseObject.sqf

43 lines
1.2 KiB
Plaintext
Raw Normal View History

/*
Name: AGM_Drag_fnc_releaseObject
Author(s):
L-H
Description:
Releases dragged weapon from passed unit.
Parameters:
OBJECT - Unit
Returns:
Nothing
Example:
player call AGM_Drag_fnc_releaseObject;
*/
private ["_draggedObject", "_position"];
_this removeWeapon "AGM_FakePrimaryWeapon";
_draggedObject = _this getVariable ["AGM_carriedItem", objNull];
if (_this == (vehicle _this)) then { // if the unit is the vehicle of the passed unit (avoids bugs with players entering vehicles while dragging
_this playAction "released";
};
if (isNull _draggedObject) exitWith {}; // If there is no dragged object exit now.
[objNull, _draggedObject, true] call AGM_Core_fnc_claim;
_this setVariable ["AGM_isDragging", false];
_this setVariable ["AGM_carriedItem", objNull, true];
detach _draggedObject;
[_this, "AGM_Logistics", false] call AGM_Core_fnc_setForceWalkStatus;
_this removeAction (_this getVariable ["AGM_Drag_ReleaseActionID", -1]);
_draggedObject setDamage (damage _draggedObject);
_position = getPosATL _draggedObject;
if (_position select 2 < 0) then {
_position set [2, 0];
_draggedObject setPosATL _position;
};
[_draggedObject, "{_this setVectorUp (surfaceNormal getPosASL _this)}", _draggedObject] call AGM_Core_fnc_execRemoteFnc;