#include "script_component.hpp" /* * Author: Glowbal * Check if item can be loaded into other Object. * * Arguments: * 0: Item * 1: Holder Object (Vehicle) * 2: Ignore interaction distance and stability checks * * Return Value: * Can load in * * Example: * [item, holder] call ace_cargo_fnc_canLoadItemIn * * Public: No */ params [["_item", "", [objNull,""]], "_vehicle", ["_ignoreInteraction", false]]; if ((!_ignoreInteraction) && {speed _vehicle > 1 || {((getPos _vehicle) select 2) > 3}}) exitWith {TRACE_1("vehicle not stable",_vehicle); false}; if (_item isEqualType objNull && {{alive _x && {getText (configOf _x >> "simulation") != "UAVPilot"}} count crew _item > 0}) exitWith { TRACE_1("item is occupied",_item); false }; private _itemSize = [_item] call FUNC(getSizeItem); private _validItem = false; if (_item isEqualType "") then { _validItem = isClass (configFile >> "CfgVehicles" >> _item) && {getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1}; } else { _validItem = (alive _item) && {_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}} && {!(_item getVariable [QEGVAR(cookoff,isCookingOff), false])} && {isNull(_item getVariable [QEGVAR(refuel,nozzle), objNull])} && // Objects which have a refueling nozzle connected to them cannot be loaded {isNull(_item getVariable [QEGVAR(refuel,ownedNozzle), objNull])}; // Fuel sources which have their nozzle out cannot be loaded }; _validItem && {_itemSize > 0} && {alive _vehicle} && {_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))} && {locked _vehicle < 2}