/* * Author: Hizumi & IndigoFox * * Create Mortar resupply box for the 17th Battalion * * Arguments: * 0: Vehicle - * 1: Position - * * Return Value: * Function executed * * Example: * [box] call milsim_fnc_createBox; // create mortar ammo box via init line of editor object * [objNull, pos] call milsim_fnc_createBox; // create mortar ammo box via zeus module * * Public: Yes * * Note: For gathering: formatText ["%1", [ ["containerClassname", typeOf cursorObject], ["backpack", (backpackCargo cursorObject) call BIS_fnc_consolidateArray], ["item", (itemCargo cursorObject) call BIS_fnc_consolidateArray], ["magazine", (magazineCargo cursorObject) call BIS_fnc_consolidateArray], ["magazineAmmo", magazinesAmmoCargo cursorObject], ["weapon", (weaponCargo cursorObject) call BIS_fnc_consolidateArray] ]]; */ params [ ["_box", objNull, [objNull]], ["_type", "", [""]], ["_pos", [0,0,0], [[]], 3] ]; if (isNil "milsim_resupply_crateDefinitions") exitWith { format["Resupply Boxes: milsim_resupply_crateDefinitions is not defined, possibly a bad edit?"] remoteExec ["systemChat", 0]; false; }; if (_type isEqualTo "") exitWith { format["Resupply Boxes: [_boxObject, _type, _pos] call milsim_fnc_createBox"] remoteExec ["systemChat", 0]; format["Please use one of the following types for _type:"] remoteExec ["systemChat", 0]; format["%1", (keys milsim_resupply_crateDefinitions)] remoteExec ["systemChat", 0]; false; }; private _boxData = milsim_resupply_crateDefinitions getOrDefault [_type, createHashMap]; if (count _boxData isEqualTo 0) exitWith { format["Resupply Boxes: [_boxObject, _type, _pos] call milsim_fnc_createBox"] remoteExec ["systemChat", 0]; format["%1 is not a valid type for _type", _type] remoteExec ["systemChat", 0]; format["Please use one of the following types for _type:"] remoteExec ["systemChat", 0]; format["%1", (keys milsim_resupply_crateDefinitions)] remoteExec ["systemChat", 0]; false; }; private _boxItems = _boxData getOrDefault ["items", createHashMap]; if (isNull _box) then { _box = (_boxData get "className") createVehicle _pos; }; clearBackpackCargoGlobal _box; clearItemCargoGlobal _box; clearMagazineCargoGlobal _box; clearWeaponCargoGlobal _box; { _x params ["_class", "_qty"]; _box addBackpackCargoGlobal [_class, _qty] } foreach (_boxItems getOrDefault ["backpacks", []]); { _x params ["_class", "_qty"]; _box addItemCargoGlobal [_class, _qty] } foreach (_boxItems getOrDefault ["items", []]); { _x params ["_class", "_qty"]; _box addMagazineCargoGlobal [_class, _qty] } foreach (_boxItems getOrDefault ["magazines", []]); { _x params ["_class", "_qty"]; _box addWeaponCargoGlobal [_class, _qty] } foreach (_boxItems getOrDefault ["weapons", []]); [_box,1] call ace_cargo_fnc_setSize; true;