/* * Author: Glowbal * Loads a specified unit into any nearby vehicle * * Arguments: * 0: Unit that will load * 1: Unit to be loaded * * Return Value: * the vehicle that the unitToBeloaded has been loaded in. Returns ObjNull if function failed * * Public: Yes */ #include "script_component.hpp" #define GROUP_SWITCH_ID QFUNC(loadPerson) params ["_caller", "_unit"]; private _vehicle = objNull; if (!([_caller, _unit, ["isNotDragging", "isNotCarrying"]] call FUNC(canInteractWith)) || {_caller == _unit}) exitWith {_vehicle}; private _nearVehicles = nearestObjects [_unit, ["Car", "Air", "Tank", "Ship_F"], 10]; { TRACE_1("",_x); if ((_x emptyPositions "cargo" > 0) || {_x emptyPositions "gunner" > 0}) exitWith { _vehicle = _x; }; } forEach _nearVehicles; if (!isNull _vehicle) then { [_unit, true, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide); ["loadPersonEvent", _unit, [_unit, _vehicle, _caller]] call FUNC(objectEvent); }; _vehicle