diff --git a/addons/dragging/functions/fnc_createClone.sqf b/addons/dragging/functions/fnc_createClone.sqf index 6330be72f8..9457612b36 100644 --- a/addons/dragging/functions/fnc_createClone.sqf +++ b/addons/dragging/functions/fnc_createClone.sqf @@ -14,6 +14,7 @@ * * Public: No */ + params ["_target"]; // Get current position of unit, -10 m below surface @@ -25,19 +26,13 @@ private _clone = createVehicle [QGVAR(clone), _posATL]; // Clone loadout [_clone, _target call CBA_fnc_getLoadout] call CBA_fnc_setLoadout; -// Hide unit until it can be moved below terrain +// Hide unit private _isObjectHidden = isObjectHidden _target; if (!_isObjectHidden) then { [QEGVAR(common,hideObjectGlobal), [_target, true]] call CBA_fnc_serverEvent; }; -private _simulationEnabled = simulationEnabled _target; - -if (_simulationEnabled) then { - [QEGVAR(common,enableSimulationGlobal), [_target, false]] call CBA_fnc_serverEvent; -}; - private _isInRemainsCollector = isInRemainsCollector _target; // Make sure corpse isn't deleted by engine's garbage collector @@ -47,17 +42,7 @@ if (_isInRemainsCollector) then { // Disable all damage _clone allowDamage false; -_clone setVariable [QGVAR(original), [_target, _isInRemainsCollector, _isObjectHidden, _simulationEnabled], true]; - -// Turn on PhysX so that unit is not desync when moving with 'setPos' commands -[QEGVAR(common,awake), [_target, true]] call CBA_fnc_globalEvent; - -[{ - params ["_target", "_posATL"]; - - // Move unit below terrain in order to hide it - _target setPosATL _posATL; -}, [_target, _posATL], 0.1] call CBA_fnc_waitAndExecute; +_clone setVariable [QGVAR(original), [_target, _isInRemainsCollector, _isObjectHidden], true]; // Sets the facial expression [[QGVAR(cloneCreated), [_target, _clone]] call CBA_fnc_globalEventJIP, _clone] call CBA_fnc_removeGlobalEventJIP; diff --git a/addons/dragging/functions/fnc_dropClone.sqf b/addons/dragging/functions/fnc_dropClone.sqf index cee2932eac..b37f57247d 100644 --- a/addons/dragging/functions/fnc_dropClone.sqf +++ b/addons/dragging/functions/fnc_dropClone.sqf @@ -16,13 +16,14 @@ * * Public: No */ + params ["_unit", "_clone", "_inBuilding"]; -(_clone getVariable [QGVAR(original), []]) params [["_target", objNull], ["_isInRemainsCollector", true], ["_isObjectHidden", false], ["_simulationEnabled", true]]; +(_clone getVariable [QGVAR(original), []]) params [["_target", objNull], ["_isInRemainsCollector", true], ["_isObjectHidden", false]]; // Check if unit was deleted if (!isNull _target) then { - // Turn on PhysX so that unit is not desync when moving + // Turn on PhysX so that unit doesn't desync when moving [QEGVAR(common,awake), [_target, true]] call CBA_fnc_globalEvent; private _posASL = getPosASL _clone; @@ -31,29 +32,28 @@ if (!isNull _target) then { _posASL = _posASL vectorAdd [0, 0, 0.05]; }; - // Set the unit's direction - [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; - [{ - params ["_target", "_clone", "_isObjectHidden", "_simulationEnabled", "_posASL"]; + params ["_target", "_clone", "_isObjectHidden", "_posASL"]; + + // Make sure PhysX is on + [QEGVAR(common,awake), [_target, true]] call CBA_fnc_globalEvent; + + // Set the unit's direction + [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; // Bring unit back to clone's position _target setPosASL _posASL; [{ - params ["_target", "_clone", "_isObjectHidden", "_simulationEnabled"]; + params ["_target", "_clone", "_isObjectHidden"]; if (!_isObjectHidden) then { [QEGVAR(common,hideObjectGlobal), [_target, false]] call CBA_fnc_serverEvent; }; - if (_simulationEnabled) then { - [QEGVAR(common,enableSimulationGlobal), [_target, true]] call CBA_fnc_serverEvent; - }; - deleteVehicle _clone; }, _this, 0.1] call CBA_fnc_waitAndExecute; - }, [_target, _clone, _isObjectHidden, _simulationEnabled, _posASL], 0.1] call CBA_fnc_waitAndExecute; + }, [_target, _clone, _isObjectHidden, _posASL], 0.1] call CBA_fnc_waitAndExecute; if (_isInRemainsCollector) then { addToRemainsCollector [_target];