/* * Author: commy2 * Unit loads the target object into a vehicle. (logic same as canLoadCaptive) * * Arguments: * 0: Unit that wants to load a captive * 1: A captive. ObjNull for the first escorted captive * 2: Vehicle to load the captive into. ObjNull for the nearest vehicle * * Return Value: * Nothing * * Example: * [bob, tom, car] call ACE_captives_fnc_doLoadCaptive * * Public: No */ #include "script_component.hpp" params ["_unit", "_target","_vehicle"]; if ((isNull _target) && {_unit getVariable [QGVAR(isEscorting), false]}) then { //Looking at a vehicle while escorting, get target from attached objects: { if (_x getVariable [QGVAR(isHandcuffed), false]) exitWith { _target = _x; }; } forEach (attachedObjects _unit); }; if ((isNull _target) || {(vehicle _target) != _target} || {!(_target getVariable [QGVAR(isHandcuffed), false])}) exitWith {ERROR("");}; if (isNull _vehicle) then { //Looking at a captive unit, search for nearby vehicles with valid seats: { // if (([_x] call FUNC(findEmptyNonFFVCargoSeat)) != -1) exitWith { if ((_x emptyPositions "cargo") > 0) exitWith { _vehicle = _x; }; } forEach (nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship"], 10]); } else { // if (([_vehicle] call FUNC(findEmptyNonFFVCargoSeat)) == -1) then { if ((_vehicle emptyPositions "cargo") == 0) then { _vehicle = objNull; }; }; if (isNull _vehicle) exitWith {ERROR("");}; _unit setVariable [QGVAR(isEscorting), false, true]; ["MoveInCaptive", [_target], [_target, _vehicle]] call EFUNC(common,targetEvent);