#include "script_component.hpp" /* * Author: 654wak654 * Returns a list of vehicles near given unit that the unit can be a passenger in. * * Arguments: * 0: Unit * 1: Distance * 2: Restriceted to cargo only * * Return Value: * Nearest vehicles with a free seat * * Example: * [cursorObject] call ace_common_fnc_nearestVehiclesFreeSeat * * Public: Yes */ params ["_unit", ["_distance", 10], ["_cargoOnly", false]]; private _nearVehicles = nearestObjects [_unit, ["Car", "Air", "Tank", "Ship_F", "Pod_Heli_Transport_04_crewed_base_F"], _distance]; _nearVehicles select { // Filter cargo seats that will eject unconscious units (e.g. quad bike) private _canSitInCargo = (!(_unit getVariable ['ACE_isUnconscious', false])) || {(getNumber (configOf _x >> "ejectDeadCargo")) == 0}; ((fullCrew [_x, "", true]) findIf { _x params ["_body", "_role", "_cargoIndex"]; (isNull _body) // seat empty && {_role != "DRIVER"} // not driver seat && {_canSitInCargo || {_cargoIndex == -1}} // won't be ejected (uncon) && {(!_cargoOnly) || {_cargoIndex != -1}} // not restricted (captive) }) > -1 }