From af7a5e94a7360f04517e703ac6b480df710c07a8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 4 Nov 2020 22:58:52 +0100 Subject: [PATCH] Stack object in pallet when ViV is full --- addons/cargo/functions/fnc_loadItem.sqf | 26 ++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index 554c99fee9..84497b1b6a 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -36,7 +36,31 @@ _vehicle setVariable [QGVAR(space), _space - _itemSize, true]; if (_item isEqualType objNull) then { detach _item; if !(_vehicle setVehicleCargo _item) then { - _item attachTo [_vehicle,[0,0,-100]]; + private _vehicleCargo = getVehicleCargo _vehicle; + if ( + (_vehicle canVehicleCargo _item) isEqualTo [false, true] && // Could be loaded if _vehicle was empty + {_vehicleCargo findIf { + !(_x in _loaded) && + !(typeOf _x isEqualTo "CargoNet_01_box_F") + } isEqualTo -1} // Don't use ViV if ViV was used outside of ACE Cargo + ) then { + private _cargoBox = createVehicle ["CargoNet_01_box_F", [0, 0, 0], [], 0, "CAN_COLLIDE"]; + if ((_vehicle canVehicleCargo _cargoBox) select 1) then { + while {!(_vehicle setVehicleCargo _cargoBox)} do { // Move ViV cargo to ACE Cargo + private _itemViV = _vehicleCargo deleteAt 0; + if !(objNull setVehicleCargo _itemViV) exitWith {deleteVehicle _cargoBox;}; + + _itemViV attachTo [_vehicle,[0,0,-100]]; + [QEGVAR(common,hideObjectGlobal), [_itemViV, true]] call CBA_fnc_serverEvent; + + // Some objects below water will take damage over time and eventualy become "water logged" and unfixable (because of negative z attach) + [_itemViV, "blockDamage", "ACE_cargo", true] call EFUNC(common,statusEffect_set); + }; + } else { + deleteVehicle _cargoBox; + }; + }; + _item attachTo [_vehicle, [0,0,-100]]; [QEGVAR(common,hideObjectGlobal), [_item, true]] call CBA_fnc_serverEvent; // Some objects below water will take damage over time and eventualy become "water logged" and unfixable (because of negative z attach)