/* * 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 _loadcar = nearestObject [_unit, "Car"]; if (_unit distance _loadcar <= 10) then { _vehicle = _loadcar; } else { private _loadair = nearestObject [_unit, "Air"]; if (_unit distance _loadair <= 10) then { _vehicle = _loadair; } else { private _loadtank = nearestObject [_unit, "Tank"]; if (_unit distance _loadtank <= 10) then { _vehicle = _loadtank; } else { private _loadboat = nearestObject [_unit, "Ship_F"]; if (_unit distance _loadboat <= 10) then { _vehicle = _loadboat; }; }; }; }; if (!isNull _vehicle) then { [_unit, true, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide); [[_unit, _vehicle, _caller], QFUNC(loadPersonLocal), _unit, false] call FUNC(execRemoteFnc); }; _vehicle