diff --git a/AUTHORS.txt b/AUTHORS.txt index a51e668ea..e2e05c4b8 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -53,5 +53,6 @@ SilentSpike Timi007 Toinane Tuupertunut +Venrix veteran29 vivngh diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp index 99310d2a6..12cf3b37f 100644 --- a/addons/inventory/config.cpp +++ b/addons/inventory/config.cpp @@ -8,7 +8,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"zen_attributes"}; author = ECSTRING(main,Author); - authors[] = {"mharis001"}; + authors[] = {"mharis001", "Venrix"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; diff --git a/addons/inventory/functions/fnc_confirm.sqf b/addons/inventory/functions/fnc_confirm.sqf index b54debf65..5f39aa77f 100644 --- a/addons/inventory/functions/fnc_confirm.sqf +++ b/addons/inventory/functions/fnc_confirm.sqf @@ -22,6 +22,13 @@ private _object = _display getVariable QGVAR(object); private _cargo = _display getVariable QGVAR(cargo); _cargo params ["_itemCargo", "_weaponCargo", "_magazineCargo", "_backpackCargo"]; +// Preserve nested container contents (the cargo model below only tracks backpack classes) +private _savedContainers = everyContainer _object apply { + _x params ["_type", "_container"]; + + [_type, _container call EFUNC(common,serializeInventory)] +}; + clearItemCargoGlobal _object; clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; @@ -50,3 +57,16 @@ _backpackCargo params ["_backpackTypes", "_backpackCounts"]; { _object addBackpackCargoGlobal [_x, _backpackCounts select _forEachIndex]; } forEach _backpackTypes; + +// Restore preserved contents into the re-added backpacks, matching (and consuming) by class +private _allContainers = everyContainer _object; + +{ + _x params ["_type", "_containerData"]; + + private _index = _allContainers findIf {_x select 0 == _type}; + if (_index != -1) then { + private _container = (_allContainers deleteAt _index) select 1; + [_container, _containerData] call EFUNC(common,deserializeInventory); + }; +} forEach _savedContainers;