2018-09-17 19:19:29 +00:00
|
|
|
#include "script_component.hpp"
|
2015-08-10 21:07:47 +00:00
|
|
|
/*
|
|
|
|
* Author: Glowbal
|
2015-08-16 20:41:35 +00:00
|
|
|
* Check if item can be loaded into other Object.
|
2015-08-10 21:07:47 +00:00
|
|
|
*
|
|
|
|
* Arguments:
|
2015-09-27 16:19:40 +00:00
|
|
|
* 0: Item <OBJECT or STRING>
|
2015-08-16 20:41:35 +00:00
|
|
|
* 1: Holder Object (Vehicle) <OBJECT>
|
2018-10-08 20:23:59 +00:00
|
|
|
* 2: Ignore interaction distance and stability checks <BOOL>
|
2015-08-10 21:07:47 +00:00
|
|
|
*
|
2016-06-18 09:50:41 +00:00
|
|
|
* Return Value:
|
2015-08-10 21:07:47 +00:00
|
|
|
* Can load in <BOOL>
|
|
|
|
*
|
2015-08-16 20:41:35 +00:00
|
|
|
* Example:
|
|
|
|
* [item, holder] call ace_cargo_fnc_canLoadItemIn
|
|
|
|
*
|
2015-08-10 21:07:47 +00:00
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
|
2018-06-18 20:01:09 +00:00
|
|
|
params [["_item", "", [objNull,""]], "_vehicle", ["_ignoreInteraction", false]];
|
2015-08-10 21:07:47 +00:00
|
|
|
|
2018-10-08 20:23:59 +00:00
|
|
|
if ((!_ignoreInteraction) && {speed _vehicle > 1 || {((getPos _vehicle) select 2) > 3}}) exitWith {TRACE_1("vehicle not stable",_vehicle); false};
|
2015-08-16 20:48:52 +00:00
|
|
|
|
2021-02-18 18:58:08 +00:00
|
|
|
if (_item isEqualType objNull && {{alive _x && {getText (configOf _x >> "simulation") != "UAVPilot"}} count crew _item > 0}) exitWith {
|
2016-11-12 23:52:17 +00:00
|
|
|
TRACE_1("item is occupied",_item);
|
|
|
|
false
|
|
|
|
};
|
|
|
|
|
2016-01-19 03:53:48 +00:00
|
|
|
private _itemSize = [_item] call FUNC(getSizeItem);
|
|
|
|
private _validItem = false;
|
2015-11-20 17:40:31 +00:00
|
|
|
if (_item isEqualType "") then {
|
2015-09-27 16:19:40 +00:00
|
|
|
_validItem =
|
|
|
|
isClass (configFile >> "CfgVehicles" >> _item) &&
|
|
|
|
{getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1};
|
|
|
|
} else {
|
|
|
|
_validItem =
|
|
|
|
(alive _item) &&
|
2018-06-18 20:01:09 +00:00
|
|
|
{_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}};
|
2015-09-27 16:19:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
_validItem &&
|
|
|
|
{_itemSize > 0} &&
|
|
|
|
{alive _vehicle} &&
|
2017-04-01 05:33:36 +00:00
|
|
|
{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))} &&
|
|
|
|
{locked _vehicle < 2}
|